Funktioniert PowerShell neben Windows auch auf anderen Betriebssystemen?
Es kann sehr frustrierend sein, wenn Ihr Professor eine Aussage zu PowerShell macht und verschiedene Websites den Beweis für das Gegenteil zu liefern scheinen. Funktioniert PowerShell tatsächlich auf anderen Systemen als Windows oder nicht? Der heutige SuperUser-Beitrag zu Fragen und Antworten hat die Antwort auf die Frage eines verwirrten Lesers.
Die heutige Question & Answer-Sitzung wird dank SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.
Die Frage
Der Superuser-Leser FredSavage187 möchte wissen, ob PowerShell neben Windows auch auf anderen Betriebssystemen funktioniert:
Mein Informatikprofessor hat uns kürzlich ein Quiz gegeben und eine der Fragen lautete: "Richtig oder falsch: PowerShell funktioniert unter Windows, Mac und Linux". Die richtige Antwort war "false" und er behauptet, dass PowerShell nur eine Sache von Windows ist. Ich habe jedoch ein paar Websites gefunden, die etwas anderes sagen:
PowerShell ist Open Source und steht unter Linux zur Verfügung [Microsoft Azure Blog]
PowerShell-Repository [GitHub]
Welches ist eigentlich richtig? Funktioniert PowerShell sowohl unter Linux und Mac OS als auch unter Windows??
Funktioniert PowerShell neben Windows auch auf anderen Betriebssystemen?
Die Antwort
Der Super User Ben N hat die Antwort für uns:
Ja. Ein Großteil von PowerShell ist .NET. Daher kann es auf jedem Betriebssystem ausgeführt werden, das über die Common Language Runtime (CLR) verfügt. Unter Windows ist dies das .NET Framework. Für andere Betriebssysteme, einschließlich Linux, können Sie CoreCLR verwenden, eine plattformübergreifende Open-Source-Teilmenge von .NET Framework.
Wie Sie im PowerShell-Repository auf GitHub erfahren haben, werden einige Betriebssysteme und Distributionen unterstützt. Hier sind zum Beispiel die Anweisungen für Ubuntu und eine Demonstration:
Man könnte argumentieren, dass nicht alle PowerShell in Nicht-Windows-Umgebungen verfügbar sind, da einige Funktionen von Bibliotheken abhängen, die nur in Windows zu finden sind. Das ParsedHtml Eigentum an der HtmlWebResponseObject Typ zurückgegeben von Invoke-WebRequest, ist beispielsweise nur unter Windows nützlich, da es ein COM-Objekt enthält, das aus einer nicht verwalteten Bibliothek stammt, mshtml.dll um genau zu sein. Auf anderen Plattformen gibt es nichts. Und natürlich gibt es Cmdlets zum Verwalten von Systemen, die nur in Windows zu finden sind, wie beispielsweise moderne Apps (Get-AppxPackage, zum Beispiel).
Die PowerShell-Infrastruktur funktioniert jedoch auch auf anderen Betriebssystemen, viele Cmdlets sind überall einsetzbar und der Support wird nur noch besser.
Haben Sie der Erklärung etwas hinzuzufügen? Sound off in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.
Bildnachweise: Jeff Hicks (Petri IT-Knowledgebase)