1.2K
Parte de la solución de problemas de una computadora con Windows es averiguar la versión del sistema operativo. Un usuario típico sabría verificar las propiedades de la computadora para ver la versión y compilación de Windows, similar a la siguiente.
Alternativamente, puede ejecutar el comando winver y obtener el siguiente resultado.
Pero, ¿qué sucede si no tiene acceso a la GUI? ¿Quizás necesita obtener la misma información de una computadora remota? Ahí es donde brilla el asombro de PowerShell.
¿Cómo obtenemos la versión de Windows de la manera PowerShell? Exploremos varias formas.
Método 1: PowerShell Obtener la versión del sistema operativo del Registro
¿Le sorprendería que la información del sistema operativo Windows se pueda encontrar dentro del registro? Probablemente no. Puede encontrar esa información en esta ubicación en el registro.
HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion
Ver la versión del sistema operativo Windows en el editor de registro está bien, pero eso no es lo que estamos aprendiendo aquí. Entonces, ¿cómo realizamos PowerShell para obtener la versión del sistema operativo del método de registro?
Abra PowerShell y ejecute este comando Get-ItemProperty.
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
Pero como puede ver arriba, el comando devuelve muchas propiedades que no necesitamos. Así que vamos a limpiarlo seleccionando solo las propiedades que queremos.
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | ` Format-List ProductName,DisplayVersion,CurrentBuildNumber
¿No es esto mucho mejor?
Nota. Eche un vistazo a nuestro artículo Solicitudes HTTP/HTTPS a través del cmdlet de PowerShell Invoke-WebRequest.
Método 2: consulta la clase Win32_OperatingSystem (WMI)
A través de las clases de WMI, puede consultar diferente información sobre la computadora local o remota. Uno de los detalles que puede extraer de WMI es la versión del sistema operativo de la computadora a través de la Win32_Sistema Operativo o CIM_SistemaOperativo clase.
Puede consultar las clases de WMI mediante los cmdlets Get-WmiObject o Get-CimInstance. Hay diferencias entre estos dos cmdlets que no son relevantes para esta tarea, pero ambos lograrán el mismo objetivo.
nortebeneficios según objetivos. Get-CimInstance es el cmdlet recomendado y moderno.
# Windows PowerShell Get-WmiObject Win32_OperatingSystem | ` Format-List Caption, Version, BuildNumber
# PowerShell Core Get-CimInstance CIM_OperatingSystem | ` Format-List Caption, Version, BuildNumber
Si desea consultar una computadora remota, debe agregar el parámetro -ComputerName seguido del nombre de la computadora remota.
# Windows PowerShell Get-WmiObject Win32_OperatingSystem -ComputerName <COMPUTER_NAME> | ` Format-List Caption, Version, BuildNumber # PowerShell Core Get-CimInstance CIM_OperatingSystem -ComputerName <COMPUTER_NAME> | ` Format-List Caption, Version, BuildNumber
Método 3: Mostrar versión de PowerShell de System.Environment Class (.NET)
PowerShell puede exponer clases .NET y llamar a sus métodos estáticos. por ejemplo, el Sistema.Entorno la clase tiene un Versión del sistema operativo propiedad que devuelve la versión actual del sistema operativo.
Ejecute el siguiente comando en PowerShell para obtener el Versión propiedad.
[System.Environment]::OSVersion.Version
Desafortunadamente, este método solo muestra la versión de la plataforma y los números de compilación. El resultado no dice el nombre descriptivo (es decir, Windows 11, Windows 10, etc.). Como en este ejemplo, el número de compilación 19044 se traduce a Ventanas 10 20H2.
Referirse a Lista de versiones de Microsoft Windows.
Es posible que este método no sea la mejor opción si desea recuperar el nombre del sistema operativo en lugar de solo los números de versión.
Método 4: PowerShell comprueba la versión de Windows con el cmdlet Get-ComputerInfo
El cmdlet Get-ComputerInfo es un cmdlet integrado que devuelve varios detalles sobre el equipo local. Si lo ejecuta solo, obtendrá un resultado similar al siguiente.
Nota. Consulte nuestra guía sobre cómo usar PowerShell para verificar el estado de un servicio de Windows con el cmdlet Get-Service.
Pero como solo estamos interesados en obtener la versión del sistema operativo Windows, agreguemos el parámetro -Property con las propiedades específicas que necesitamos.
Get-ComputerInfo -Property OSName,OSVersion
Y así es como obtiene la versión del sistema operativo a la manera de PowerShell.
Método 5: PowerShell comprueba la versión de Windows con el comando SystemInfo
Al igual que el cmdlet Get-ComputerInfo, el comando systeminfo.exe es un comando nativo que también devuelve la información de la computadora.
Pero dado que systeminfo.exe no es un cmdlet de PowerShell, no produce el resultado como un objeto, por lo que no podemos seleccionar propiedades específicas de él. En su lugar, podemos pasar el resultado al cmdlet Select-String para filtrar el Nombre del sistema operativo y Versión del sistema operativo líneas.
systeminfo.exe | Select-String "\bOS Name","\bOS Version"
Nota. El modificador \b es una expresión regular para establecer un límite de palabra para la coincidencia. Sin él, el resultado también coincidiría con BIOS porque tiene los caracteres del sistema operativo.
Conclusión
Ahora ha aprendido las muchas formas de obtener la versión de Windows en PowerShell. Verá cómo usar cmdlets integrados, comandos nativos, clases .NET y el registro para recuperar la versión actual de Windows.