Adam The Automator (Magyar)

PowerShellben van egy zillion ways to do the same thing (or close to it). Ebben a blogbejegyzésben megtudhatja, minden módon ellenőrizze PowerShell verzió, hogy van a helyi, illetve a távoli számítógépek. Fedezzük a rossz utakat és az ajánlott utat.

Ha a PowerShell newbie-ről a PowerShell guru-ra szeretne menni, azt javaslom, hogy felfalja ezt az ingyenes mini-tanfolyamot egy PowerShell eszköz építésére. Ez egy lépésről-lépésre bemutató teljes magyarázatot, útmutatást Adam az Automator!,

vannak olyan webhelyek, amelyek különféle módokat mutatnak a Powershell verzió ellenőrzéséhez. De egyik sem állította össze az összes átfogó listát. Úgy döntöttem, hogy ezen változtatok.

mindezeknek a módoknak mind a Windows PowerShell, mind a PowerShell magban működniük kell. Ezeknek a módszereknek a Windows PowerShell 1.0 verzióiban is működniük kell egészen a PowerShell 7-ig.,

a futtatott PowerShell-verzió megismerésének módjai a következők:

  1. The (Get-Host).Version property
  2. The $host.Version property
  3. the registry (csak Windows PowerShell esetén)
  4. The$PSVersionTable.PSVersion property

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

Tartalomjegyzék

Get-Host

PowerShell van egy fogalom ismert hosts. A host egy olyan program, amely otthont ad a PowerShell motornak., Nem maga a PowerShell motor.A PowerShell konzol vagy egy integrált terminállal rendelkező kódszerkesztő a PowerShell hosts.

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

ha(Get-Host).Version fut, látni fogja, hogy olyan verziószámot ad vissza, amely úgy néz ki, mint a PowerShell motor verziója. A látszat csal.

alább futottam Get-Host A Windows PowerShell 5.1-en, és láthatjuk, hogy jön vissza 5.1.17134.858., Ez úgy néz ki, mint egy legitim változat.

azonban néha, amikor a Get-Host egy integrált terminálon fut, a verzió nem ugyanaz. Bár általában a gazda ugyanazt a motort képviseli, nem mindig szükséges ezt megtenni.

ellenőrizze Powershell verzió keresztül Get-Host távoli számítógépeken

annak ellenére, hogy Get-Host úgy tűnik, hogy vissza ugyanazt a verziót, ha fut a helyi számítógépen, soha nem fog a távoli számítógépeken.,

például futtassuk aGet-Host egy távoli Windows Server 2016 kiszolgálón aInvoke-Command segítségével, és nézzük meg, mi történik.

amikor utoljára ellenőriztem, nem lehetséges a PowerShell v1 futtatása A Windows Server 2016 rendszeren.

támaszkodva Get-Host csak egy rossz ötlet az egész.

ellenőrizze Powershell verzió $ host.Version parancs

hivatkozás $host.Version egy másik módja annak, hogy ellenőrizze Powershell verzió. A$host változó egy automatikus változó, amely ugyanazt a kimenetet adja vissza, mint aGet-Host.,

hivatkozás $host.Version

semmi különös nincs ebben a módszerben. Egyszerűen ugyanaz, mint a Get-Hostfuttatása.

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

ugyanazt a viselkedést fogja látni a PowerShell Remoting segítségével a $host.Version használatával, mivel Get-Hostfut.

veszély, Will Robinson!

Registry

ha nem akarja megnyitni a PowerShell-t, ellenőrizheti a rendszerleíró adatbázist is., A PowerShell verziója a HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEnginerendszerleíró kulcs elérési útja alatt található. Ennek a rendszerleíró kulcsnak a PowerShellVersion nevű értéke van, amelyet a Get-ItemPropertyhasználatával hivatkozhat.

láthatja, hogy ez a verzió hasonló, de nem tartalmazza a felülvizsgálatot, mint a többi opció.

más eszközök használata

a rendszerleíró adatbázis használata azt is jelenti, hogy egyáltalán nem kell használni a PowerShell-t a verzió megtalálásához. Parancsokat futtathat a parancssorból vagy egy másik eszközből, amely képes olvasni a rendszerleíró adatbázist.,

rendszerleíró adatbázis távoli számítógépeken

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

ugyanazon verzió helyi és távoli megjelenítése jó. De van egy jobb módja annak, hogy megmutassam a$PSVersionTable automatikus változót.

ellenőrizze Powershell verzió keresztül $PSVersionTable.PSVersion parancs

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

The $PSVersionTable az automatikus változó csak olvasható hash tábla, amely kifejezetten a PowerShell engin verzióra vonatkozó információkat adja vissza. Ez az automatikus változó nemcsak a verziót adja vissza, hanem a PSEditionértéket is. Ez a tulajdonság Core vagy Desktop lehet, hogy további információkat szolgáltasson a futó PowerShell kiadásáról.,

$PSVersionTable output

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

$PSVersionTable az automatikus változó helyileg pontos, mivel távolról van. Az alábbiakban látható, hogy a $PSVersionTable.PSVersion szkriptblokkba csomagolva, majd a kód távoli számítógépen történő végrehajtásával ugyanazt a verziót fogja visszaadni.

összefoglaló

ebben a blogbejegyzésben megtanultad az összes módot a PowerShell verziójának ellenőrzésére mind helyben, mind távolról., Remélem, hogy az első néhány módszer ötletet adott Önnek arról, hogy milyen módon ne ellenőrizze a verziót!

mindig a$PSVersionTable.PSVersionhasználatát javaslom. 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