Zum Hauptinhalt springen

Tag 2: Ausgaben formatieren und umleiten

1 Auftrag Ausgaben formatieren und umleiten 1​

Erstellen Sie eine Tabelle als Textdatei alle Dienste. Die Tabelle soll Name und Status anzeigen, nach Status sortiert und gruppiert (Format-Table -GroupBy) sein.

get-service | sort-object status | format-table -property name, status | out-file -filepath C:\Temp\service.txt

Geben Sie alle Alias (Get-Alias) als HTML-Tabelle aus, die den Namen und die Definition des Alias beinhalten soll.

get-alias | convertto-html -property name, definition | out-file C:\Temp\alias.html

Geben Sie die Anzahl Ereignisse der Ereignisanzeige "Anwendung" vom heuteigen Tag aus! Hinweis: Count-Eigenschaft von Measure-Object!

get-eventlog -logname application -after 14.02.2022 | measure-object | format-table -property count

Geben Sie Name, Status und Starttyp aller Dienste sortiert und gruppiert nach Status aus!

get-service | sort-object status | format-table -property name, status, starttype

Exportieren Sie alle Services, welche den Starttyp "Manuell" aufweisen in ein CSV.

get-service | where {$_.starttype -eq "Manual"} | select-object -property name, starttype | export-csv -path "C:\Temp\services.csv" -delimiter ";"

Geben Sie alle Computerinformationen (Get-Computerinfo) in der Datei c:/tmp/config.txt aus! Es kann sein, dass ein Grossteil der Eigenschaften keinen Wert aufweisen.

get-computerinfo | out-file C:\Temp\config.txt

Geben Sie die Computerinformationen, welche mit OS starten in der Datei c:/tmp/OSconfig.txt aus!

get-computerinfo -property OS* | out-file C:\Temp\OSConfig.txt

Geben Sie Name und Kommandotyp aller PS-Befehle, sortiert nach Name in einer grafischen Tabelle, in einem separaten Fenster aus!

get-command | select-object -property commandtype, name | sort-object name | out-gridview

Geben Sie für das Subnetz 192.168.102.0/24 alle IP-Adressen aus! Hinweis: ForEach-Object verwenden!

1..254 | foreach-object -process {get-ciminstance -class win32_pingstatus -filter ("Address='192.168.102.$_'")} | select-object -property address, responsetime

Geben Sie die Daten aller Tage (1. Januar bis 31. Dezember) des aktuellen Jahres aus! Hinweis: ForEach-Object verwenden!

2 Auftrag Ausgaben formatieren und umleiten 2​

Zeigen Sie alle Dienste an, die mit dem Buchstaben s beginnen, aber beendet (stopped) sind.

get-service "s*" | where-object {$_.status -eq "stopped"}

Sortieren Sie den Verzeichnisinhalt des Windows-Verzeichnisses (nur Dateien) absteigend nach Grösse und exportieren das Ergebnis in die CSV-Datei dateien.csv im aktuellen Verzeichnis.

get-childitem -path "C:\Windows" -file | sort-object length -descending | export-csv "dateien.csv" -delimiter ";"

Es liegen drei Dateien vor: prozesse1.csv, prozesse2.csv und prozesse3.csv. Die Dateien wurden mit folgenden Befehlen erstellt:

-1- Get-Process | Export-Csv -Path .\prozesse1.csv
-2- Get-Process | Export-Csv -Path .\prozesse2.csv –Delimiter ";„
-3- Get-Process | Export-Csv -Path .\prozesse3.csv –UseCulture

a) Welche Unterschiede weisen die Dateien -1-, -2- und -3- auf?

Die Datei -1- wird mit Kommas getrennt und die Dateien -2- und -3- sind mit Semikolons getrennt.

b) Was ist der Unterschied zwischen den Dateien -2- und -3-?

Bei -2- definieren wir einen sogenannten "Delimiter". Das ist das Zeichen welchen die Werte trennt. Bei -3- wird der vordefinierte "Delimeter" von diesem Cmdlets genutzt: `(get-culture).textinfo.listseparator`. In diesem Fall ist es auch ein Semikolon und daher sieht man keinen Unterschied.

Wie viele Dateien mit der Erweiterung .exe (extension) weist Ihr Windows-Verzeichnis auf? Wie gross sind diese Dateien insgesamt und durchschnittlich?

get-childitem -path "C:\Windows\*.exe" | measure-object -property length -sum -average | format-list -property count, average, sum

a) Rufen Sie – mit Mitteln, die in diesem Kapitel besprochen wurden – zehnmal die Anwendung notepad.exe auf.

1..10 | foreach-object -process {start-process -filepath "notepad"}

b) Lassen Sie sich die zehn laufenden Prozesse anzeigen und beenden sie dann.

get-process notepad | stop-process