Jak zkontrolovat nainstalovanou verzi PowerShellu?
V tomto článku se dozvíme, jaké verze prostředí PowerShell existují, jaký je rozdíl mezi Windows PowerShell
a PowerShell Core
a jak zkontrolovat verzi PowerShellu nainstalovanou v místním nebo vzdáleném počítači.
Historie a verze prostředí Windows PowerShell a PowerShell Core
PowerShell je ve výchozím nastavení nainstalován ve všech verzích Windows počínaje Windows 7 SP1 a Windows Server 2008 R2 SP1. V následující tabulce je uveden seznam všech verzí prostředí PowerShell:
Verze PS | Poznámka |
PowerShell 1.0 | Lze nainstalovat ručně na Windows Server 2003 SP1 a Windows XP |
PowerShell 2.0 | Windows Server 2008 R2 a Windows 7 |
PowerShell 3.0 | Windows 8 a Windows Server 2012 |
PowerShell 4.0 | Windows 8.1 a Windows Server 2012 R2 |
PowerShell 5.0 | Předinstalováno na Windows 10 RTM a automaticky aktualizováno na 5.1 prostřednictvím Windows Update |
PowerShell 5.1 | Je integrováno do Windows 10 (počínaje sestavením 1709) a Windows Server 2016 |
PowerShell Core 6.0 a 6.1 | Jedná se o další verzi platformy PowerShell pro různé platformy (založenou na .NET Core), kterou lze nainstalovat na všech podporovaných verzích Windows a na MacOS, CentOS, RHEL, Debian, Ubuntu, openSUSE |
PowerShell Core 7.0 | Jedná se o nejnovější verzi PowerShell vydanou v březnu 2020 (místo ní .NET Core 2.x je v ní použito .NET Core 3.1) |
Za zmínku stojí, že v posledních 2 letech Microsoft pozastavil vývoj klasického prostředí Windows PowerShell (vydávají se pouze opravy chyb a aktualizace zabezpečení) a zaměřil se na open-source cross-platform PowerShell Core.
Jaký je rozdíl mezi Windows PowerShell a PowerShell Core?
- Windows PowerShell je založen na .NET Framework (například PowerShell 5 vyžaduje .NET Framework v4.5, ujistěte se, že je nainstalován). PowerShell Core je založen na .Net Core;
- Windows PowerShell funguje pouze v operačních systémech Windows, zatímco PowerShell Core je multiplatformní a může fungovat i v Linuxu;
- PowerShell Core je není plně kompatibilní s Windows PowerShell, ale Microsoft pracuje na zlepšení zpětné kompatibility s dřívějšími rutinami a skripty PS. (před přechodem na PowerShell Core se doporučuje otestovat staré skripty PS1). PowerShell Core 7 poskytuje nejvyšší kompatibilitu s Windows PowerShell;
- K úpravám skriptů PowerShell Core nemůžete použít editor ISE PowerShell (lze však použít Visual Studio Code);
- Protože Windows PowerShell již není vyvíjen, doporučujeme zahájit migraci na PowerShell Core.
Jak získat verzi PowerShell z konzoly?
Nejjednodušší způsob, jak zjistit, který Verze PowerShellu nainstalovaná v počítači slouží k použití příkazu:
host
Zkontrolujte hodnotu vlastnosti Verze.
nebo
$PSVersionTable
Hodnotu verze PowerShellu můžete získat pouze :
$PSVersionTable.PSVersion.major
(v tomto příkladu máme PSVersion 2.0 v čisté výhře dows Server 2008 R2)
Příkaz $ PSVersionTable funguje správně v prostředí PowerShell Core v různých operačních systémech.
Nainstalovanou verzi prostředí PowerShell můžete zjistit také prostřednictvím registru. Chcete-li to provést, získejte hodnotu parametru PowerShellVersion v klíči registru HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
pomocí rutiny Get-ItemProperty:
V systému Windows Server 2008 R2 / Windows 7, můžete získat hodnotu parametru registru v jiném reg klíči:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine -Name "PowerShellVersion").PowerShellVersion
Chcete-li získat nainstalovanou verzi PowerShell Core, použijte následující příkaz:
Zkontrolovat verzi PowerShell na vzdálených počítačích
zkontrolujte verzi PowerShellu na vzdáleném hostiteli, použijte hodnotu proměnné prostředí $ PSVersionTable nebo získejte informace přímo z registru. Jiné metody mohou vrátit nesprávná data.
Můžete si nainstalovat verzi PowerShellu na vzdáleném počítači pomocí prostředí PowerShell Remoting pomocí rutiny Invoke-Command: