Comprovació de la versió instal·lada de PowerShell al vostre ordinador

Comprovació de la versió instal·lada de PowerShell al vostre ordinador
Comprovació de la versió instal·lada de PowerShell al vostre ordinador

Introducció a la identificació de versions de PowerShell

PowerShell, un marc de gestió de configuració i automatització de tasques, és una eina essencial per als administradors de sistemes i usuaris avançats. Per aprofitar tot el seu potencial, saber quina versió està instal·lada al vostre ordinador és crucial, ja que les diferents versions ofereixen funcions i capacitats diferents.

Aquest article us guiarà a través dels passos per determinar la versió instal·lada de PowerShell al vostre sistema, assegurant-vos que podeu accedir a les seves últimes funcions o resoldre problemes de compatibilitat. Tant si sou nou a PowerShell com si sou un usuari experimentat, entendre la vostra versió actual és el primer pas per a una utilització efectiva.

Comandament Descripció
Get-Command Recupera totes les ordres instal·lades al sistema, inclosos els cmdlets, les funcions, els fluxos de treball, els àlies i els executables.
$PSVersionTable Una variable integrada a PowerShell que mostra la versió actual de PowerShell.
subprocess.run Executa una ordre especificada en un subprocés, capturant la seva sortida per a un processament posterior a Python.
re.search Cerca una coincidència en una cadena mitjançant un patró d'expressió regular especificat a Python.
command -v Comprova si una comanda especificada està disponible al sistema, que s'utilitza habitualment als scripts Bash.
pwsh Invoca PowerShell Core en una línia d'ordres o un script.
wine Executa aplicacions de Windows en sistemes operatius semblants a Unix, utilitzats aquí per executar Windows PowerShell mitjançant Wine.

Com funcionen els scripts per determinar la versió de PowerShell instal·lada

L'script de PowerShell comença utilitzant el Get-Command cmdlet per comprovar si PowerShell està instal·lat al sistema. Comprova els dos pwsh (PowerShell Core) i powershell (Windows PowerShell). Si es troba qualsevol de les ordres, recupera la informació de la versió del fitxer $PSVersionTable.PSVersion variable i dóna sortida a la versió. Si no es troba cap comanda, mostra que PowerShell no està instal·lat. Aquest enfocament garanteix la compatibilitat amb ambdues versions de PowerShell, la qual cosa la converteix en una solució integral per als usuaris amb diferents configuracions.

L'script de Python utilitza el subprocess.run funció per executar ordres de PowerShell i capturar-ne la sortida. Primer intenta executar l'ordre 'powershell -Command $PSVersionTable.PSVersion' per comprovar si hi ha Windows PowerShell. Si això falla, ho intenta 'pwsh -Command $PSVersionTable.PSVersion' per a PowerShell Core. El re.search La funció s'utilitza per extreure el número de versió de la sortida de l'ordre mitjançant una expressió regular. Aquest script és especialment útil per a entorns multiplataforma on estan disponibles tant Python com PowerShell.

L'script de Bash comença comprovant si PowerShell Core està instal·lat mitjançant el command -v pwsh comandament. Si es troba, executa l'ordre pwsh -Command '$PSVersionTable.PSVersion.ToString()' per obtenir la versió. Si no es troba PowerShell Core, comprova si hi ha Windows PowerShell mitjançant Wine mitjançant l'ordre command -v wine i executa wine powershell.exe -Command '$PSVersionTable.PSVersion' si està disponible. Aquest script és útil per a sistemes semblants a Unix on els usuaris poden tenir PowerShell Core o utilitzar Wine per executar Windows PowerShell.

En general, aquests scripts proporcionen un conjunt robust d'eines per determinar la versió instal·lada de PowerShell en diferents sistemes operatius i entorns. Aprofiten ordres específiques com Get-Command, subprocess.run, i command -v per assolir el seu objectiu, demostrant la flexibilitat i el poder dels scripts en les tasques d'administració del sistema.

Identificació de la versió instal·lada de PowerShell mitjançant PowerShell Script

Script de PowerShell

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

Determinació de la versió de PowerShell instal·lada mitjançant un script de Python

Script Python

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

Comprovació de la versió de PowerShell en un ordinador mitjançant un script Bash

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

Explorant mètodes addicionals per determinar la versió de PowerShell

Un altre mètode útil per determinar la versió instal·lada de PowerShell consisteix a comprovar el registre, especialment en sistemes Windows. El registre pot proporcionar una manera directa d'identificar la versió de Windows PowerShell instal·lada. Podeu consultar claus de registre específiques per trobar aquesta informació. Per exemple, la clau HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine es pot accedir per obtenir el número de versió. Aquest mètode és especialment útil quan necessiteu automatitzar el procés en diverses màquines d'una xarxa mitjançant un script o una política de grup.

Per als usuaris de macOS i Linux, un altre enfocament consisteix a utilitzar gestors de paquets. Per exemple, podeu utilitzar brew info powershell a macOS per comprovar la versió instal·lada. A Linux, podeu utilitzar apt show powershell o rpm -qi powershell en funció de la seva distribució. Aquestes ordres del gestor de paquets proporcionen informació detallada sobre la versió instal·lada, que pot ser crucial per als administradors del sistema que gestionen diversos entorns. Aquest mètode garanteix que teniu la versió correcta de PowerShell compatible amb els vostres scripts i mòduls.

Preguntes i respostes habituals sobre la determinació de les versions de PowerShell

  1. Com puc comprovar la versió de PowerShell en un script?
  2. Utilitzar el $PSVersionTable.PSVersion comanda en un script de PowerShell per comprovar la versió.
  3. Hi ha alguna manera de comprovar la versió de PowerShell mitjançant la línia d'ordres a Windows?
  4. Sí, obriu un indicador d'ordres i escriviu powershell -Command "$PSVersionTable.PSVersion" per veure la versió.
  5. Puc comprovar la versió de PowerShell a Linux?
  6. Sí, pots utilitzar pwsh -Command "$PSVersionTable.PSVersion" o comproveu la informació del gestor de paquets amb ordres com ara apt show powershell.
  7. Com trobo la versió de PowerShell Core?
  8. Executeu l'ordre pwsh -Command "$PSVersionTable.PSVersion" al teu terminal.
  9. Quina diferència hi ha entre Windows PowerShell i PowerShell Core?
  10. Windows PowerShell es basa en .NET Framework i només és per a Windows, mentre que PowerShell Core és multiplataforma, basat en .NET Core.
  11. Puc tenir instal·lats Windows PowerShell i PowerShell Core?
  12. Sí, tots dos es poden instal·lar al mateix sistema i utilitzar-los de manera independent.
  13. Com puc automatitzar la comprovació de la versió de PowerShell en diverses màquines?
  14. Utilitzeu un script que aprofiti Invoke-Command per executar comprovacions de versions a màquines remotes mitjançant PowerShell Remoting.
  15. És necessari actualitzar PowerShell a la darrera versió?
  16. Tot i que no sempre és necessària, l'actualització garanteix l'accés a les últimes funcions i millores de seguretat.

Resum dels mètodes per determinar la versió de PowerShell

Determinar la versió instal·lada de PowerShell és essencial per aprofitar al màxim les seves capacitats. Si utilitzen scripts de PowerShell, els administradors poden comprovar ràpidament si PowerShell Core o Windows PowerShell està instal·lat i recuperar el número de versió. Els scripts de Python i Bash ofereixen solucions multiplataforma, emprant ordres com subprocess.run i command -v per comprovar l'estat i la versió de la instal·lació. A més, consultar el registre a Windows o utilitzar gestors de paquets a macOS i Linux ofereix mètodes alternatius per assegurar-vos que esteu treballant amb la versió correcta, facilitant una millor gestió del sistema i compatibilitat d'scripts.