Jak sprawdzić zainstalowaną wersję Powershell?


 

ps_cmd_300Pisaliśmy o instalacji PS 3.0, warto więc poznać kilka sposobów na sprawdzenie jaką wersję Powershell macie zainstalowaną. Może Wam się to przydać np. w skryptach, które zachowają się zależnie od zainstalowanej wersji, lub gdy chcecie sprawdzić dlaczego jakiś cmdlet u Was nie działa.

Sprawdzenie możemy wykonać na wiele sposobów. Podam Wam kilka z nich: w oknie CMD, w oknie Powershell lub w Rejestrze.

W CMD jak pewnie wiecie, polecenia Powershell można wywoływać w ten sposób:

powershell XYZ

..gdzie XYZ to komendy z Powershella.

Przejdźmy zatem do poleceń PS, które wyjawią nam całą prawdę. Możemy wpisać nazwę zmiennej „$PSVersionTable”, co w efekcie poda nam kilka wartości, podobnych do tego:

PS C:\Users\Administrator> $PSVersionTable
Name                           Value
—-                           —–
WSManStackVersion              3.0
PSCompatibleVersions           {1.0, 2.0, 3.0}
SerializationVersion           1.1.0.1
BuildVersion                   6.2.9200.16398
PSVersion                      3.0
CLRVersion                     4.0.30319.1008
PSRemotingProtocolVersion      2.2

Nas najbardziej oczywiście interesuje wers zawierający frazę „PSVersion”. Możemy zatem troszkę „uczłowieczyć” wyświetlany wynik:

PS C:\Users\Administrator> $PSVersionTable.psversion
Major  Minor  Build  Revision
—–  —–  —–  ——–
3      0      -1     -1

Kolejnym poleceniem, jakie wyświietli wersję PS jest „get-host”.

PS C:\Users\Administrator> get-host
Name             : ConsoleHost
Version          : 3.0
InstanceId       : 4e396f0e-d271-40d9-9381-85913b2c810e
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : pl-PL
CurrentUICulture : pl-PL
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

Skrócenie wyświetlanego wyniku możemy wykonać poprzez zastosowanie pipe:

PS C:\Users\derock> get-host | Select-Object Version
Version
——-
3.0

Wspomniałem również, że możemy podejrzeć rejestr. Każda wersja Powershella tworzy gałąź z numerem (1,2,3,4) który odpowiada posiadanej wersji. Numerów może być więcej niż jeden – najwyższy możemy uznać za wersję Powershella, a niższe za kompatybilność wsteczną.

reg query HKLM\Software\Microsoft\PowerShell\

Przykładowy wynik:

HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1
HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\3

Jeśli znacie jakiś inny ciekawy sposób, zachęcam do komentowania :)


Podobne Tematy:

  • Rafał Witowski

    Mam naprawić WIndows Edge przy pomocy powershell, więc się zapoznaję z tym narzędziem.