Windows-Systemkomponenten

Windows Powershell richtig nutzen

Die neue "Eingabeaufforderung" kann mehr

Alles, was Sie üblicherweise in der Cmd-Eingabeaufforderung machen, kann die Powershell mindestens auch: Sie startet praktisch alles, womit man sie füttert: Ausführbare Dateien wie .exe, .cmd, .msc, .vbs lädt die Powershell ebenso wie Benutzerdateien wie etwa .docx, .jpg, .xls, .pdf, wobei sie diese direkt zum passenden Programm schickt.

Natürlich können Sie innerhalb der Powershell auch alle Kommandozeilen-Tools verwenden etwa Robocopy, Fsutil, Taskkill oder auch die Eingabeaufforderung Cmd. Übrigens: Steht ein Dateiname in Anführungszeichen, muss "&" vorangestellt werden, um den Befehlszeilenmodus zu erzwingen.

Die Powershell startet alles: Programme, die nicht im Systempfad liegen, findet das Cmdlet "StartProcess" oder abgekürzt "start".
Die Powershell startet alles: Programme, die nicht im Systempfad liegen, findet das Cmdlet "StartProcess" oder abgekürzt "start".

Bei der Bedienung gibt es starke Ähnlichkeiten mit der gewohnten Kommandozeile cmd.exe: Das Editieren der Zeilen geschieht auf dem Prompt auf vergleichbare Weise. Das gilt für die automatische Pfad- und Datei-Namenserweiterung mit der-Taste, ebenso wie für die History-Funktion, bei der Sie mit Cursortaste die letzten Befehle zurückholen. Zahlreiche Aliases für die umständlichen Cmdlets orientieren sich an alten Cmd-Kommandos ("dir", "del", "cls", "ren", "md", "type" …). Wenn Sie schnell was rechnen müssen, geben Sie am Prompt einfach den Term ein:

455*0.19+455

Die Powershell holt ferner mit dem internen Befehl "Get-WmiObject" (Abkürzung "gwmi") umweglos alle Informationen aus der WMI (Windows Management Instrumentation). So liest etwa "(gwmi Win32_OperatingSystem).LastBootUpTime" die Eigenschaft des letzten Systemstarts aus der WMI-Klasse Win32_OperatingSystem. Besser lesbar wird die Zeitangabe durch eine Konvertierung:

$b=GWMI Win32_OperatingSystem$b.ConvertToDateTime($b.LastBootUpTime)

Meldungen der Powershell: die Fehlerinformationen sind aussagekräftig und hilfreich, verwenden aber gruselige Farbcodes. Dies lässt sich aber umstellen.
Meldungen der Powershell: die Fehlerinformationen sind aussagekräftig und hilfreich, verwenden aber gruselige Farbcodes. Dies lässt sich aber umstellen.

Nebenbei steuert die Powershell auch COM-Anwendungen wie den Internet Explorer oder Office-Programme. Diese Möglichkeiten erfordern fast immer eine kleine Funktion oder ein Script. Als Befehlsfolge am Prompt sieht das wie folgt aus:

$ie = new-object -ComObject "internetexplorer.application"$ie.navigate("www.google.de")$ie.visible=1

Die Windows-Registry ist standardmäßig als Laufwerk in die Powershell gemountet. Wenn Sie sich alle virtuellen Laufwerke mit

get-psdrive

auflisten, finden Sie auch "HKCU" und "HKLM", also die Hauptschlüssel der Registry. Auf diese können Sie mit "cd" oder "dir" wie auf das Dateisystem zugreifen:

cd hklm:\software\classes\exefiledir

"cd" und "dir" sind Aliases für die eigentlichen Cmdlets "set-location" und "get-childitem". Das Beispiel zeigt, dass die Shell in der Registry, in Funktionen und Variablen ebenso wie in Datei-Ordnern spazierengeht. Ändern, Löschen, Eintragen ist natürlich mit den passenden Cmdlets ebenso möglich. Der folgende Befehl

get-itemproperty "hkcu:\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"

zeigt die Windows-Standardordner des aktuellen Benutzers aus dem betreffenden Registry-Schlüssel.