Adam Automatoren

i Po .ershell er der enilillion måder at gøre det samme (eller tæt på det). I dette blogindlæg lærer du alle måder at kontrollere Po .ershell-version, som du har på lokale og eksterne computere. Vi dækker de dårlige måder og min anbefalede måde.

Hvis du gerne vil gå fra PowerShell newbie til PowerShell guru, vil jeg anbefale at fortære dette GRATIS mini-kursus om bygning af et PowerShell værktøj. Dette er en trin-for-trin tutorial med fulde forklaringer og vejledning fra Adam Automator!,

Der er websebsteder, der viser forskellige måder at kontrollere Po .ershell-version på. Men ingen, der udarbejdede en omfattende liste over alle dem. Jeg besluttede at ændre det.

Alle disse måder, skal arbejde i både Windows PowerShell og PowerShell Kerne. Disse metoder skal også fungere i Powerindo .s Po .ershell versioner 1.0 helt op til Po .ershell 7.,

De måder, du kan finde en version af PowerShell du kører er:

  1. (Get-Host).Version ejendom
  2. $host.Version ejendom
  3. registreringsdatabasen (Windows PowerShell kun)
  4. $PSVersionTable.PSVersion ejendom

Lad os nedbryde alle de måder, for at finde den version af PowerShell fra mindst til mest anbefalede måde.

Indholdsfortegnelse

Get-Host

Po .ershell har et koncept kendt som værter. En vært er et program, der er vært for Po .ershell-motoren., Det er ikke selve Po .ershell-motoren.PowerShell console eller en kode-editor med en integreret terminal er PowerShell værter.

En vært kan have en version, der er helt uafhængig af PowerShell selv. Dette kan bedrage mange nybegyndere. Lad mig vise dig hvorfor.

Hvis du kører (Get-Host).Version, vil du se, at det returnerer et versionsnummer, der ser ud som om det kunne være Po .ershell engine-versionen. Udseende kan bedrage.

Nedenfor har jeg løb Get-Host Windows PowerShell 5.1, og du kan se det kommer tilbage med 5.1.17134.858., Dette ligner en legitim version.

Men, nogle gange når du kører Get-Host i en integreret terminal, den version er ikke den samme. Selvom værten normalt repræsenterer den samme version af motoren, er det ikke nødvendigt altid at gøre det.

Find Powershell Version via Get-Vært på fjerncomputere

Selv om Get-Host ser ud til at vende tilbage den samme version, når de køres på en lokal computer, det vil aldrig på fjerncomputere.,

For eksempel, lad os løbe Get-Host på fjernbetjeningen til Windows Server 2016 server via Invoke-Command og se, hvad der sker.sidste gang jeg kontrollerede, er det ikke muligt at køre Po .ershell v1 på .indo .s Server 2016.at stole på Get-Host er bare en dårlig id.rundt omkring.

Check Po .ershell Version $vært.Version kommando

Referere $host.Version er en anden måde at tjekke Powershell version. Variablen$host er en automatisk variabel, der returnerer det samme output somGet-Host.,

Referere $host.Version

Der er intet specielt ved denne metode. Det er simpelthen det samme som at køre Get-Host.

$vært.Version på fjerncomputere

Du vil se den samme adfærd via PowerShell Remoting med $host.Version som du vil køre Get-Host.

fare, vil Robinson!

Registry

Hvis du ikke ønsker at åbne Po .ershell selv, kan du også kontrollere registreringsdatabasen., Versionen af Po .ershell er gemt væk under en værdi i registreringsdatabasen nøglesti HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine. Denne registernøgle har en værdi kaldet PowerShellVersion, som du kan henvise til ved at brugeGet-ItemProperty.

Du kan se, at denne version er ens, men inkluderer ikke revisionen, som de andre indstillinger gør.

brug af andre værktøjer

brug af registreringsdatabasen betyder også, at du ikke behøver at bruge Po .ershell overhovedet for at finde versionen. Du kan køre kommandoer fra kommandoprompten eller et andet værktøj, der kan læse registreringsdatabasen.,

Registry på eksterne computere

registreringsdatabasen er statisk, og værdierne ændres ikke lokalt eller eksternt. Du kan være sikker på, at det, du ser lokalt, vil være det samme, som du ser eksternt.

viser den samme version lokalt og eksternt er god. Men jeg har en bedre måde at vise dig ved hjælp af $PSVersionTable automatisk variabel.

Check Po .ershell Version via $PSVersionTable.PSVersion kommando

Den sidste og endelige metode er at referere PSVersion ejendom på $PSVersionTable automatisk variabel., Denne metode repræsenterer altid Po .ershell-motoren.

$PSVersionTable automatisk variabel er en læs-kun en hash-tabel, der returnerer oplysninger specifikt om PowerShell engin version. Denne automatiske variabel returnerer ikke kun versionen, men også PSEdition. Denne egenskab kan enten Core eller Desktop til at give yderligere oplysninger om den udgave af Po .ershell, der kører.,

$PSVersionTable output

$PSVersionTable på fjerncomputere

ved Brug af $PSVersionTable automatisk variabel er nøjagtig lokalt, som det er fjernt. Du kan se nedenfor, at ved at indpakke $PSVersionTable.PSVersion i en scriptblock og udføre denne kode på en fjerncomputer, returnerer den samme version.

resum.

i dette blogindlæg har du lært alle måder at kontrollere versionen af Po .ershell både lokalt og eksternt., Jeg håber, at de første par metoder gav dig en ID!om, hvilke måder ikke at kontrollere versionen!

Jeg anbefaler altid at bruge $PSVersionTable.PSVersion. Alle de andre metoder kan vises ligner Po .ershell motor version, men kan ikke altid afspejle motoren version.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *