Früher Eingabeaufforderung (cmd.exe) und heute Powershell (powershell.exe). Ob Linux oder Windows: An einer Shell kommt kein Admin vorbei. Sei es die Einrichtung und Konfiguration eines Exchange-Servers, die Abarbeitung wiederkehrender Aufgaben oder das Ausführen von Massenaufgaben. Warum sich der Blick in die Powershell lohnt und warum kein Weg dran vorbeiführt, kläre ich in diesen Blog-Beitrag.
Die Eingabeaufforderung ist veraltet
Das schwarze Fenster, von einigen auch Konsolen-Fenster genannt, ist die herkömmliche Eingabeaufforderung bzw. die cmd.exe. Auch wenn diese weiterhin in den Windows-Betriebssystemen integriert ist, rückt sie immer mehr und mehr in den Hintergrund. Dieses schwarze Fenster beinhaltet nur eine geringe Anzahl an möglichen Befehlen. Um mit der Eingabeaufforderung überhaupt etwas anfangen zu können, ist der Einsatz von sog. Kommandozeilen-Werkzeugen, wie z.B. ipconfig.exe, notwendig. Weitere bekannte Werkzeuge sind „ping.exe“ oder „nslookup.exe“.
Zur Automatisierung von Vorgängen oder für die Abarbeitung von wiederkehrenden Aufgaben ist die Entwicklung von Scripts erforderlich. Dies sind die bekannten Batch-Dateien mit der Datei-Endung „.bat“. Die Lesbarkeit dieser Dateien ist je nach Umfang eher schwer als angenehm. Genau wie die Batch-Scripte, ist auch die Eingabeaufforderung veraltet und dessen Einsatz wird nicht mehr empfohlen. Microsoft selbst versucht diese Konsole immer mehr und mehr in den Hintergrund zu rücken, während die Powershell die maximale Aufmerksamkeit genießt.
Die Powershell hat nur Vorteile
Zuerst sei erwähnt, dass Microsoft mit der Einführung der Powershell auch an die „alten Hasen“ gedacht hat: Alles was die Eingabeaufforderung kann, kann auch die Powershell und noch viel mehr.
Die Powershell selbst ist, wie die Eingabeaufforderung, ein fester Bestandteil von Windows. Aufgebaut ist die Powershell in Modulen, welche wiederum zahlreiche Befehle (auch CommandLets (CmdLets) genannt) beinhalten. Die wichtigsten Befehle sind dabei „Get-Help“ und „Get-Command“. Ersteres ruft die Hilfe zu einem Befehl auf und Letzteres kann verwendet werden um nach einem CmdLet zu suchen. Das Ergebnis (also der Rückgabewert) ist dabei immer ein sog. Objekt. Mit dieser Kenntnis ist der Einstieg in die Entwicklung von Powershell-Scripts wesentlich einfacher, vor allem dann, wenn die objektorientierte Programmierung (OOP) bereits bekannt ist. Denn alles was in der Powershell zurückgegeben wird, sind Objekte. Sollte es mal keinen passenden Befehl geben, ist die Entwicklung eigener CmdLets oder gar eigener Module möglich. Wenn sogar dann die Grenzen erreicht wurden, sind die Grenzen der Powershell noch nicht ausgeschöpft: Die Powershell basiert auf das .NET-Framework von Microsoft und kann somit auf das volle Potential dieses Frameworks zugreifen. Damit sind die Möglichkeiten dieser Shell nahezu grenzenlos. Egal ob es sich um die Entwicklung einer GUI oder die Bedienung einer REST-Schnittstelle handelt, möglich ist theoretisch alles.
Einführung in die Powershell
Wenn die Erste Hürde überwunden wurde, ist der rest nur noch ein Klacks. Doch wie gelingt der Einstieg in die Powershell am besten? Ich persönlich habe ein Fachbuch gelesen. für Viele ist aber vermutlich ein Video praktischer. Daher empfehle ich die video-Reihe von Peter Kriegel: