Vor ewigen Zeiten führte das Booten des damals hochmodernen IBM 8086 von der Floppy-Disc auf einen grünen Textbildschirm mit einem blinkenden Cursor in der vertrauten Kommandozeile C:\> Das Hacken von boot.ini und config.sys, um meine Spiele zum Laufen zu bringen, war mein erster Einstieg in das Programmieren.
Irgendwann wurde das C:\> durch eine hübsche grafische Bedienoberfläche ersetzt und der Computer von der Festplatte gebootet. Die Kommandozeile (CMD) blieb uns noch Jahrzehnte erhalten. Erst vor Kurzem wurde CMD durch PowerShell, die von Microsoft mit Windows 7 eingeführte Shell-Anwendung, aktualisiert bzw. ersetzt.
CMD hat uns lange gute Dienste geleistet, aber der Umstieg auf PowerShell ist wie der Wechsel von Dampfmaschinen direkt zu Automobilen mit Elektroantrieb.
Die Windows-Kommandozeile – auch als CMD bezeichnet – ist die ursprüngliche Shell des Microsoft DOS-Betriebssystems. CMD war bis zum Windows 10 Buid 14791 die Standard-Shell. Danach machte Microsoft PowerShell zur Standardoption. CMD gehört zu den letzten Überbleibseln des ursprünglichen MS-DOS-Betriebssystems, das Microsoft ersetzt hat.
Windows PowerShell ist die neue Microsoft Shell, in der die alten CMD-Funktionen mit einer neuen scripting/cmdlet-Instruktionssatz und integrierten Administrationfunktionen. Mit PowerShell-cmdlets können Benutzer und Administratoren komplizierte Aufgaben mit erneut verwendebaren Skripten zu automatisieren. Systemadministratoren können durch die Automatisierung von Administrationsaufgaben mit PowerShell bedeutend Zeit sparen.
Der Vergleich von PowerShell mit CMD ist wie der von Äpfeln mit Kumquats. Sie sind völlig unterschiedlich, trotz der Illusionm dass der „dir“-Befehl bei beiden Bedienoberflächen identisch funktioniert.
PowerShell verwendet cmdlets, in sich geschlossene Programmierungsobjekte, mit denen man auf die zugrundeliegenden Administrationsoptionen in Windows zugreifen kann. Vor PowerShell navigierten Systeadministratoren durch die grafischen Oberflächen, um diese Optionen zu finden,m und es gab keine Möglichkeit, den Ablauf des Durchklickens durch die Menüs erneut zu verwenden, um Optionen in großem Umfang zu ändern.
PowerShell verwendet Pipes, um cmdlets miteinander zu verketten und Input/Output-Daten auf dieselbe Weise wie andere Shells freizugeben, wie bei Bash in Linux. Mit Pipes können Benutzer komplexe Skripte erstellen, die Parameter und Daten von einem cmdlet an ein anderes übergeben. Eine Automatisierung oder Massenveränderungen mit variablen Daten – beispielsweise einer Liste von Servern – können mit von Benutzern erstellten wiederverwendbaren Skripten vorgenommen werden.
Eine der (vielen) tollen Funktionen von PowerShell ist die Möglichkeit, Aliase für unterschiedliche cmdlets einzurichten. Mit Asiasen kann ein Benutzer eigene Namen für unterschiedliche cmdlets oder Sktipte konfigurieren, wodurch es einfacher wird, zwischen unterschiedlichen Shells hin – und herzuwechseln: „ls“ ist ein Linix-Bash-Befehl, mit dem Verzeichnisobjekte angezeigt werden, wie der Befehl „dir“. In PowerShell ist sowohl „ls“ als auch „dir“ ein Alias für das cmdlet „Get-ChildItem“.
Für Systemadministratoren und andere IT-Funktionen ist PowerShell das Instrument der Wahl. Es gibt keinen Befehl in CMD mehr, den es in PowerShell nicht gibt, und PowerShell beinhaltet cmdlets für jede Administrationsfunktion, die Sie benötigen könnten. Externe Software-Anbieterer erweitern PowerShell mit individuellen cmdlets, z. B. mit dem NetApp PowerShell Toolkit zur Verwaltung des Data ONTAP-Moduls.
Sich mit PowerShell auszukennen kann ein Alleinstellungsmerkmal bei der Jobsuche oder sogar eine Einstellungsvoraussetzung sein. Es lohnt sich also, in diese Kompetenz zu investieren.
Als Anfangspunkt für Ihre Auseinandersetzung mit PowerShell können Sie dieses Tutorial über die Grundlagen anschauen – und in unserem kostenlosen PowerShell-Kurs von Adam Bertram, einem Microsoft PowerShell MVP, lernen, wie sich Active Directory-Aufgaben automatisieren lassen (Pro-Tipp: Benutzen Sie den Code „Blog“).