Adam Automator (Čeština)

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:

  1. (Get-Host).Version ubytování
  2. $host.Version ubytování
  3. registru (pro Windows PowerShell)
  4. $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.,

Odkazující $host.Version

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 výstup

$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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *