Die mächtige Windows PowerShell auch unter Linux und MacOS auf Apple-Computern nutzen? Das klingt erst mal absurd. Ob das eingefleischte Linux- oder Apple-Nutzer anstelle der Shell bzw. Bash wirklich tun wollen ist eine berechtigte Frage.
Vielmehr wurde dabei auf die Cloud abgezielt, wo auch in Microsofts Azure nicht nur Windows-Systeme laufen. Eine plattformübergreifende Skriptsprache klingt da natürlich sehr sinnvoll. Leider ist bzgl. der Versionierung aber mal wieder ein Wildwuchs entstanden. So wie das auch bei Windows selber der Fall ist. Was genau es mit PowerShellCore auf sich hat erfährst du in diesem Artikel.
PowerShell-Versionsübersicht
Zur schnelleren Übersicht habe ich hier die verschiedenen PowerShell-Versionen und deren Eigenschaften tabellarisch aufgelistet:
Version | Unterstützte Plattform | Info |
---|---|---|
<= Windows PowerShell 5.0 | Nur für Windows und veraltet! | |
Windows PowerShell Version 5.1 | Nur für Windows! | Letzte „Nur Windows“-Version |
PowerShellCore Version 6 | Plattformübergreifend (Windows, MacOS, Linux) | Weniger Funktionen als Windows PowerShell Version 5.1 |
>= PowerShell 7 | Plattformübergreifend (Windows, MacOS, Linux) | Weniger Funktionen als Windows PowerShell Version 5.1, aber mehr als PowerShellCore Version 6 |
Was ist PowerShellCore?
Die Frage müsste eigentlich schon eher lauten „Was war PowerShellCore?“. PowerShellCore ist nämlich mit Version 7 der PowerShell eigentlich Geschichte. Zumindest den Namen gibt es nicht mehr.
Eingeführt wurde PowerShellCore parallel zur regulären „Windows PowerShell“ in Version 5.1. Dabei trug die Core-Variante allerdings die Versionsnummer 6. Das ist eigentlich absurd, da es sich eher um eigenständiges Produkt handelt. PowerShellCore 6 und auch der Nachfolger 6.1 und die PowerShell 7 können parallel zur Version 5.1 der „Windows PowerShell“ installiert werden.
Mit PowerShellCore hat Microsoft eine Neuauflage der PowerShell als OpenSource-Projekt gestartet. Der Zusatz „Core“ wurde wohl gewählt weil diese Variante über Kern-Funktionalitäten verfügt, die sowohl unter Windows, MacOS wie auch Linus nutzbar sind.
Statt die beiden Produkte unabhängig voneinander weiterzuentwickeln, hat sich Microsoft entschieden mit Version 7 keine Unterscheidung mehr zu machen. Dies wird auch im Namen ersichtlich, da es keine „Windows PowerShell“ sondern nur noch die PowerShell gibt. Von der regulären PowerShell hat es witzigerweise sowieso keine Version 6 gegeben.
Um die Verwirrung komplett zu machen, trägt die Version 7 aber auch nicht den Zusatz „Core“ im Namen, der auf die plattformübergreifende Nutzbarkeit und gemeinsamen kleinsten Nenner schließen lassen würde. Tatsächlich handelt es sich aber nun ab Version 7 dauerhaft um die Core-Variante der PowerShell, die auch irgendwann unter Windows Einzug finden wird und die normale PowerShell ablöst. Es wird also keine Windows-eigene PowerShell mehr geben!
Installation von PowerShell 7
Standardmäßig ist die neue PowerShell 7 auch unter Windows nicht installiert. Für Linux und MacOS sollte das logisch sein. Diese wird unter Windows derzeit immer parallel zur regulären PowerShell, in den meisten Fällen wohl die letzte Version 5.1, installiert.
Anleitungen und Setups für die aktuellen Versionen 7.2 und 7.3 findet man direkt bei Microsoft:
Windows:
https://docs.microsoft.com/de-de/powershell/scripting/install/installing-powershell-on-windows
Linux:
https://docs.microsoft.com/de-de/powershell/scripting/install/installing-powershell-on-linux
MacOS:
https://docs.microsoft.com/de-de/powershell/scripting/install/installing-powershell-on-macos
Unterscheidung
Die Unterscheidung zwischen der Standard-PowerShell und PowershellCore oder 7 wird durch den Dateinamen ermöglicht. Die normale PowerShell hat seit jeher den Prozessnamen „powerhsell.exe“, während die Core-Variante „pwsh.exe“ getauft wurde.
Die Konsolenfenster sehen in der Standardeinstellung auch unterschiedlich aus. Während die Standard-PowerShell immer noch mit dem dunkelblauen Hintergrund daherkommt, hat man sich bei der PowerShell 7 wieder für einen Schwarzton wie in der Command-Line entschieden.
Was ist besser? PowerShell 5.1 oder PowerShell 7?
Neu ist immer besser?! Das gilt nur bedingt. Bei der PowerShell könnte man den Eindruck gewinnen mit zwei Versionsnummern höher hätte man eine Version mit vielen neuen Funktionen. Tatsächlich verfügt die Version 7 unter Windows aber sogar über weniger Funktionen als die Version 5.1!
Fazit
Wer nur unter Windows unterwegs ist braucht PowerShell 7 derzeit nicht wirklich. Nur wenn man die Skripte auch unter Linux oder MacOS verwenden muss, macht es wirklich Sinn PowerShell 7 zu verwenden. Ansonsten beschneidet man sich nur zusätzlicher Funktionen/Cmdlets, die erst nach und nach wieder eingebaut werden.
Screenshots mit PowerShell automatisch unter Windows speichern
Welche PowerShell-Version habe ich? – PowerShell-Version anzeigen
Was ist PowerShellCore? Windows PowerShell unter Linux und MacOS?
Powershell und CMD: Clear um Konsole zu leeren?
Powershell: Sudo-Befehl wie unter Linux nutzen für Administratorrechte?
COM-Port eines Geräts ändern per Powershell
CMD/Powershell: Ping-Ergebnis mit Errorlevel auswerten
Powershell: Netzwerkadapter-Konfiguration ändern (IP-Adresse, Gateway, DNS, DHCP)
Powershell-Skript als Benutzer-Anmeldeskript in einer Domäne nutzen?
Powershell: Fenster nach Skriptausführung nicht automatisch schließen
Powershell: UTF8-Problem beim Export
XML-Bearbeitung mit Powershell
Replace und Escaping in Powershell
MessageBox mit Powershell auf anderen Computern anzeigen
While- und Until-Schleifen in PowerShell und Batch
Einfaches inkrementelles Backup mit Powershell
Einfache Außer-Haus-Sicherung mit Powershell
Schnittstelle von XML zu MS-SQL mit Powershell realisieren
Powershell: Automatische Anwendungssteuerung
Macht die ExecutionPolicy für Powershell-Skripte Sinn?
Wiederkehrende E-Mail-Abwesenheitsnotiz für Outlook mit Powershell
HyperV-Netzwerkadapter per Powershell umbenennen und entfernen
Powershell: DELL Service Tags auslesen
Powershell-Backup-Skript für den Thunderbird-Profilordner
Download-Skript in Powershell
Einfache Powershell-Skripte
Java-Anwendungen über CMD oder Powershell starten
Pfad im Explorer schneller kopieren – auch als vollständigen UNC-Pfad
Windows 11: Startmenü anpassen, klassische Taskleiste, links ausrichten
Wie lange läuft mein PC schon? – PC Laufzeit auslesen unter Windows 10
Windows 10: Standorttyp des Netzwerks ändern
Windows Server 2016: WSUS startet nicht vernünftig