PowerShell 7 und Windows PowerShell. Tobias Weltner
alt="image"/> +
Die neue PowerShell öffnet ein Konsolenfenster mit schwarzem Hintergrund (bei Windows PowerShell ist der Hintergrund blau). Auch das Symbol der neuen PowerShell ist schwarz und nicht blau. In der Titelleiste des Konsolenfensters lesen Sie außerdem den Pfad, unter dem die neue PowerShell installiert wurde.
Klicken Sie das Symbol der neuen PowerShell in der Taskleiste mit der rechten Maustaste an und wählen Sie An Taskleiste anheften. So bleibt es dauerhaft sichtbar, und Sie können künftig bequem per Mausklick die passende PowerShell öffnen (siehe Abbildung 1.7).
Abbildung 1.7: Windows PowerShell und PowerShell lassen sich in Windows parallel betreiben.
Tipp
Die angehefteten Symbole der Taskleiste befinden sich übrigens in einem separaten versteckten Ordner, den Sie über den folgenden Befehl öffnen können:
PS> explorer "$env:appdata\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"
Wenn Sie die Version der neuen PowerShell durch Eingabe von $PSVersion überprüfen, offenbaren sich erste Unterschiede (siehe Abbildung 1.8):
Abbildung 1.8: Eine als »App« über den Microsoft Store installierte PowerShell 7.1
PSVersion meldet die neue Version, und PSEdition zeigt Core. Bei Windows PowerShell steht hier Desktop.
Hinweis
Die Bezeichnungen in PSEdition haben ausschließlich historische Gründe:
Ursprünglich hieß die neue PowerShell nämlich PowerShell Core und war als minimalistische Version zur reinen Remote-Verwaltung der »Nano-Server« gedacht, denen man die Benutzeroberfläche wegrationalisiert hatte.
Weil die Entwicklung der Nano-Server aber schnell wieder eingestellt wurde, hat man PowerShell Core danach zu einer plattformübergreifenden Shell weiterentwickelt. Das Wort »Core« passt nun natürlich nicht mehr, und so heißt diese plattformübergreifende PowerShell heute einfach nur PowerShell. In der Eigenschaft PSEdition wird sie indes weiterhin Core genannt.
PowerShell manuell installieren
Künftig ist zwar geplant, in die Windows PowerShell einen Befehl zu integrieren, mit dem man die neue PowerShell automatisch herunterladen und installieren kann, bisher gibt es diesen bequemen Befehl jedoch nicht.
Man kann ihn allerdings bereits nachrüsten. Dafür sind keine besonderen Berechtigungen nötig. Mit diesem neuen Befehl lässt sich die plattformübergreifende PowerShell besonders flexibel manuell installieren, zum Beispiel auch dann, wenn der Zugang zum Microsoft Store nicht zur Verfügung steht.
Öffnen Sie dazu zunächst eine Windows PowerShell, zum Beispiel über
Danach führen Sie den folgenden Befehl aus (siehe Listing 1.2), um das neue Cmdlet Install-PowerShell nachzurüsten:
Invoke-RestMethod -Uri https://aka.ms/install-powershell.ps1 -UseBasicParsing | New-Item -Path
function: -Name Install-PowerShell | Out-Null
Listing 1.2: Fehlenden Installationsbefehl nachrüsten
Invoke-RestMethod lädt aus dem Internet den Quellcode für den neuen Befehl herunter. Diesen Quellcode könnten Sie auch sichtbar machen, indem Sie die Internetadresse in einen Browser eingeben:
Abbildung 1.9: Microsoft stellt ein Installationsskript für PowerShell 7 zur Verfügung.
New-Item verwandelt den heruntergeladenen Quellcode dann in einen neuen Befehl namens Install-PowerShell. Er steht danach sofort zur Verfügung, und mit ihm können Sie nun ganz bequem PowerShell 7 nachinstallieren.
Hinweis
Mehr zu selbst definierten Cmdlets erfahren Sie in Kapitel 14. Was es mit New-Item und dem Laufwerk function: auf sich hat, ist Thema von Kapitel 7.
Der folgende Befehlsaufruf würde beispielsweise die aktuelle Produktivversion von PowerShell 7 im Ordner c:\ps7test installieren und diesen Ordner zur Path-Umgebungsvariablen hinzufügen, sodass der Befehl pwsh von überall aus aufrufbar würde:
PS> Install-PowerShell -Destination c:\ps7test -AddToPath
In manchen Unternehmensszenarien verbieten die Sicherheitseinstellungen die Installation auf diese Weise, und Sie erhalten stattdessen rote Fehlermeldungen. Installieren Sie PowerShell 7 dann stattdessen als verwaltetes MSI-Paket:
PS> Install-PowerShell -UseMSI
Wird PowerShell 7 als MSI-Paket installiert, erscheint ein Dialogfeld mit Installationsoptionen. Übernehmen Sie die vorgegebenen Optionen. Wenn Sie später auch remote auf PowerShell 7 zugreifen möchten, aktivieren Sie zusätzlich im Dialogfeld die Option für das sogenannte Remoting.
Auch eine unbeaufsichtigte Installation ist dabei mit dem Parameter -Quiet möglich. Ob Power-Shell indes tatsächlich mit -Quiet unbeaufsichtigt installiert werden kann, hängt davon ab, ob Sie die Installation mit vollen Administratorrechten durchführen. Ohne sie erscheint trotz -Quiet ein Dialogfeld.
Profitipp
Da PowerShell eine »portable App« ist, können Sie potenziell so viele Versionen parallel zueinander in unterschiedlichen Ordnern installieren, wie Sie mögen, oder die portable PowerShell auf einem USB-Stick mit sich führen. Allerdings führt das zwangsläufig zu einem Dilemma: Welche davon würde nun der Befehl pwsh starten?
Wenn Sie den absoluten Pfadnamen verwenden, also den kompletten Pfadnamen einschließlich der Ordner, ist die Sache klar. Wird dagegen nur pwsh eingegeben, durchsucht Windows die Ordner in der Umgebungsvariablen Path und startet den ersten Treffer. Hier ist dann also die Reihenfolge maßgeblich, in der Ihre verschiedenen Installationen in der Umgebungsvariablen Path aufgeführt sind.
Sie können den Inhalt der Umgebungsvariable mit diesem Befehl auflisten:
PS> $env:path -split ';'
C:\ps7test
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
...