Windows-Systemkomponenten
Windows Powershell richtig nutzen
Powershell und pS1-Scripts
Die Überlegenheit der Powershell gegenüber der Cmd.exe ist deutlich. Trotzdem fällt vielen der Umstieg schwer, die sich jahrelang an die Eigenheiten der Eingabeaufforderung gewöhnt hat. Einige Aliases, die diesem Umstand Rechnung tragen, gibt Microsoft der Powershell bereits mit - so etwa das erwähnte "dir" für "get-childitem" oder "del" für "remove-item". Den Vorrat der Alias-Befehlsabkürzungen können Sie aber jederzeit erweitern: Eigene Aliases sind mit Befehlen wie
new-alias n notepad.exe
schnell angelegt (um mit "n" den Editor zu starten). Der Wert solcher Aliases ist aber begrenzt, da sie nur als Kommandoabkürzung taugen und keinerlei Argumente zulassen. Weit leistungsfähiger sind Funktionen:
function n {notepad.exe $args}
Jetzt kann auf dem Prompt der Dateiname gleich mitgegeben werden. $Args ist eine Standardvariable, die sämtliche oder einzelne Argumente weitergibt. Da der Powershell-Prompt eine Eingabe wie "3.14 * 6.34" oder "0x2A1" (Hex-Zahl) direkt als Rechenaufgabe interpretiert und löst, können Sie mit etwas Code auch komplexere Aufgaben umsetzen:
function Tage {((get-date("$args"))-(get-date)).days}
Die Eingabe "tage 22.10.2009" gibt dann die Anzahl der Tage bis zum eingegebenen Datum zurück.
PS1-Scripts anlegen: Der in einer Funktion abgelegte Code gilt nur so lange, bis die Shell geschlossen wird. Daher stellt sich auch für sporadische Benutzer der Powershell sehr schnell die Frage, wie sich komplexere Funktionen, Befehle oder Aliases dauerhaft speichern lassen. Ähnlich wie Cmd benutzt die Powershell einfache Textdateien als Script-Format, die Sie mit jedem Texteditor wie Notepad erstellen können. Entscheidend ist dabei die Endung ".ps1".
Ein Sonderfall ist das Script Profile.ps1, das die Shell beim Start automatisch einliest - der ideale Ort für persönliche Funktionen, Variablen und Aliases. Der Standardpfad der aktuellen Version 3.0 ist "%windir%\System32\WindowsPowerShell\v1.0". Eine hier abgelegte Profile.ps1 lädt die Powershell beim Start in jedem Fall. Besser und sauberer ist es aber, die Profile.ps1 im Benutzerprofil abzulegen. Der korrekte Ordner dafür ist "%userprofile%\Documents\WindowsPowerShell". Als einfachste Anpassungen könnten Sie kleine Navigationshilfen in die neu angelegte Profile.ps1 einbauen - etwa um mit "d" zum Desktop zu wechseln:
Function d {push-location"${env:userprofile}\Desktop"}
Ebenso nützlich kann eine einfache Funktion sein, die das aktuelle Verzeichnis als Explorer-Fenster startet:
Function ex {explorer.exe$(get-location).path}
Scripts freischalten: Nach ersten Anpassungen der Profile.ps1 erleben Sie beim Start der Powershell erst mal eine enttäuschende Bremse. Wenn Sie die Powershell vorher nie genutzt haben, ist jede Script-Ausführung erst mal verboten. Sie müssen erst dieses Verbot aufheben. Starten Sie dazu die Powershell über das Startmenü von Windows 7 oder 8 mit der Option "Als Admin[istrator] ausführen". Sie benötigen Adminrechte, um mit
Set-ExecutionPolicy unrestricted
den nötigen Eintrag in der Windows-Registry machen zu dürfen. Danach sind alle PS1-Scripts sofort erlaubt und lauffähig.