Kontrollera den installerade versionen av PowerShell på din dator

Kontrollera den installerade versionen av PowerShell på din dator
Kontrollera den installerade versionen av PowerShell på din dator

Introduktion till identifiering av PowerShell-versioner

PowerShell, ett ramverk för uppgiftsautomatisering och konfigurationshantering, är ett viktigt verktyg för systemadministratörer och avancerade användare. För att utnyttja dess fulla potential är det avgörande att veta vilken version som är installerad på din dator, eftersom olika versioner erbjuder olika funktioner och möjligheter.

Den här artikeln guidar dig genom stegen för att bestämma den installerade versionen av PowerShell på ditt system, så att du kan komma åt dess senaste funktioner eller felsöka kompatibilitetsproblem. Oavsett om du är ny på PowerShell eller en erfaren användare, är att förstå din nuvarande version det första steget till ett effektivt utnyttjande.

Kommando Beskrivning
Get-Command Hämtar alla kommandon som är installerade på systemet, inklusive cmdlets, funktioner, arbetsflöden, alias och körbara filer.
$PSVersionTable En inbyggd variabel i PowerShell som visar den aktuella versionen av PowerShell.
subprocess.run Utför ett specificerat kommando i en underprocess, fångar dess utdata för vidare bearbetning i Python.
re.search Söker efter en sträng efter en matchning med ett specificerat reguljärt uttrycksmönster i Python.
command -v Kontrollerar om ett angivet kommando är tillgängligt på systemet, som vanligtvis används i Bash-skript.
pwsh Anropar PowerShell Core i en kommandorad eller ett skript.
wine Kör Windows-applikationer på Unix-liknande operativsystem, som används här för att köra Windows PowerShell via Wine.

Hur skripten fungerar för att fastställa installerad PowerShell-version

PowerShell-skriptet börjar med att använda Get-Command cmdlet för att kontrollera om PowerShell är installerat på systemet. Den kontrollerar för båda pwsh (PowerShell Core) och powershell (Windows PowerShell). Om något av kommandona hittas, hämtar det versionsinformationen från $PSVersionTable.PSVersion variabel och matar ut versionen. Om inget av kommandona hittas sänder det att PowerShell inte är installerat. Detta tillvägagångssätt säkerställer kompatibilitet med båda versionerna av PowerShell, vilket gör det till en heltäckande lösning för användare med olika inställningar.

Python-skriptet använder subprocess.run funktion för att köra PowerShell-kommandon och fånga deras utdata. Den försöker först köra kommandot 'powershell -Command $PSVersionTable.PSVersion' för att söka efter Windows PowerShell. Om detta misslyckas, försöker den 'pwsh -Command $PSVersionTable.PSVersion' för PowerShell Core. De re.search funktionen används för att extrahera versionsnumret från kommandoutgången med hjälp av ett reguljärt uttryck. Det här skriptet är särskilt användbart för plattformsoberoende miljöer där både Python och PowerShell är tillgängliga.

Bash-skriptet börjar med att kontrollera om PowerShell Core är installerat med hjälp av command -v pwsh kommando. Om den hittas kör den kommandot pwsh -Command '$PSVersionTable.PSVersion.ToString()' för att få versionen. Om PowerShell Core inte hittas söker den efter Windows PowerShell via Wine med kommandot command -v wine och avrättar wine powershell.exe -Command '$PSVersionTable.PSVersion' om tillgänglig. Det här skriptet är användbart för Unix-liknande system där användare kan ha PowerShell Core eller använda Wine för att köra Windows PowerShell.

Sammantaget ger dessa skript en robust uppsättning verktyg för att fastställa den installerade versionen av PowerShell i olika operativsystem och miljöer. De utnyttjar specifika kommandon som Get-Command, subprocess.run, och command -v för att uppnå sitt mål genom att visa flexibiliteten och kraften i skript i systemadministrationsuppgifter.

Identifiera den installerade versionen av PowerShell via PowerShell-skript

PowerShell-skript

# Check if PowerShell is installed and determine its version
if (Get-Command -Name pwsh -ErrorAction SilentlyContinue) {
    $version = $PSVersionTable.PSVersion
    Write-Output "PowerShell Core is installed. Version: $version"
} elseif (Get-Command -Name powershell -ErrorAction SilentlyContinue) {
    $version = $PSVersionTable.PSVersion
    Write-Output "Windows PowerShell is installed. Version: $version"
} else {
    Write-Output "PowerShell is not installed on this system."
}

Bestämma den installerade PowerShell-versionen med ett Python-skript

Python-skript

import subprocess
import re

def check_powershell_version():
    try:
        result = subprocess.run(['powershell', '-Command', '$PSVersionTable.PSVersion'],
                                capture_output=True, text=True)
        version = re.search(r'(\d+\.\d+\.\d+\.\d+)', result.stdout)
        if version:
            print(f"Windows PowerShell is installed. Version: {version.group(1)}")
        else:
            result = subprocess.run(['pwsh', '-Command', '$PSVersionTable.PSVersion'],
                                    capture_output=True, text=True)
            version = re.search(r'(\d+\.\d+\.\d+\.\d+)', result.stdout)
            if version:
                print(f"PowerShell Core is installed. Version: {version.group(1)}")
            else:
                print("PowerShell is not installed on this system.")
    except FileNotFoundError:
        print("PowerShell is not installed on this system.")

check_powershell_version()

Kontrollera PowerShell-versionen på en dator med ett Bash-skript

Bash Script

#!/bin/bash

# Check if PowerShell Core is installed
if command -v pwsh &> /dev/null
then
    version=$(pwsh -Command '$PSVersionTable.PSVersion.ToString()')
    echo "PowerShell Core is installed. Version: $version"
else
    # Check if Windows PowerShell is installed via Wine
    if command -v wine &> /dev/null && wine powershell.exe -Command '$PSVersionTable.PSVersion' &> /dev/null
    then
        version=$(wine powershell.exe -Command '$PSVersionTable.PSVersion.ToString()')
        echo "Windows PowerShell is installed via Wine. Version: $version"
    else
        echo "PowerShell is not installed on this system."
    fi
fi

Utforska ytterligare metoder för att fastställa PowerShell-versionen

En annan användbar metod för att bestämma den installerade versionen av PowerShell involverar att kontrollera registret, särskilt på Windows-system. Registret kan ge ett direkt sätt att identifiera versionen av Windows PowerShell installerad. Du kan fråga efter specifika registernycklar för att hitta denna information. Till exempel nyckeln HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine kan nås för att få versionsnumret. Den här metoden är särskilt användbar när du behöver automatisera processen över flera maskiner i ett nätverk med hjälp av ett skript eller en grupprincip.

För macOS- och Linux-användare innebär ett annat tillvägagångssätt att använda pakethanterare. Du kan till exempel använda brew info powershell på macOS för att kontrollera den installerade versionen. På Linux kan du använda apt show powershell eller rpm -qi powershell beroende på din distribution. Dessa pakethanterarekommandon ger detaljerad information om den installerade versionen, vilket kan vara avgörande för systemadministratörer som hanterar olika miljöer. Den här metoden säkerställer att du har rätt PowerShell-version som är kompatibel med dina skript och moduler.

Vanliga frågor och svar om att fastställa PowerShell-versioner

  1. Hur kan jag kontrollera PowerShell-versionen i ett skript?
  2. Använd $PSVersionTable.PSVersion kommandot i ett PowerShell-skript för att kontrollera versionen.
  3. Finns det något sätt att kontrollera PowerShell-versionen via kommandoraden på Windows?
  4. Ja, öppna en kommandotolk och skriv powershell -Command "$PSVersionTable.PSVersion" för att se versionen.
  5. Kan jag kontrollera PowerShell-versionen på Linux?
  6. Ja, du kan använda pwsh -Command "$PSVersionTable.PSVersion" eller kontrollera pakethanterarens information med kommandon som apt show powershell.
  7. Hur hittar jag versionen av PowerShell Core?
  8. Kör kommandot pwsh -Command "$PSVersionTable.PSVersion" i din terminal.
  9. Vad är skillnaden mellan Windows PowerShell och PowerShell Core?
  10. Windows PowerShell är byggt på .NET Framework och är endast för Windows, medan PowerShell Core är plattformsoberoende, byggt på .NET Core.
  11. Kan jag ha både Windows PowerShell och PowerShell Core installerade?
  12. Ja, båda kan installeras på samma system och användas oberoende av varandra.
  13. Hur kan jag automatisera kontrollen av PowerShell-versionen på flera datorer?
  14. Använd ett skript som utnyttjar Invoke-Command för att köra versionskontroller på fjärrdatorer via PowerShell Remoting.
  15. Är det nödvändigt att uppdatera PowerShell till den senaste versionen?
  16. Även om det inte alltid är nödvändigt, garanterar uppdatering tillgång till de senaste funktionerna och säkerhetsförbättringarna.

Sammanfattning av metoderna för att fastställa PowerShell-versionen

Att fastställa den installerade versionen av PowerShell är viktigt för att utnyttja dess kapacitet fullt ut. Genom att använda PowerShell-skript kan administratörer snabbt kontrollera om PowerShell Core eller Windows PowerShell är installerat och hämta versionsnumret. Python- och Bash-skript erbjuder plattformsoberoende lösningar, med kommandon som subprocess.run och kommando -v för att kontrollera installationsstatus och version. Dessutom, genom att söka i registret på Windows eller använda pakethanterare på macOS och Linux ger alternativa metoder för att säkerställa att du arbetar med rätt version, vilket underlättar bättre systemhantering och skriptkompatibilitet.