Hoe controleer ik of de PowerShell-versie is geïnstalleerd?
In dit artikel zullen we leren welke PowerShell-versies er zijn, wat is het verschil tussen Windows PowerShell
en PowerShell Core
, en hoe u kunt controleren welke PowerShell-versie op een lokale of externe computer is geïnstalleerd.
Geschiedenis en versies van Windows PowerShell en PowerShell Core
PowerShell wordt standaard geïnstalleerd in alle Windows-versies vanaf Windows 7 SP1 en Windows Server 2008 R2 SP1. De volgende tabel toont de lijst met alle PowerShell-versies:
PS-versie | Opmerking |
PowerShell 1.0 | Kan handmatig worden geïnstalleerd op Windows Server 2003 SP1 en Windows XP |
PowerShell 2.0 | Windows Server 2008 R2 en Windows 7 |
PowerShell 3.0 | Windows 8 en Windows Server 2012 |
PowerShell 4.0 | Windows 8.1 en Windows Server 2012 R2 |
PowerShell 5.0 | Vooraf geïnstalleerd op Windows 10 RTM en automatisch bijgewerkt naar 5.1 via Windows Update |
PowerShell 5.1 | Het is ingebouwd in Windows 10 (beginnend met Build 1709) en Windows Server 2016 |
PowerShell Core 6.0 en 6.1 | Het is de volgende platformonafhankelijke PowerShell-versie (gebaseerd op .NET Core) die kan worden geïnstalleerd op alle ondersteunde Windows-versies en op MacOS, CentOS, RHEL, Debian, Ubuntu, openSUSE |
PowerShell Core 7.0 | Het is de nieuwste PowerShell-versie uitgebracht in maart 2020 (.NET Core 3.1 wordt erin gebruikt in plaats van .NET Core 2.x) |
Het is vermeldenswaard dat Microsoft in de afgelopen 2 jaar de ontwikkeling van klassieke Windows PowerShell heeft opgeschort (alleen bugfixes en beveiligingsupdates worden vrijgegeven) en zich heeft gericht op open-source cross-platform PowerShell Core.
Wat is het verschil tussen Windows PowerShell en PowerShell Core?
- Windows PowerShell is gebaseerd op .NET Framework (PowerShell 5 vereist bijvoorbeeld .NET Framework v4.5, zorg ervoor dat het is geïnstalleerd). PowerShell Core is gebaseerd op .Net Core;
- Windows PowerShell werkt alleen in Windows-besturingssystemen, terwijl PowerShell Core platformonafhankelijk is en ook in Linux kan werken;
- PowerShell Core is niet volledig compatibel met Windows PowerShell, maar Microsoft werkt aan het verbeteren van de achterwaartse compatibiliteit met eerdere PS-cmdlets en -scripts. (het wordt aanbevolen om uw oude PS1-scripts te testen voordat u naar PowerShell Core gaat). PowerShell Core 7 biedt de hoogste compatibiliteit met Windows PowerShell;
- U kunt de PowerShell ISE Editor niet gebruiken om PowerShell Core-scripts te bewerken (maar Visual Studio Code kan worden gebruikt);
- Sinds Windows PowerShell niet langer ontwikkeld is, is het raadzaam om te beginnen met migreren naar PowerShell Core.
Hoe de PowerShell-versie van de console te krijgen?
De gemakkelijkste manier om erachter te komen welke PowerShell-versie die op uw computer is geïnstalleerd, is om de volgende opdracht te gebruiken:
host
Controleer de waarde van de eigenschap Version.
of
$PSVersionTable
U kunt alleen de PowerShell-versiewaarde ophalen :
$PSVersionTable.PSVersion.major
(in dit voorbeeld hebben we PSVersion 2.0 in schone Win dows Server 2008 R2)
Het $ PSVersionTable-commando werkt correct in PowerShell Core in verschillende besturingssystemen.
U kunt de geïnstalleerde PowerShell-versie ook achterhalen via het register. Om dit te doen, haalt u de waarde van de PowerShellVersion-parameter in de registersleutel HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
op met de cmdlet Get-ItemProperty:
In Windows Server 2008 R2 / Windows 7, kunt u de waarde van de registerparameter in een andere reg-sleutel ophalen:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine -Name "PowerShellVersion").PowerShellVersion
Gebruik het volgende commando om de geïnstalleerde PowerShell Core-versie te krijgen:
Controleer de versie van PowerShell op externe computers
Om controleer de PowerShell-versie op een externe host, gebruik de waarde van de omgevingsvariabele $ PSVersionTable of haal de informatie rechtstreeks uit het register. Andere methoden kunnen onjuiste gegevens retourneren.
U kunt de PowerShell-versie op een externe computer installeren via PowerShell Remoting met behulp van de Invoke-Command cmdlet: