Jak sprawdzić zainstalowaną wersję programu PowerShell?
W tym artykule dowiemy się, jakie wersje PowerShell istnieją, jaka jest różnica między Windows PowerShell
a PowerShell Core
i jak sprawdzić wersję programu PowerShell zainstalowaną na komputerze lokalnym lub zdalnym.
Historia i wersje programu Windows PowerShell i PowerShell Core
PowerShell jest domyślnie instalowany we wszystkich wersjach systemu Windows, począwszy od Windows 7 SP1 i Windows Server 2008 R2 SP1. Poniższa tabela przedstawia listę wszystkich wersji PowerShell:
Wersja PS | Uwaga |
PowerShell 1.0 | Można zainstalować ręcznie w systemie Windows Server 2003 SP1 i Windows XP |
PowerShell 2.0 | Windows Server 2008 R2 i Windows 7 |
PowerShell 3.0 | Windows 8 i Windows Server 2012 |
PowerShell 4.0 | Windows 8.1 i Windows Server 2012 R2 |
PowerShell 5.0 | Preinstalowany w systemie Windows 10 RTM i automatycznie aktualizowany do wersji 5.1 przez Windows Update |
PowerShell 5.1 | Jest wbudowany w system Windows 10 (począwszy od kompilacji 1709) i Windows Server 2016 |
PowerShell Core 6.0 i 6.1 | Jest to kolejna wieloplatformowa wersja PowerShell (oparta na .NET Core), która może zostać zainstalowana we wszystkich obsługiwanych wersjach systemu Windows i na MacOS, CentOS, RHEL, Debian, Ubuntu, openSUSE |
PowerShell Core 7.0 | Jest to najnowsza wersja programu PowerShell wydana w marcu 2020 r. (zamiast .NET Core 2.x zastosowano w niej .NET Core 3.1) |
Warto zauważyć, że w ciągu ostatnich 2 lat Microsoft zawiesił rozwój klasycznego Windows PowerShell (publikowane są tylko poprawki błędów i aktualizacje zabezpieczeń) i skupił się na wieloplatformowym Open Source PowerShell Core.
Jaka jest różnica między Windows PowerShell i PowerShell Core?
- Windows PowerShell jest oparty na .NET Framework (na przykład PowerShell 5 wymaga .NET Framework v4.5, upewnij się, że jest zainstalowany). PowerShell Core jest oparty na .Net Core;
- Windows PowerShell działa tylko w systemach operacyjnych Windows, podczas gdy PowerShell Core jest wieloplatformowy i może działać również w Linuksie;
- PowerShell Core jest nie jest w pełni zgodny z programem Windows PowerShell, jednak firma Microsoft pracuje nad poprawą zgodności z wcześniejszymi poleceniami cmdlet i skryptami PS. (zaleca się przetestowanie starych skryptów PS1 przed przejściem do PowerShell Core). PowerShell Core 7 zapewnia najwyższą zgodność z Windows PowerShell;
- Nie można używać edytora PowerShell ISE do edycji skryptów PowerShell Core (ale można użyć Visual Studio Code);
- Ponieważ Windows PowerShell nie jest już rozwijany, zaleca się rozpoczęcie migracji do programu PowerShell Core.
Jak pobrać wersję PowerShell z konsoli?
Najłatwiejszy sposób sprawdzenia, który Wersja PowerShell jest zainstalowana na komputerze, należy użyć polecenia:
host
Sprawdź wartość właściwości Version.
lub
$PSVersionTable
Możesz pobrać tylko wartość wersji programu PowerShell :
$PSVersionTable.PSVersion.major
(w tym przykładzie otrzymaliśmy PSVersion 2.0 w czystym Win dows Server 2008 R2)
Polecenie $ PSVersionTable działa poprawnie w PowerShell Core w różnych systemach operacyjnych.
Możesz również sprawdzić zainstalowaną wersję PowerShell za pośrednictwem rejestru. Aby to zrobić, pobierz wartość parametru PowerShellVersion z klucza rejestru HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
za pomocą polecenia cmdlet Get-ItemProperty:
W systemie Windows Server 2008 R2 / Windows 7, możesz pobrać wartość parametru rejestru w innym kluczu reg:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine -Name "PowerShellVersion").PowerShellVersion
Aby pobrać zainstalowaną wersję PowerShell Core, użyj następującego polecenia:
Sprawdź wersję PowerShell na komputerach zdalnych
Aby sprawdź wersję programu PowerShell na zdalnym hoście, użyj wartości zmiennej środowiskowej $ PSVersionTable lub uzyskaj informacje bezpośrednio z rejestru. Inne metody mogą zwracać nieprawidłowe dane.
Możesz pobrać wersję PowerShell zainstalowaną na komputerze zdalnym przez PowerShell Remoting za pomocą polecenia cmdlet Invoke-Command: