Hvordan kontrolleres den installerede PowerShell-version?
I denne artikel lærer vi, hvilke PowerShell-versioner der findes, hvad er forskellen mellem Windows PowerShell
og PowerShell Core
, og hvordan man kontrollerer PowerShell-versionen, der er installeret på en lokal eller ekstern computer.
Historie og versioner af Windows PowerShell og PowerShell Core
PowerShell er som standard installeret i alle Windows-versioner, der starter fra Windows 7 SP1 og Windows Server 2008 R2 SP1. Følgende tabel viser listen over alle PowerShell-versioner:
PS-version | Bemærk |
PowerShell 1.0 | Kan installeres manuelt på Windows Server 2003 SP1 og Windows XP |
PowerShell 2.0 | Windows Server 2008 R2 og Windows 7 |
PowerShell 3.0 | Windows 8 og Windows Server 2012 |
PowerShell 4.0 | Windows 8.1 og Windows Server 2012 R2 |
PowerShell 5.0 | Forudinstalleret på Windows 10 RTM og opdateret automatisk til 5.1 via Windows Update |
PowerShell 5.1 | Det er indbygget i Windows 10 (startende med Build 1709) og Windows Server 2016 |
PowerShell Core 6.0 og 6.1 | Det er den næste PowerShell-version på tværs af platforme (baseret på .NET Core), der muligvis installeres på alle understøttede Windows-versioner og på MacOS, CentOS, RHEL, Debian, Ubuntu, openSUSE |
PowerShell Core 7.0 | Det er den seneste PowerShell-version, der blev frigivet i marts 2020 (.NET Core 3.1 bruges i den i stedet for .NET Core 2.x) |
Det er værd at bemærke, at i løbet af de sidste 2 år har Microsoft suspenderet udviklingen af klassiske Windows PowerShell (kun fejlrettelser og sikkerhedsopdateringer frigives) og fokuseret på open source cross-platform PowerShell Core.
Hvad er forskellen mellem Windows PowerShell og PowerShell Core?
- Windows PowerShell er baseret på .NET Framework (f.eks. kræver PowerShell 5 .NET Framework v4.5, sørg for at det er installeret). PowerShell Core er baseret på .Net Core;
- Windows PowerShell fungerer kun i Windows-operativsystemer, mens PowerShell Core er platformoverskridende og kan også fungere i Linux;
- PowerShell Core er ikke fuldt ud kompatibel med Windows PowerShell, men Microsoft arbejder på at forbedre bagudkompatibilitet med tidligere PS-cmdlets og scripts. (det anbefales at teste dine gamle PS1-scripts, før du flytter til PowerShell Core). PowerShell Core 7 giver den højeste kompatibilitet med Windows PowerShell;
- Du kan ikke bruge PowerShell ISE Editor til at redigere PowerShell Core-scripts (men Visual Studio-kode kan bruges);
- Da Windows PowerShell er ikke længere udviklet, anbefales det, at du begynder at migrere til PowerShell Core.
Sådan får du PowerShell-version fra konsollen?
Den nemmeste måde at finde ud af, hvilken PowerShell-version er installeret på din computer er at bruge kommandoen:
host
Kontroller versionens egenskabsværdi.
eller
$PSVersionTable
Du kan kun få PowerShell-versionens værdi :
$PSVersionTable.PSVersion.major
(i dette eksempel fik vi PSVersion 2,0 i ren Win dows Server 2008 R2)
$ PSVersionTable-kommandoen fungerer korrekt i PowerShell Core i forskellige operativsystemer.
Du kan også finde ud af den installerede PowerShell-version gennem registreringsdatabasen. For at gøre det skal du hente værdien af PowerShellVersion-parameteren i registreringsdatabasenøglen HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
ved hjælp af Get-ItemProperty cmdlet:
I Windows Server 2008 R2 / Windows 7, kan du få værdien af registreringsdatabase-parameteren i en anden reg-nøgle:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine -Name "PowerShellVersion").PowerShellVersion
For at få den installerede PowerShell Core-version skal du bruge følgende kommando:
Kontroller PowerShell-version på fjerncomputere
Til tjek PowerShell-versionen på en ekstern vært, brug værdien af miljøvariablen $ PSVersionTable eller få oplysningerne direkte fra registreringsdatabasen. Andre metoder kan returnere forkerte data.
Du kan få PowerShell-versionen installeret på en fjerncomputer via PowerShell Remoting ved hjælp af Invoke-Command-cmdlet: