Adam the Automator (Suomi)

PowerShellissä on tuhat tapaa tehdä sama (tai lähellä sitä). Tässä blogiviestissä opit kaikin tavoin tarkistamaan PowerShell-version, joka sinulla on paikallisilla ja etätietokoneilla. Käsittelemme huonoja tapoja ja suosittelemani tapani.

Jos haluat siirtyä PowerShell-aloittelijasta PowerShell-guruun, suosittelen syömään tämän ILMAISEN minikurssi PowerShell-työkalun rakentamisesta. Tämä on vaiheittainen opetusohjelma, joka sisältää Adam Automatorin täydelliset selitykset ja ohjeita!

On verkkosivustoja, jotka näyttävät useita tapoja tarkistaa Powershell-versio. Mutta kukaan ei koonnut kattavaa luetteloa kaikista niistä. Päätin muuttaa sitä.

Kaikkien näiden tapojen pitäisi toimia sekä Windows PowerShell- että PowerShell Core -käyttöjärjestelmissä. Näiden menetelmien tulisi toimia myös Windows PowerShell -versioissa 1.0 aina PowerShell 7: een asti.

Tavat selvittää käyttämäsi PowerShell-version ovat:

  1. Ominaisuus (Get-Host).Version
  2. Ominaisuus $host.Version
  3. Rekisteri (vain Windows PowerShell)
  4. Ominaisuus $PSVersionTable.PSVersion -ominaisuus

Jaetaan kaikki tavat löytää PowerShell-versio vähiten suositellusta .

Sisällysluettelo

Get-Host

PowerShellillä on käsite, joka tunnetaan isäntinä. Isäntä on ohjelma, joka isännöi PowerShell-moottoria. Se ei ole itse PowerShell-moottori. PowerShell-konsoli tai koodieditori, jossa on integroitu pääte, ovat PowerShell-isäntiä.

Isännällä voi olla versio, joka on täysin riippumaton itse PowerShellistä. Tämä voi pettää monia uusia tulokkaita. Haluan näyttää miksi.

Jos suoritat (Get-Host).Version, huomaat, että se palauttaa versionumeron, joka näyttää olevan PowerShell-moottoriversio. Näyttää siltä, että se voi johtaa harhaan.

Alla olen suorittanut Get-Host Windows PowerShell 5.1: ssä ja näet, että sen mukana tulee 5.1.17134.858. Tämä näyttää lailliselta versiolta.

Joskus jos kuitenkin suoritat Get-Host integroidussa päätelaitteessa, versio ei ole sama. Vaikka yleensä isäntä edustaa samaa versiota moottorista, sitä ei aina tarvitse tehdä.

Tarkista Powershell-versio etätietokoneiden Get-Hostin kautta

Vaikka Get-Host näyttää palauttavan saman version, kun se suoritetaan paikallisella tietokoneella, se ei koskaan tule etätietokoneilla.

Suoritetaan esimerkiksi Get-Host Windows Server 2016 -palvelimella Invoke-Command -palvelun kautta ja katso mitä tapahtuu.

Viimeisen kerran tarkistamalla PowerShell v1: n suorittaminen ei ole mahdollista Windows Server 2016.

Get-Host -palveluun luottaminen on vain huono idea kaikkialla.

Tarkista Powershell Version $ host.Version -komento

Viittaaminen $host.Version on toinen tapa tarkistaa Powershell-versio. Muuttuja $host on automaattinen muuttuja, joka palauttaa saman tuloksen kuin Get-Host.

Viittaus $host.Version

Tässä menetelmässä ei ole mitään erityistä. Se on yksinkertaisesti sama kuin Get-Host.

$ host.Version etätietokoneissa

Sama käyttäytyminen näkyy PowerShell-etäyhteyden kautta $host.Version, kun suoritat Get-Host.

Vaara, Will Robinson!

Rekisteri

Jos et halua avata itse PowerShelliä, voit myös tarkistaa rekisterin. PowerShell-versio on piilotettu rekisteriavaimen polun HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine arvon alapuolelle. Tällä rekisteriavaimella on arvo nimeltä PowerShellVersion, johon voit viitata käyttämällä Get-ItemProperty.

Voit nähdä, että tämä versio on samanlainen, mutta ei sisällä versiota kuten muutkin vaihtoehdot.

Muiden työkalujen käyttäminen

Rekisterin käyttäminen tarkoittaa myös, että sinun ei tarvitse käyttää PowerShelliä ollenkaan. version. Voit suorittaa komennot komentokehotteesta tai muusta työkalusta, joka lukee rekisterin.

Rekisteri etätietokoneissa

Rekisteri on staattinen eikä arvot muutu paikallisesti tai etänä. Voit olla varma, että se, mitä näet paikallisesti, on sama kuin etänä.

Saman version näyttäminen paikallisesti ja etänä on hyvä. Mutta minulla on parempi tapa näyttää sinulle automaattisen muuttujan $PSVersionTable käyttäminen.

Tarkista Powershell-versio $ PSVersionTable.PSVersion -komennolla

Viimeinen ja viimeinen menetelmä viittaa PSVersion -ominaisuuteen automaattisessa muuttujassa $PSVersionTable.Tämä menetelmä edustaa aina PowerShell-moottoria.

Automaattinen muuttuja $PSVersionTable on vain luku -taulukko joka palauttaa tietoja erityisesti PowerShell-moottoriversiosta. Tämä automaattinen muuttuja palauttaa version lisäksi myös PSEdition. Tämä ominaisuus voi joko Core tai Desktop antaa lisätietoja käynnissä olevasta PowerShell-versiosta.

$ PSVersionTable-lähtö

$ PSVersionTable etätietokoneissa

automaattinen muuttuja on tarkka paikallisesti, koska se on etänä. Voit nähdä alla olevan, että käärimällä $PSVersionTable.PSVersion komentosarjalohkoon ja suorittamalla kyseisen koodin etätietokoneella, se palauttaa saman version.

Yhteenveto

Tässä blogiviestissä olet oppinut kaikki tapat tarkistaa PowerShell-versio sekä paikallisesti että etänä. Toivon, että muutamat ensimmäiset menetelmät antoivat sinulle käsityksen siitä, mistä tavoista ei tarvitse tarkistaa versiota!

Suosittelen aina käyttämään $PSVersionTable.PSVersion. Kaikki muut menetelmät saattavat näyttää samanlaisilta kuin PowerShell-moottoriversio, mutta eivät välttämättä aina heijasta moottoriversiota.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *