Kompiuteryje įdiegtos „PowerShell“ versijos tikrinimas

Kompiuteryje įdiegtos „PowerShell“ versijos tikrinimas
Kompiuteryje įdiegtos „PowerShell“ versijos tikrinimas

„PowerShell“ versijų identifikavimo įvadas

PowerShell“, užduočių automatizavimo ir konfigūracijos valdymo sistema, yra būtinas įrankis sistemos administratoriams ir patyrusiems vartotojams. Norint išnaudoti visas savo galimybes, labai svarbu žinoti, kuri versija įdiegta jūsų kompiuteryje, nes skirtingose ​​versijose siūlomos skirtingos funkcijos ir galimybės.

Šiame straipsnyje bus aprašyti veiksmai, kaip nustatyti įdiegtą PowerShell versiją jūsų sistemoje, užtikrinant, kad galėtumėte pasiekti naujausias jos funkcijas arba šalinti suderinamumo problemas. Nesvarbu, ar esate naujokas PowerShell, ar patyręs vartotojas, dabartinės versijos supratimas yra pirmas žingsnis siekiant efektyvaus naudojimo.

komandą apibūdinimas
Get-Command Nuskaito visas sistemoje įdiegtas komandas, įskaitant cmdlet, funkcijas, darbo eigas, slapyvardžius ir vykdomuosius failus.
$PSVersionTable Įtaisytasis „PowerShell“ kintamasis, rodantis dabartinę „PowerShell“ versiją.
subprocess.run Vykdo nurodytą komandą antriniame procese, užfiksuodama jos išvestį tolesniam apdorojimui Python.
re.search Ieško atitikties eilutėje naudodama nurodytą reguliariosios išraiškos šabloną „Python“.
command -v Tikrina, ar sistemoje yra nurodyta komanda, dažniausiai naudojama Bash scenarijuose.
pwsh Komandinėje eilutėje arba scenarijuje iškviečia „PowerShell Core“.
wine Vykdo „Windows“ programas „Unix“ tipo operacinėse sistemose, čia naudojamos „Windows PowerShell“ paleisti per „Wine“.

Kaip veikia scenarijai, norint nustatyti įdiegtą „PowerShell“ versiją

PowerShell scenarijus pradedamas naudojant Get-Command cmdlet, kad patikrintumėte, ar sistemoje įdiegtas „PowerShell“. Jis tikrina abu pwsh („PowerShell Core“) ir powershell („Windows PowerShell“). Jei randama kuri nors komanda, ji nuskaito versijos informaciją iš $PSVersionTable.PSVersion kintamąjį ir išveda versiją. Jei nė viena komanda nerandama, ji išveda, kad „PowerShell“ neįdiegta. Šis metodas užtikrina suderinamumą su abiem „PowerShell“ versijomis, todėl tai yra visapusiškas sprendimas vartotojams, turintiems skirtingą sąranką.

Python scenarijus naudoja subprocess.run funkcija vykdyti PowerShell komandas ir užfiksuoti jų išvestį. Pirmiausia ji bando paleisti komandą 'powershell -Command $PSVersionTable.PSVersion' norėdami patikrinti, ar nėra „Windows PowerShell“. Jei tai nepavyksta, jis bando 'pwsh -Command $PSVersionTable.PSVersion' skirta „PowerShell Core“. The re.search Funkcija naudojama norint išgauti versijos numerį iš komandos išvesties naudojant reguliariąją išraišką. Šis scenarijus ypač naudingas kelių platformų aplinkoje, kur yra ir Python, ir PowerShell.

„Bash“ scenarijus pradedamas tikrinant, ar „PowerShell Core“ įdiegtas naudojant command -v pwsh komandą. Jei randama, ji paleidžia komandą pwsh -Command '$PSVersionTable.PSVersion.ToString()' norėdami gauti versiją. Jei „PowerShell Core“ nerasta, ji patikrina, ar nėra „Windows PowerShell“ per „Wine“, naudodama komandą command -v wine ir vykdo wine powershell.exe -Command '$PSVersionTable.PSVersion' jei galima. Šis scenarijus yra naudingas Unix tipo sistemoms, kuriose vartotojai gali turėti „PowerShell Core“ arba naudoti „Wine“ Windows PowerShell paleisti.

Apskritai šie scenarijai suteikia tvirtą įrankių rinkinį, leidžiantį nustatyti įdiegtą PowerShell versiją įvairiose operacinėse sistemose ir aplinkose. Jie naudoja specifines komandas, pvz Get-Command, subprocess.run, ir command -v pasiekti savo tikslą, demonstruojant scenarijų lankstumą ir galią atliekant sistemos administravimo užduotis.

Įdiegtos „PowerShell“ versijos identifikavimas naudojant „PowerShell“ scenarijų

PowerShell scenarijus

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

Įdiegtos PowerShell versijos nustatymas naudojant Python scenarijų

Python scenarijus

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“ versijos tikrinimas kompiuteryje naudojant „Bash“ scenarijų

Bash scenarijus

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

Papildomų „PowerShell“ versijos nustatymo metodų tyrinėjimas

Kitas naudingas būdas nustatyti įdiegtą PowerShell versiją yra registro tikrinimas, ypač Windows sistemose. Registras gali suteikti tiesioginį būdą nustatyti įdiegtos Windows PowerShell versiją. Norėdami rasti šią informaciją, galite paprašyti konkrečių registro raktų. Pavyzdžiui, raktas HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine galima pasiekti norint gauti versijos numerį. Šis metodas ypač naudingas, kai reikia automatizuoti procesą keliuose tinklo įrenginiuose naudojant scenarijų arba grupės politiką.

„MacOS“ ir „Linux“ naudotojams kitas būdas yra naudoti paketų tvarkykles. Pavyzdžiui, galite naudoti brew info powershell „MacOS“, kad patikrintumėte įdiegtą versiją. „Linux“ sistemoje galite naudoti apt show powershell arba rpm -qi powershell priklausomai nuo paskirstymo. Šios paketų tvarkyklės komandos pateikia išsamią informaciją apie įdiegtą versiją, kuri gali būti labai svarbi sistemos administratoriams, tvarkantiems įvairias aplinkas. Šis metodas užtikrina, kad turite tinkamą „PowerShell“ versiją, suderinamą su jūsų scenarijais ir moduliais.

Dažni klausimai ir atsakymai apie „PowerShell“ versijų nustatymą

  1. Kaip galiu patikrinti „PowerShell“ versiją scenarijuje?
  2. Naudoti $PSVersionTable.PSVersion komanda PowerShell scenarijuje, kad patikrintumėte versiją.
  3. Ar yra būdas patikrinti PowerShell versiją naudojant komandinę eilutę sistemoje Windows?
  4. Taip, atidarykite komandų eilutę ir įveskite powershell -Command "$PSVersionTable.PSVersion" norėdami pamatyti versiją.
  5. Ar galiu patikrinti „PowerShell“ versiją „Linux“?
  6. Taip, galite naudoti pwsh -Command "$PSVersionTable.PSVersion" arba patikrinkite paketų tvarkyklės informaciją tokiomis komandomis kaip apt show powershell.
  7. Kaip rasti „PowerShell Core“ versiją?
  8. Vykdykite komandą pwsh -Command "$PSVersionTable.PSVersion" savo terminale.
  9. Kuo skiriasi „Windows PowerShell“ ir „PowerShell Core“?
  10. „Windows PowerShell“ sukurta remiantis .NET Framework ir skirta tik „Windows“, o „PowerShell Core“ yra kelių platformų, sukurta naudojant .NET Core.
  11. Ar galiu įdiegti ir Windows PowerShell, ir PowerShell Core?
  12. Taip, abu gali būti įdiegti toje pačioje sistemoje ir naudojami atskirai.
  13. Kaip galiu automatizuoti „PowerShell“ versijos tikrinimą keliuose įrenginiuose?
  14. Naudokite scenarijų, kuris padeda Invoke-Command kad paleistumėte nuotolinių kompiuterių versijų patikrinimus naudodami „PowerShell Remoting“.
  15. Ar būtina atnaujinti „PowerShell“ į naujausią versiją?
  16. Nors ne visada būtina, atnaujinimas užtikrina prieigą prie naujausių funkcijų ir saugos patobulinimų.

„PowerShell“ versijos nustatymo metodų apibendrinimas

Norint visiškai išnaudoti jos galimybes, būtina nustatyti įdiegtą PowerShell versiją. Naudodami „PowerShell“ scenarijus administratoriai gali greitai patikrinti, ar įdiegta „PowerShell Core“ arba „Windows PowerShell“, ir gauti versijos numerį. Python ir Bash scenarijai siūlo kelių platformų sprendimus, naudojant komandas, pvz., subprocess.run ir komandą -v, kad būtų patikrinta diegimo būsena ir versija. Be to, užklausus registre sistemoje „Windows“ arba naudojant paketų tvarkykles „MacOS“ ir „Linux“, yra alternatyvių būdų, kaip užtikrinti, kad dirbate su tinkama versija, o tai palengvina geresnį sistemos valdymą ir scenarijų suderinamumą.