în PowerShell, există un zillion moduri de a face același lucru (sau aproape de el). În această postare pe blog, veți afla în orice mod verificați versiunea PowerShell pe care o aveți pe computerele locale și la distanță. Vom acoperi căile rele și modul meu recomandat.
Dacă doriți să treceți de la PowerShell newbie la PowerShell guru, vă recomand să devorați acest mini-curs gratuit pentru construirea unui instrument PowerShell. Acesta este un tutorial pas cu pas cu explicații complete și îndrumări de la Adam Automator!,
există site-uri web care arată diferite moduri de a verifica versiunea Powershell. Dar nici unul care a compilat o listă cuprinzătoare a tuturor acestora. Am decis să schimb asta.toate aceste moduri ar trebui să funcționeze atât în Windows PowerShell, cât și în PowerShell Core. Aceste metode ar trebui să funcționeze și în versiunile Windows PowerShell 1.0 până la PowerShell 7.,
modalități În care puteți găsi o versiune de PowerShell esti de funcționare sunt:
-
(Get-Host).Version
proprietate -
$host.Version
proprietate - registry (Windows PowerShell numai)
-
$PSVersionTable.PSVersion
proprietate
Să rupe în jos toate căile pentru a găsi versiunea de PowerShell la cel mai mic la cel mai recomandat mod.
cuprins
Get-Host
PowerShell are un concept cunoscut sub numele de gazde. O gazdă este un program care găzduiește motorul PowerShell., Nu este motorul PowerShell în sine.Consola PowerShell sau un editor de cod cu un terminal Integrat sunt gazdele PowerShell.o gazdă poate avea o versiune care este complet independentă de PowerShell în sine. Acest lucru poate fi înșelător pentru mulți nou-veniți. Să-ți arăt de ce.
Dacă executați (Get-Host).Version
, veți vedea că returnează un număr de versiune care pare a fi versiunea motorului PowerShell. Aspectul poate fi înșelător.
mai Jos am fugit Get-Host
pe Windows PowerShell 5.1 și puteți vedea că vine înapoi cu 5.1.17134.858., Aceasta pare a fi o versiune legitimă.
cu toate acestea, uneori când executați Get-Host
într-un terminal integrat, versiunea nu este aceeași. Deși, de obicei, gazda va reprezenta aceeași versiune a motorului, nu este necesar să facă întotdeauna asta.
Verificați versiunea Powershell prin Get-Host pe computere la distanță
chiar dacă Get-Host
pare să returneze aceeași versiune atunci când rulează pe un computer local, nu va fi niciodată pe computere la distanță.,
De exemplu, să rula Get-Host
pe o distanță Windows Server 2016 server prin Invoke-Command
și să vedem ce se întâmplă.ultima dată când am verificat, nu este posibil să rulați PowerShell v1 pe Windows Server 2016.
bazându-se pe Get-Host
este doar o idee proastă peste tot în jurul.
Verificați versiunea Powershell $host.Comanda versiunii
referențierea $host.Version
este un alt mod de a verifica versiunea Powershell. Variabila $host
este o variabilă automată care returnează aceeași ieșire ca Get-Host
.,
Nu e nimic special la aceasta metoda. Este pur și simplu la fel ca rularea Get-Host
.
$ gazdă.Versiune pe computere la distanță
veți vedea același comportament prin PowerShell Remoting cu $host.Version
pe măsură ce va rula Get-Host
.pericol, Will Robinson!dacă nu doriți să deschideți PowerShell în sine, puteți verifica și registrul., Versiunea PowerShell este ascunsă sub o valoare în calea cheii de registru HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
. Această cheie de registru are o valoare numită PowerShellVersion
pe care o puteți referi folosind Get-ItemProperty
.puteți vedea că această versiune este similară, dar nu include revizuirea ca și celelalte opțiuni.
Utilizarea altor instrumente
utilizarea registrului înseamnă, de asemenea, că nu trebuie să utilizați PowerShell deloc pentru a găsi versiunea. Puteți rula comenzi de la promptul de comandă sau de la un alt instrument care poate citi Registrul.,
registru pe computere la distanță
registrul este static și valorile nu se vor schimba local sau de la distanță. Puteți avea încredere că ceea ce vedeți Local va fi același pe care îl vedeți de la distanță.afișarea aceleiași versiuni la nivel local și de la distanță este bună. Dar am o modalitate mai bună de a vă arăta folosind variabila automată $PSVersionTable
.
Verificați versiunea Powershell prin $PSVersionTable.PSVersion comanda
ultima și ultima metodă este corelarea PSVersion
proprietate pe $PSVersionTable
automată variabilă., Această metodă va reprezenta întotdeauna motorul PowerShell.
$PSVersionTable
automată variabilă este un read-only tabel hash care returnează informații în special despre PowerShell engin versiune. Această variabilă automată nu numai că returnează versiunea, ci și PSEdition
. Această proprietate poate fie Core sau Desktop pentru a oferi informații suplimentare cu privire la ediția de PowerShell care se execută.,
$PSVersionTable pe Computerele de la Distanță
cu Ajutorul $PSVersionTable
automată variabilă sunt corecte local ca este de la distanță. Puteți vedea mai jos că de ambalaj $PSVersionTable.PSVersion
într-un scriptblock și executarea acel cod de pe un computer la distanță, se va reveni la aceeași versiune.
rezumat
În această postare pe blog, ați învățat toate modalitățile de a verifica versiunea PowerShell atât local, cât și de la distanță., Sper că primele câteva metode ți-au dat o idee despre ce modalități să nu verifici versiunea!
vă recomandăm să utilizați întotdeauna $PSVersionTable.PSVersion
. Toate celelalte metode pot părea similare cu versiunea motorului PowerShell, dar pot să nu reflecte întotdeauna versiunea motorului.