Powershell Core von Microsoft Die systemübergreifende Kommandozeile

Autor / Redakteur: Christian Rentrop / Stephan Augsten

Mit dem Update auf Version 6.0 hat Microsoft seine Powershell in „Powershell Core“ umbenannt. Die neue Shell arbeitet auch unter macOS und Linux, außerdem ist der Quellcode unter MIT-Lizenz verfügbar.

Anbieter zum Thema

Powershell Core hat gegenüber der Vorgängerversion einen reduzierten Funktionsumfang. Unter macOS und Linux ist dieser noch einmal verkleinert.
Powershell Core hat gegenüber der Vorgängerversion einen reduzierten Funktionsumfang. Unter macOS und Linux ist dieser noch einmal verkleinert.
(Bild: Rentrop / Microsoft)

Die Microsoft Powershell ist ein mächtiges Kommandozeilen-Werkzeug, das noch dazu recht einfach zu erlernen ist. Mit der Version 6.0 hat Microsoft die Shell in „Powershell Core“ umbenannt und für den Multi-Plattform-Betrieb optimiert. So gibt es nun Releases für macOS (ab 10.12) und zahlreiche Linux-Distributionen wie Ubuntu, Debian, OpenSUSE, Red Hat Enterprise oder Fedora.

Gleichzeitig hat Microsoft auch die Lizenz geändert und den Quelltext offengelegt. Der Quellcode der Powershell ist jetzt unter der sehr freien MIT-Lizenz verfügbar und für jeden Entwickler nutzbar. Dadurch können Entwickler und Unternehmen die Software ganz oder in Teilen an ihre eigenen Bedürfnisse anpassen, weitergeben, kommerzialisieren oder selbst lizenzieren.

Reduzierter Funktionsumfang

Powershell Core ist der „alten“ Powershell bis Versionsnummer 5.1 allerdings etwas unterlegen, was weniger am Multiplattform-Konzept als vielmehr an der Tatsache liegt, dass Microsoft die Shell mit der neuen Version 6.0 von Grund auf neu entwickelt hat.

Manch liebgewonnene Funktion der „alten“ Shell fehlt allerdings zum aktuellen Zeitpunkt. So sind manche Commandlets nicht an Bord, die in Version 5.1 noch zu finden sind. Zusätzlich sind die macOS- und Linux-Releases von Powershell gegenüber der Windows-Version noch einmal im Funktionsumfang reduziert, was den Eigenheiten der jeweiligen Betriebssysteme geschuldet sein dürfte.

In diesen Fällen fehlen schlicht die passenden Systembausteine oder sie werden derzeit nicht von Powershell Core unterstützt. Darunter sind zum Teil auch allerlei wichtige Kommandos wie die zur Benutzererstellung, zur Computerverwaltung und für Zugriffsrechte. Trotzdem spricht natürlich nichts dagegen, die neue Powershell einmal auszuprobieren, besonders unter macOS und Linux.

Microsoft Powershell Core unter macOS installieren

Um die Microsoft Powershell Core unter macOS zu installieren, können Sie das Terminal bemühen. Dort reicht der Befehl „brew“, um die Pakete zu laden und zu installieren. Sollte brew nicht installiert sein, lässt es sich mit dem Befehl …

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)“

… über den Terminal installieren. Zudem sollte Apple XCode auf dem Mac bereits aufgesetzt sein. Anschließend können Sie Microsofts Powershell mit dem Befehl …

brew cask install powershell

… auf dem Mac installieren. Danach ist die Powershell einsatzbereit. Um die Powershell zu starten, müssen Sie …

pwsh

… im Terminal eingeben. Um die Shell bei einem neuen Release zu aktualisieren, muss erneut der brew-Befehl verwendet werden:

brew updatebrew cask upgrade powershell

Microsoft Powershell Core unter Linux installieren

Die Linux-Installation der Powershell ist ähnlich simpel wie unter macOS: Alles, was Sie tun müssen, ist den Installer abhängig von der Distribution im Terminal aufzurufen. Unter Ubuntu-Linux und anderen Debian-Derivaten ist das der Befehl:

sudo apt-get install -y powershell

Bei anderen Distributionen kommen Yum, Zypper oder DNF als Paketmanager zum Einsatz, das „apt-get“ muss also gegen den jeweiligen Manager ausgetauscht werden, um zum Ziel zu gelangen. Sollte das nicht funktionieren, können Sie alternativ den Paketmanager Snap verwenden, der auf vielen Linux-Systemen vorinstalliert ist:

snap install powershell-preview --classic

Anschließend startet die Powershell genau wie unter macOS nach Eingabe des Befehls:

pwsh

Powershell Core unter Linux und macOS verwenden

Einmal installiert stellt sich natürlich die Frage, was man jetzt mit Powershell Core unter macOS oder Linux anstellen kann. Die Antwort ist einfach: Genau wie unter Windows lässt sich die Powershell unter Linux und macOS dazu verwenden, das System zu verwalten und gewisse Aufgaben zu automatisieren. So können Sie Prozesse auslesen, die auf dem System laufen oder eben andere Powershell-Befehle nutzen.

Unix-User müssen bei Powershell Core mit weniger Modulen leben als Windows-Anwender.
Unix-User müssen bei Powershell Core mit weniger Modulen leben als Windows-Anwender.
(Bild: Rentrop / Microsoft)

Auch Powershell-Skripte sind unter Windows und Linux ausführbar, allerdings nur, wenn diese den reduzierten Commandlet-Befehlssatz der Unix-Powershell beachten. Ansonsten gilt: Einfach ausprobieren, denn gegebenenfalls sind Kommandos, die unter Windows funktionieren, auch am Mac oder unter Linux verwendbar. Mit dem Kommando …

Get-Module -ListAvailable

… können Sie sehen, welche Module in den unixoiden Versionen der Shell aktiv sind.

Powershell oder Bash unter Unix?

Grundsätzlich ist die Powershell zwar jetzt unter macOS und Linux verfügbar – wirklich sinnvoll ist sie aber nur, wenn einzelne Macs und Linux-Rechner im Windows-Netzwerk arbeiten. Denn anders als die Windows-Version der Powershell – die klassische mit Versionsnummer 5.1 – ist Powershell Core unter Unix-Systemen doch deutlich reduziert.

Dadurch kommt der sinnvolle Einsatzzweck ein wenig abhanden. Von daher kann es in Umgebungen mit vielen Unix-Systemen, egal ob Linux oder macOS, sinnvoll sein, zunächst weiter auf die BASH oder eine andere Unix-Shell zu setzen, um Computer und Netzwerke zu verwalten.

Powershell Core punktet vor allem dort, wo die Administration einzelner Unix-Systeme in Windows-Umgebungen erleichtert werden soll und hat hier auch durchaus ihre Existenzberechtigung. Und weil die Software auch nicht „stört“, können Sie sie natürlich problemlos nebenherlaufen lassen, um sie bei Bedarf einzusetzen.

(ID:45597590)