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:
- The
(Get-Host).Version
property - The
$host.Version
property - the registry (csak Windows PowerShell esetén)
- 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
.,
semmi különös nincs ebben a módszerben. Egyszerűen ugyanaz, mint a Get-Host
futtatá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-Host
fut.
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\PowerShellEngine
rendszerleíró kulcs elérési útja alatt található. Ennek a rendszerleíró kulcsnak a PowerShellVersion
nevű értéke van, amelyet a Get-ItemProperty
haszná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 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.PSVersion
haszná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.