v PowerShell Existuje milion způsobů, jak udělat totéž (nebo blízko k němu). V tomto příspěvku na blogu se naučíte každý způsob, jak zkontrolovat verzi PowerShell, kterou máte na místních a vzdálených počítačích. Pokryjeme špatné cesty a můj doporučený způsob.
Pokud byste chtěli jít z PowerShell nováček PowerShell guru, doporučuji hltat to ZDARMA mini-kurz na budování PowerShell nástroj. Toto je podrobný návod s úplnými vysvětleními a pokyny od Adama Automatora!,
existují webové stránky, které ukazují různé způsoby kontroly verze Powershell. Ale žádný, který sestavil komplexní seznam všech. Rozhodl jsem se to změnit.
všechny tyto způsoby by měly fungovat jak v systému Windows PowerShell, tak v jádru PowerShell. Tyto metody by měly fungovat také ve Windows PowerShell verze 1.0 až do PowerShell 7.,
způsobů, jak můžete zjistit verzi PowerShell používáte, jsou:
(Get-Host).Version
ubytování$host.Version
ubytování- registru (pro Windows PowerShell)
$PSVersionTable.PSVersion
ubytování
Pojďme rozebrat všechny způsoby, jak najít verzi PowerShell od nejméně k nejvíce doporučený způsob.
obsah
get-Host
PowerShell má koncept známý jako hostitelé. Hostitel je program, který je hostitelem motoru PowerShell., Není to samotný motor PowerShell.Konzola PowerShell nebo editor kódu s integrovaným terminálem jsou hostitelé PowerShell.
hostitel může mít verzi, která je zcela nezávislá na samotném PowerShellu. To může klamat mnoho nováčků. Ukážu vám proč.
Pokud spustíte (Get-Host).Version
, uvidíte, že vrátí číslo verze, která vypadá, že by to mohla být verze motoru PowerShell. Vzhled může klamat.
Níže jsem běžel Get-Host
na Windows PowerShell 5.1 a můžete vidět, že se vrací s 5.1.17134.858., Vypadá to jako legitimní verze.
někdy však při spuštění Get-Host
v integrovaném terminálu není verze stejná. I když obvykle hostitel bude představovat stejnou verzi motoru, to není nutné vždy dělat.
Zkontrolujte Verzi Powershell pomocí Get-Host na Vzdálených Počítačích
I když Get-Host
se zdá, že návrat stejnou verzi při spuštění na místním počítači, to nikdy nebude na vzdálených počítačích.,
například, řekněme, spustit Get-Host
na vzdáleném Serveru systému Windows server 2016 pomocí Invoke-Command
a uvidíme, co se stane.
při poslední kontrole není možné spustit PowerShell v1 na Windows Server 2016.
spoléhat se na Get-Host
je prostě špatný nápad všude kolem.
zkontrolujte Powershell verze $ host.Příkaz verze
odkazování $host.Version
je dalším způsobem, jak zkontrolovat verzi Powershell. Proměnná$host
je automatická proměnná, která vrací stejný výstup jako Get-Host
.,
není nic zvláštního o této metodě. Je to prostě stejné jako běh Get-Host
.
$host.Verze na Vzdálených Počítačích
uvidíte stejné chování přes PowerShell Remoting s $host.Version
jak jste se běží Get-Host
.
nebezpečí, Will Robinson!
Registry
Pokud nechcete otevřít PowerShell sám, můžete také zkontrolovat registr., Verze PowerShell je zastrčena pod hodnotou v cestě klíče registru HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
. Tento klíč registru má hodnotu nazvanou PowerShellVersion
, na kterou můžete odkazovat pomocí Get-ItemProperty
.
můžete vidět, že tato verze je podobná, ale nezahrnuje revizi jako ostatní možnosti.
použití jiných nástrojů
použití registru také znamená, že pro nalezení verze nemusíte používat PowerShell vůbec. Můžete spustit příkazy z příkazového řádku nebo jiného nástroje, který umí číst registr.,
registr na vzdálených počítačích
registr je statický a hodnoty se nezmění lokálně ani vzdáleně. Můžete si být jisti, že to, co vidíte lokálně, bude stejné, jak vidíte na dálku.
zobrazení stejné verze lokálně a vzdáleně je dobré. Ale mám lepší způsob, jak vám ukázat pomocí automatické proměnné $PSVersionTable
.
Zkontrolujte verzi Powershell přes $ PSVersionTable.PSVersion příkaz
poslední a poslední metoda je odkazování na PSVersion
vlastnost $PSVersionTable
automatické proměnné., Tato metoda bude vždy představovat Motor PowerShell.
$PSVersionTable
automatická proměnná je jen pro čtení hash tabulku, která vrátí informace konkrétně o PowerShell engin verze. Tato automatická proměnná vrací nejen verzi, ale také PSEdition
. Tato vlastnost může buď jádro nebo Desktop poskytnout další informace o vydání PowerShell, který je spuštěn.,
$PSVersionTable na Vzdálených Počítačích
Pomocí $PSVersionTable
automatické proměnné jsou přesné místně jako je na dálku. Níže vidíte, že zabalením$PSVersionTable.PSVersion
do scriptblocku a provedením tohoto kódu na vzdáleném počítači vrátí stejnou verzi.
Shrnutí
V tomto blogu, jste se naučili všechny způsoby, jak zkontrolovat verzi Powershellu lokálně i vzdáleně., Doufám, že prvních pár metod vám dalo představu o tom, jak nekontrolovat verzi!
doporučuji vždy používat $PSVersionTable.PSVersion
. Všechny ostatní metody se mohou zdát podobné verzi motoru PowerShell, ale nemusí vždy odrážet verzi motoru.