Zum Hauptinhalt springen

Powershell Grundlagen

Die Powershell entstand Anfang der 2000er Jahre nach der Idee und unter Federführung von Jeffrey Snover, dem Vater der Powershell. Damals hieß Powershell noch Monad, bezugnehmend auf den großen Gelehrten Gottfried Wilhelm Leizpig und seine Theorie der Monadologie. Jeffrey hat die Idee zur Powershell und ihrer Funktionsweise damals im Monad Manifesto festgehalten. Zusammengefasst sollte Monad eine Automatisierungs-Plattform auf Basis der .Net Plattform werden, weil Windows zum damaligen Zeitpunkt keine - wie bei Unix-artigen Betriebssystemen üblich - einheitliche Shell mit Automatisierungs-Möglichkeiten bot, sondern nur hochkomplexe Programmiersprachen oder nicht automatisierbare grafische Tools.

Monad wurde schließlich 2006 in der Version 1.0 unter dem Namen Windows Powershell veröffentlicht und trat unter Windows einen nicht aufzuhaltenden Siegeszug an. Bereits in Windows 7 wurde die Powershell direkt in das Betriebssystem integriert und ist seit Windows 10 und Windows Server 2016 in der Version 5.1 auf jedem Windows-Rechner verfügbar. In den 10 Jahren bis Windows 10 ist die Powershell einen weiten Weg gegangen, von einer sehr simplen Skriptsprache zur vielleicht sichersten Skripting-Umgegung in Windows. Und auch wenn viele nicht eingeweihte Powershell für ein Sicherheitsrisiko halten - richtig konfiguriert ist Powershell fast so sicher wie Fort Knox, da Powershell 5 in Domänen-Umgebungen nicht nur Kerberos-Authentifizierung voraussetzt, sondern sich per AMSI-Schnittstelle auch direkt in den Virenscanner integriert, sich mit Hilfe von Tools wie Applocker oder Application Control und Signaturen ganz hervorragend steuern lässt und außerdem drei verschiedene Logging-Möglichkeiten mitbringt. 

2016 hat Jeffrey die Windows-Powershell dann für abgeschlossen erklärt, und das ursprüngliche Powershell-Team wurde aufgelöst. Tatsächlich wurde aber gleichzeitig eine neue Powershell aus der Taufe gehoben - die Microsoft Powershell (man achte auf das kleine, aber wichtige Detail "Microsoft" statt "Windows"). Die Microsoft Powershell ist eine Quelloffene Neuentwicklung auf Basis des komplett neu entwickelten, ebenfalls offenen, .Net Core Framework, das im Gegensatz zu seinem Vorgänger Plattformunabhängig ist, also auch unter Linux oder MacOS läuft. Das gleiche gilt für die Microsoft Powershell, weshalb das "Windows" in Namen weichen mußte. Seitdem wird die Microsoft Powershell als von Microsoft geleitetes Open-Source Projekt weiterentwickelt. Anders als die Windows-Powershell ist sie aber nicht mehr ins Betriebssystem integriert und muss auch unter Windows nachinstalliert werden. 

Wenn Sie sich ein wenig mit Linux auskennen, werden Sie sich in der Powershell sehr schnell sehr wohl fühlen. Das Powershell-Team hat sich nämlich an sehr vielen Stellen die Unix Shells als Vorbild genommen. Viele Dinge werden Ihnen daher sehr bekannt vorkommen. Manche Dinge sind aber auch bedeutend einfacher als in den Unix-Shells. Das gilt im Übrigen für die ganze Powershell - sie ist für den Administrator gemacht, der eine Aufgabe schnell erledigen will - und deshalb ist das Erlernen der Powershell viele einfacher als eine vollwertige Programmiersprache wie Jaja, C# oder auch Python. Aber lassen Sie sich nicht täuschen - auch wenn die Powershell von außen ein bißchen aussieht wie ein Trabbi, steckt unter der Haube das gleiche .Net Framework, dass auch C# oder Visual Basic .Net antreibt. Mit ein bißchen Tuning geht der Trabbi dann ab wie ein Porsche, oder wenn Sie es wollen, auch wie ein LKW. Deas Powershell-Team hat versucht, es mit den Worten von Albert Einstein zu halten: 

Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher.