Datorā instalētās PowerShell versijas pārbaude

Datorā instalētās PowerShell versijas pārbaude
Datorā instalētās PowerShell versijas pārbaude

Ievads PowerShell versiju identificēšanā

PowerShell, uzdevumu automatizācijas un konfigurācijas pārvaldības ietvars, ir būtisks rīks sistēmu administratoriem un lietotājiem. Lai pilnībā izmantotu tā potenciālu, ir ļoti svarīgi zināt, kura versija ir instalēta jūsu datorā, jo dažādas versijas piedāvā dažādas funkcijas un iespējas.

Šajā rakstā ir sniegti norādījumi par darbībām, kas jāveic, lai noteiktu jūsu sistēmā instalēto PowerShell versiju, nodrošinot, ka varat piekļūt jaunākajiem līdzekļiem vai novērst saderības problēmas. Neatkarīgi no tā, vai esat iesācējs PowerShell vai esat pieredzējis lietotājs, pašreizējās versijas izpratne ir pirmais solis efektīvai izmantošanai.

Komanda Apraksts
Get-Command Izgūst visas sistēmā instalētās komandas, tostarp cmdlet, funkcijas, darbplūsmas, aizstājvārdus un izpildāmos failus.
$PSVersionTable Iebūvēts mainīgais programmā PowerShell, kas parāda pašreizējo PowerShell versiju.
subprocess.run Izpilda norādīto komandu apakšprocesā, tverot tās izvadi turpmākai apstrādei Python.
re.search Meklē atbilstību virknei, izmantojot noteiktu regulārās izteiksmes modeli programmā Python.
command -v Pārbauda, ​​vai sistēmā ir pieejama norādītā komanda, ko parasti izmanto Bash skriptos.
pwsh Komandrindā vai skriptā izsauc PowerShell Core.
wine Izpilda Windows lietojumprogrammas Unix līdzīgās operētājsistēmās, kuras šeit izmanto, lai palaistu Windows PowerShell, izmantojot Wine.

Kā darbojas skripti, lai noteiktu instalēto PowerShell versiju

PowerShell skripts sākas, izmantojot Get-Command cmdlet, lai pārbaudītu, vai sistēmā ir instalēts PowerShell. Tas pārbauda abus pwsh (PowerShell Core) un powershell (Windows PowerShell). Ja tiek atrasta kāda no komandām, tā izgūst versijas informāciju no $PSVersionTable.PSVersion mainīgais un izvada versiju. Ja neviena komanda netiek atrasta, tiek parādīts, ka PowerShell nav instalēts. Šī pieeja nodrošina saderību ar abām PowerShell versijām, padarot to par visaptverošu risinājumu lietotājiem ar dažādiem iestatījumiem.

Python skripts izmanto subprocess.run funkcija, lai izpildītu PowerShell komandas un tvertu to izvadi. Vispirms tas mēģina palaist komandu 'powershell -Command $PSVersionTable.PSVersion' lai pārbaudītu Windows PowerShell. Ja tas neizdodas, tas mēģina 'pwsh -Command $PSVersionTable.PSVersion' PowerShell Core. The re.search funkcija tiek izmantota, lai iegūtu versijas numuru no komandas izvades, izmantojot regulāro izteiksmi. Šis skripts ir īpaši noderīgs starpplatformu vidēm, kurās ir pieejami gan Python, gan PowerShell.

Bash skripts sākas, pārbaudot, vai PowerShell Core ir instalēts, izmantojot command -v pwsh komandu. Ja tiek atrasts, tas palaiž komandu pwsh -Command '$PSVersionTable.PSVersion.ToString()' lai iegūtu versiju. Ja PowerShell Core netiek atrasts, tas pārbauda Windows PowerShell, izmantojot Wine, izmantojot komandu command -v wine un izpilda wine powershell.exe -Command '$PSVersionTable.PSVersion' ja ir pieejama. Šis skripts ir noderīgs Unix līdzīgām sistēmām, kurās lietotājiem var būt PowerShell Core vai Wine, lai palaistu Windows PowerShell.

Kopumā šie skripti nodrošina spēcīgu rīku komplektu, lai noteiktu instalēto PowerShell versiju dažādās operētājsistēmās un vidēs. Viņi izmanto īpašas komandas, piemēram Get-Command, subprocess.run, un command -v lai sasniegtu savu mērķi, demonstrējot skriptēšanas elastību un jaudu sistēmas administrēšanas uzdevumos.

Instalētās PowerShell versijas identificēšana, izmantojot PowerShell skriptu

PowerShell skripts

# 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."
}

Instalētās PowerShell versijas noteikšana, izmantojot Python skriptu

Python skripts

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()

PowerShell versijas pārbaude datorā, izmantojot Bash skriptu

Bash skripts

#!/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

Papildu metožu izpēte PowerShell versijas noteikšanai

Vēl viena noderīga metode instalētās PowerShell versijas noteikšanai ir reģistra pārbaude, īpaši Windows sistēmās. Reģistrs var nodrošināt tiešu veidu, kā noteikt instalētās Windows PowerShell versiju. Lai atrastu šo informāciju, varat pieprasīt noteiktas reģistra atslēgas. Piemēram, atslēga HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine var piekļūt, lai iegūtu versijas numuru. Šī metode ir īpaši noderīga, ja nepieciešams automatizēt procesu vairākās iekārtās tīklā, izmantojot skriptu vai grupas politiku.

MacOS un Linux lietotājiem cita pieeja ietver pakotņu pārvaldnieku izmantošanu. Piemēram, jūs varat izmantot brew info powershell operētājsistēmā macOS, lai pārbaudītu instalēto versiju. Operētājsistēmā Linux varat izmantot apt show powershell vai rpm -qi powershell atkarībā no jūsu izplatīšanas. Šīs pakotņu pārvaldnieka komandas sniedz detalizētu informāciju par instalēto versiju, kas var būt ļoti svarīga sistēmas administratoriem, kas pārvalda dažādas vides. Šī metode nodrošina, ka jums ir pareizā PowerShell versija, kas ir saderīga ar jūsu skriptiem un moduļiem.

Bieži uzdotie jautājumi un atbildes par PowerShell versiju noteikšanu

  1. Kā es varu pārbaudīt PowerShell versiju skriptā?
  2. Izmantojiet $PSVersionTable.PSVersion komandu PowerShell skriptā, lai pārbaudītu versiju.
  3. Vai ir kāds veids, kā pārbaudīt PowerShell versiju, izmantojot komandrindu operētājsistēmā Windows?
  4. Jā, atveriet komandu uzvedni un ierakstiet powershell -Command "$PSVersionTable.PSVersion" lai redzētu versiju.
  5. Vai varu pārbaudīt PowerShell versiju operētājsistēmā Linux?
  6. Jā, jūs varat izmantot pwsh -Command "$PSVersionTable.PSVersion" vai pārbaudiet pakotņu pārvaldnieka informāciju ar tādām komandām kā apt show powershell.
  7. Kā es varu atrast PowerShell Core versiju?
  8. Palaidiet komandu pwsh -Command "$PSVersionTable.PSVersion" savā terminālī.
  9. Kāda ir atšķirība starp Windows PowerShell un PowerShell Core?
  10. Windows PowerShell ir veidots uz .NET Framework un ir paredzēts tikai operētājsistēmai Windows, savukārt PowerShell Core ir vairāku platformu, pamatojoties uz .NET Core.
  11. Vai var instalēt gan Windows PowerShell, gan PowerShell Core?
  12. Jā, abus var instalēt vienā sistēmā un izmantot neatkarīgi.
  13. Kā es varu automatizēt PowerShell versijas pārbaudi vairākās iekārtās?
  14. Izmantojiet skriptu, kas piesaista Invoke-Command lai palaistu versiju pārbaudes attālās iekārtās, izmantojot PowerShell Remoting.
  15. Vai ir nepieciešams atjaunināt PowerShell uz jaunāko versiju?
  16. Lai gan atjaunināšana ne vienmēr ir nepieciešama, tā nodrošina piekļuvi jaunākajām funkcijām un drošības uzlabojumiem.

PowerShell versijas noteikšanas metožu apkopojums

Lai pilnībā izmantotu tās iespējas, ir svarīgi noteikt instalēto PowerShell versiju. Izmantojot PowerShell skriptus, administratori var ātri pārbaudīt, vai ir instalēts PowerShell Core vai Windows PowerShell, un izgūt versijas numuru. Python un Bash skripti piedāvā starpplatformu risinājumus, izmantojot komandas, piemēram, subprocess.run un komandu -v, lai pārbaudītu instalācijas statusu un versiju. Turklāt reģistra vaicājumi operētājsistēmā Windows vai pakotņu pārvaldnieku izmantošana operētājsistēmās macOS un Linux nodrošina alternatīvas metodes, lai nodrošinātu, ka strādājat ar pareizo versiju, veicinot labāku sistēmas pārvaldību un skriptu savietojamību.