Ádám, az Automatizáló

A PowerShellben több mint száz módszer létezik ugyanarra (vagy annak közelében). Ebben a blogbejegyzésben megtudhatja, hogyan ellenőrizheti a helyi és távoli számítógépeken használt PowerShell verziót. Kitérünk a rossz módszerekre és az általam ajánlott módokra.

Ha a PowerShell újoncról a PowerShell gurura szeretne menni, akkor azt javaslom, hogy felfalja ezt az INGYENES mini tanfolyam a PowerShell eszköz felépítéséről. Ez egy lépésről lépésre bemutató útmutató, amely teljes magyarázatokat és útmutatásokat nyújt Ádám Automata részéről!

Vannak olyan webhelyek, amelyek különböző módon mutatják be a Powershell verziójának ellenőrzését. De egyik sem állította össze az összes átfogó listáját. Úgy döntöttem, hogy ezen változtatok.

Mindezeknek a módoknak működniük kell a Windows PowerShell és a PowerShell Core programokban egyaránt. Ezeknek a módszereknek a Windows PowerShell 1.0 verzióiban is működniük kell, egészen a PowerShell 7-ig.

A PowerShell futtatott verziójának megismerésére a következő módok tartoznak:

  1. A (Get-Host).Version tulajdonság
  2. A $host.Version tulajdonság
  3. A rendszerleíró adatbázis (csak a Windows PowerShell)
  4. A $PSVersionTable.PSVersion tulajdonság

Bontjuk le a PowerShell verziójának megtalálásának minden módját a legkevésbé ajánlott módon .

Tartalom-jegyzék

Get-Host

A PowerShell fogalmát hostként ismerik. A gazdagép egy olyan program, amely a PowerShell motort tárolja. Nem maga a PowerShell motor. A PowerShell konzol vagy az integrált terminállal rendelkező kódszerkesztő a PowerShell hosztja.

A gazdagépnek lehet olyan verziója, amely teljesen független magától a PowerShelltől. Ez sok újonc számára megtévesztő lehet. Hadd mutassam meg, miért.

Ha az (Get-Host).Version programot futtatja, akkor látni fogja, hogy a verziószámot úgy adja vissza, mintha a PowerShell motor verziója lenne. A látszat megtévesztő lehet.

Az alábbiakban a Get-Host fájlt futtattam a Windows PowerShell 5.1-en, és láthatja, hogy 5.1.17134.858-mal érkezik. Ez törvényes verziónak tűnik.

Azonban néha, amikor a Get-Host parancsot integrált terminálon futtatja, a verzió nem ugyanaz. Bár általában a gazdagép a motor ugyanazon verzióját fogja képviselni, nem mindig szükséges ezt megtenni.

Ellenőrizze a Powershell verziót a távoli számítógépeken található Get-Host segítségével

Annak ellenére, hogy Get-Host ugyanazt a verziót adja vissza, ha helyi számítógépen futtatja, távoli számítógépeken pedig soha.

Futtassuk például: Get-Host egy távoli Windows Server 2016 szerveren a Invoke-Command keresztül, és nézze meg, mi történik.

A legutóbbi ellenőrzéskor nem lehet futtatni a PowerShell v1-et Windows Server 2016.

Az Get-Host hivatkozás csak rossz ötlet.

Ellenőrizze a Powershell $ host host verzióját. Verzió parancs

A $host.Version hivatkozás a Powershell verziójának másik ellenőrzési módja. A $host változó egy automatikus változó, amely ugyanazt a kimenetet adja vissza, mint a Get-Host.

Hivatkozás $host.Version

Nincs semmi különös ebben a módszerben. Egyszerűen megegyezik a Get-Host futtatásával.

$ host.Version távoli számítógépeken

Ugyanezt a viselkedést fogja látni a PowerShell segítségével Remoting with $host.Version a Get-Host futtatásakor.

Veszély, Will Robinson!

Nyilvántartás

Ha nem akarja megnyitni magát a PowerShellt, akkor ellenőrizheti a rendszerleíró adatbázist is. A PowerShell verziója el van rejtve a HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine rendszerleíró kulcs elérési útjának egyik értéke alatt. Ennek a rendszerleíró kulcsnak van egy PowerShellVersion nevű értéke, amelyre a Get-ItemProperty használatával hivatkozhat.

Láthatja, hogy ez verzió hasonló, de nem tartalmazza a változatot, mint a többi opció.

Egyéb eszközök használata

A rendszerleíró adatbázis használata azt is jelenti, hogy egyáltalán nem kell a PowerShellt használni a verzió. Futtathat parancsokat a parancssorból vagy egy másik eszközből, amely képes olvasni a rendszerleíró adatbázist.

Nyilvántartás távoli számítógépeken

A rendszerleíró adatbázis statikus, és az értékek nem változnak helyileg vagy távolról. Biztos lehet benne, hogy amit helyben lát, ugyanaz lesz, mint távolról.

Helyes és távoli azonos verzió megjelenítése jó. De van egy jobb módom a $PSVersionTable automatikus változó használatával.

Ellenőrizze a Powershell verzióját a $ PSVersionTable.PSVersion paranccsal

Az utolsó és az utolsó módszer az PSVersion tulajdonság hivatkozása az $PSVersionTable automatikus változóra.Ez a módszer mindig a PowerShell motort fogja képviselni.

Az $PSVersionTable automatikus változó csak olvasható hash tábla amely kifejezetten a PowerShell engin verzióról ad információt. Ez az automatikus változó nemcsak a verziót adja vissza, hanem PSEdition is. Ez a tulajdonság akár a Core, akár az Asztalon további információkat nyújt a futó PowerShell kiadásról.

$ PSVersionTable kimenet

$ PSVersionTable távoli számítógépeken

A automatikus változó helyileg pontos, mivel távolról van. Az alábbiakban láthatja, hogy ha $PSVersionTable.PSVersion csomagol egy szkriptblokkba, és végrehajtja a kódot egy távoli számítógépen, akkor az ugyanazt a verziót adja vissza.

Összegzés

Ebben a blogbejegyzésben megtanulta a PowerShell verziójának helyi és távoli ellenőrzésének összes módját. Remélem, hogy az első néhány módszer ötletet adott arra, hogy milyen módon ne ellenőrizze a verziót!

Javasoljuk, hogy mindig használja a $PSVersionTable.PSVersion parancsot. Az összes többi módszer hasonló lehet a PowerShell motor verziójához, de nem mindig tükrözi a motor verzióját.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük