Hur kontrollerar jag den installerade PowerShell-versionen?
I den här artikeln lär vi oss vilka PowerShell-versioner som finns, vad är skillnaden mellan Windows PowerShell
och PowerShell Core
, och hur man kontrollerar PowerShell-versionen installerad på en lokal eller fjärrdator.
Historik och versioner av Windows PowerShell och PowerShell Core
PowerShell är installerat som standard i alla Windows-versioner från Windows 7 SP1 och Windows Server 2008 R2 SP1. Följande tabell visar listan över alla PowerShell-versioner:
PS-version | Obs |
PowerShell 1.0 | Kan installeras manuellt på Windows Server 2003 SP1 och Windows XP |
PowerShell 2.0 | Windows Server 2008 R2 och Windows 7 |
PowerShell 3.0 | Windows 8 och Windows Server 2012 |
PowerShell 4.0 | Windows 8.1 och Windows Server 2012 R2 |
PowerShell 5.0 | Förinstallerat på Windows 10 RTM och uppdateras automatiskt till 5.1 via Windows Update |
PowerShell 5.1 | Det är inbyggt i Windows 10 (börjar med Build 1709) och Windows Server 2016 |
PowerShell Core 6.0 och 6.1 | Det är nästa plattforms-PowerShell-version (baserad på .NET Core) som kan installeras på alla Windows-versioner som stöds och på MacOS, CentOS, RHEL, Debian, Ubuntu, openSUSE |
PowerShell Core 7.0 | Det är den senaste PowerShell-versionen som släpptes i mars 2020 (.NET Core 3.1 används i den istället för .NET Core 2.x) |
Det är värt att notera att under de senaste två åren avbröts Microsoft utvecklingen av klassiska Windows PowerShell (endast buggfixar och säkerhetsuppdateringar släpps) och fokuserade på öppen källkod över plattformen PowerShell Core. p>
Vad är skillnaden mellan Windows PowerShell och PowerShell Core?
- Windows PowerShell är baserad på .NET Framework (till exempel PowerShell 5 kräver .NET Framework v4.5, se till att den är installerad). PowerShell Core är baserat på .Net Core;
- Windows PowerShell fungerar endast i Windows-operativsystem, medan PowerShell Core är plattformsoberoende och kan fungera även i Linux.
- PowerShell Core är inte helt kompatibel med Windows PowerShell, men Microsoft arbetar med att förbättra bakåtkompatibilitet med tidigare PS-cmdletar och skript. (det rekommenderas att testa dina gamla PS1-skript innan du går till PowerShell Core). PowerShell Core 7 ger högsta kompatibilitet med Windows PowerShell.
- Du kan inte använda PowerShell ISE Editor för att redigera PowerShell Core-skript (men Visual Studio-kod kan användas);
- Eftersom Windows PowerShell är inte längre utvecklad, det rekommenderas att du börjar migrera till PowerShell Core.
Hur får man PowerShell-version från konsolen?
Det enklaste sättet att ta reda på vilken PowerShell-versionen är installerad på din dator är att använda kommandot:
host
Kontrollera värdets egenskapsvärde.
eller
$PSVersionTable
Du kan bara få PowerShell-versionens värde :
$PSVersionTable.PSVersion.major
(i det här exemplet fick vi PSVersion 2,0 i ren Win dows Server 2008 R2)
$ PSVersionTable-kommandot fungerar korrekt i PowerShell Core i olika operativsystem.
Du kan också ta reda på den installerade PowerShell-versionen genom registret. För att göra det, hämta värdet av PowerShellVersion-parametern i registernyckeln HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
med hjälp av Get-ItemProperty cmdlet:
I Windows Server 2008 R2 / Windows 7 kan du få värdet av registerparametern i en annan reg-nyckel:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine -Name "PowerShellVersion").PowerShellVersion
För att få den installerade PowerShell Core-versionen, använd följande kommando:
Kontrollera PowerShell-versionen på fjärrdatorer
To kolla PowerShell-versionen på en fjärrvärd, använd värdet på miljövariabeln $ PSVersionTable eller få informationen direkt från registret. Andra metoder kan returnera felaktiga data.
Du kan få PowerShell-versionen installerad på en fjärrdator via PowerShell Remoting med hjälp av cmdleten Invoke-Command: