Adam Automator

I PowerShell, det er en zillion måter å gjøre det samme (eller nesten). I dette blogg innlegget, vil du lære alle måter sjekk PowerShell-versjon du har på lokale og eksterne datamaskiner. Vi vil dekke den dårlige veier og mine anbefalte måte.

Hvis du ønsker å gå fra PowerShell nybegynner til PowerShell guru, anbefaler jeg sluker denne GRATIS mini-kurs om å bygge en PowerShell-verktøyet. Dette er en steg-for-steg tutorial med full forklaringer og veiledning fra Adam Automator!,

Det finnes nettsteder som viser ulike måter å sjekke Powershell-versjon. Men ingen som er utarbeidet en omfattende liste over alle dem. Jeg bestemte meg for å endre på dette.

Alle disse måter skal fungere i både Windows PowerShell og PowerShell Kjerne. Disse metodene bør også fungere i Windows PowerShell versjon 1.0 hele veien opp til PowerShell-7.,

måter du kan finne ut en versjon av PowerShell du kjører er:

  1. (Get-Host).Version eiendel
  2. $host.Version eiendel
  3. registeret (Windows PowerShell bare)
  4. $PSVersionTable.PSVersion eiendel

La oss bryte ned alle måter å finne den versjonen av PowerShell fra minst til mest anbefalte måten.

Innholdsfortegnelse

Få-Vert

PowerShell har et konsept som er kjent som verter. En vert er et program som er vert for PowerShell-motoren., Det er ikke PowerShell-motoren i seg selv.PowerShell-konsollen eller en kode editor med et integrert terminal er PowerShell, allhers gud.

En verten kan ha en versjon som er helt uavhengig av PowerShell i seg selv. Dette kan være lure å mange nykommere. La meg vise deg hvorfor.

Hvis du kjører (Get-Host).Version, vil du se at den returnerer et versjonsnummer som ser ut som det kan bli PowerShell-motoren versjon. Utseende kan bedra.

Nedenfor har jeg kjørte Get-Host Windows PowerShell 5.1 og du kan se at den kommer tilbake med 5.1.17134.858., Dette ser ut som en legitim versjon.

Men, noen ganger når du kjører Get-Host i en integrert terminal, versjon er ikke det samme. Selv om det vanligvis vil være vert representerer samme versjon av motoren, er det ikke nødvendig å alltid gjøre det.

Se Powershell-Versjon via Get-Vert på Eksterne Datamaskiner

Selv om Get-Host ser ut til å returnere den samme versjonen når du kjører på en lokal datamaskin, det vil aldri på eksterne datamaskiner.,

For eksempel, la oss kjøre Get-Host på en ekstern Windows Server 2016 server via Invoke-Command og se hva som skjer.

sist gang jeg sjekket, det er ikke mulig å kjøre PowerShell-v1 på Windows Server 2016.

å Stole på Get-Host er bare en dårlig idé, alle rundt.

Sjekk Powershell Versjon $host.Versjon kommandoen

Referanse $host.Version er en annen måte å sjekke Powershell-versjon. $host variabel er en automatisk variabel som gir samme effekt som Get-Host.,

Referanse $host.Version

Det er ikke noe spesielt om denne metoden. Det er rett og slett det samme som å kjøre Get-Host.

$host.Versjonen på Eksterne Datamaskiner

Du vil se den samme atferd via PowerShell Remoting med $host.Version så vil du kjører Get-Host.

Fare, Vil Robinson!

Register

Hvis du ikke ønsker å åpne opp PowerShell selv, kan du også sjekke registeret., Den versjonen av PowerShell er gjemt bort under en verdi i registernøkkelen bane HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine. Denne registernøkkelen har en verdi som kalles PowerShellVersion som du kan bruke ved hjelp av Get-ItemProperty.

Du kan se at denne versjonen er tilsvarende, men som ikke omfatter revisjon som de andre alternativene gjøre.

Bruke Andre Verktøy

ved Hjelp av registeret betyr også at du ikke trenger å bruke PowerShell til å finne den versjonen. Du kan kjøre kommandoer fra ledeteksten eller et annet verktøy som kan lese registeret.,

Registret på Eksterne Datamaskiner

registret er statisk og verdier vil ikke endres lokalt eller eksternt. Du kan være trygg på at det du ser lokalt vil være den samme som du ser eksternt.

som Viser den samme versjonen lokalt og eksternt, er god. Men jeg har fått en bedre måte å vise at du bruker $PSVersionTable automatisk variabel.

Sjekk Powershell-Versjon via $PSVersionTable.PSVersion kommandoen

Den siste og endelige metoden refererer PSVersion eiendom på $PSVersionTable automatisk variabel., Denne metoden vil alltid representere PowerShell-motoren.

$PSVersionTable automatisk variabel er en skrivebeskyttet hash-tabell som gir informasjon om PowerShell-motoren versjon. Denne automatiske variabel ikke bare returnerer versjon, men også PSEdition. Denne egenskapen kan enten Core eller Skrivebordet for å gi ytterligere informasjon om den utgaven av PowerShell som kjører.,

$PSVersionTable utgang

$PSVersionTable på Eksterne Datamaskiner

Med $PSVersionTable automatisk variabel er nøyaktige lokalt som det er eksternt. Nedenfor ser du at ved å pakke $PSVersionTable.PSVersion i en scriptblock og utfører den koden på en ekstern datamaskin, vil den gå tilbake samme versjon.

Oppsummering

I dette blogg innlegget, du har lært alle måter til å sjekke versjonen av PowerShell både lokalt og eksternt., Jeg håper de første par metoder ga deg en pekepinn på hvilke måter ikke til å sjekke versjonen!

jeg anbefaler at du alltid bruker $PSVersionTable.PSVersion. Alle andre metoder kan vises ligner på PowerShell-motoren-versjon, men kan ikke alltid reflekterer motoren versjon.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *