¿Cómo encuentro qué versión de Windows estoy usando?
Estoy usando PowerShell 2.0 y probé:
PS C:\> ver
The term 'ver' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify tha
t the path is correct and try again.
At line:1 char:4
+ ver <<<<
+ CategoryInfo : ObjectNotFound: (ver:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
¿Cómo hago esto?
Respuestas:
Como tiene acceso a la biblioteca .NET, puede acceder a la
OSVersion
propiedad de laSystem.Environment
clase para obtener esta información. Para el número de versión, existe laVersion
propiedad.Por ejemplo,
Los detalles de las versiones de Windows se pueden encontrar aquí .
fuente
[Environment]::OSVersion
en cuenta que funciona en windows-10 ,OSVersion.Version.Major
devuelve 10.winver
me muestra la versión 1607. Pero el comando de PowerShell anterior no da 1607. ¿Dónde obtengo este número "1607" en Powershell?(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId
[System.Environment]::OSVersion
no ha quedado en desuso, el método que utiliza en segundo plano ha quedado en desuso. Las nuevas versiones de PS están cambiando el comportamiento del backend: github.com/PowerShell/PowerShell/issues/…Para obtener el número de versión de Windows, como Jeff señala en su respuesta , use:
Vale la pena señalar que el resultado es de tipo
[System.Version]
, por lo que es posible verificar, por ejemplo, Windows 7 / Windows Server 2008 R2 y posterior conSin embargo, esto no le dirá si es cliente o servidor de Windows, ni el nombre de la versión.
Utilice la
Win32_OperatingSystem
clase de WMI (siempre instancia única), por ejemplo:devolverá algo como
fuente
Lamentablemente, la mayoría de las otras respuestas no proporcionan información específica de Windows 10.
Windows 10 tiene versiones de su propia: 1507, 1511, 1607, 1703, etc . Esto es lo que
winver
muestra.Consulte también la pregunta relacionada sobre superusuario .
En cuanto al uso de otras versiones de Windows
systeminfo
. Envoltura Powershell:Salida de Windows 10 para el mismo comando:
fuente
winver
en el escritorio ysysteminfo
en el servidor. Me ha desconcertado durante años que no hay una manera uniforme de obtener esta información.OS Version : 6.3.9600 N/A Build 9600
. Entonces, en las versiones debajo de W81, puede ser más informativo mirar las versiones (siempre pasadas por alto) de LTSB. Ver salida de:(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx
lo que puede verse como:9600.19179.amd64fre.winblue_ltsb_escrow.181015-1847
. Mi conjetura es que la181015
parte es la fecha de creación, mientras que el1847
es la acumulación o la liberación de la versión. También es posible que deba comparar esto con el núcleo, hal .O golf
Resultado
fuente
Esto te dará el versión completa de Windows (incluido el número de revisión / compilación) a diferencia de todas las soluciones anteriores:
Resultado:
fuente
10.0.10586.0 (th2_release.151029-1700)
, mientras que winload.exe sí10.0.10586.63 (th2_release.160104-1513)
.version
. El sistema operativo está construido (y actualizado) por partes, es decir, el kernel, el HAL, el UBR y las características, etc. Entonces, realmente deberíamos mostrarlos todos. En ese sentido, creoBuildLabEx
,Kernel
yHAL
(en ese orden) sería la forma más adecuada de dar una versión más adecuada . Pero como parece saber lo que está mal , debe publicar lo que está bien .devoluciones
fuente
Desde PowerShell 5:
Creo que este comando intenta las 1001 formas diferentes descubiertas hasta ahora para recopilar información del sistema ...
fuente
Si desea diferenciar entre Windows 8.1 (6.3.9600) y Windows 8 (6.2.9200) use
para obtener la versión adecuada.
[Environment]::OSVersion
no funciona correctamente en Windows 8.1 (devuelve una versión de Windows 8).fuente
[Environment]::OSVersion
en cuenta que funciona en windows-10 ,OSVersion.Version.Major
devuelve 10.(Get-CimInstance Win32_OperatingSystem).Version
y[Environment]::OSVersion
funciona para mí y devuelven el mismo resultado: 6.3.9600.0Estoy refinando una de las respuestas
Llegué a esta pregunta al intentar hacer coincidir la salida de winver.exe:
Version 1607 (OS Build 14393.351)
Pude extraer la cadena de compilación con:
Resultado:
14393.351
Actualizado : Aquí hay un script ligeramente simplificado que usa expresiones regulares
fuente
Tomé las secuencias de comandos anteriores y las modifiqué un poco para llegar a esto:
Para obtener un resultado como este:
Microsoft Windows 10 Home Versión de 64 bits: 1709 Compilación: 16299.431 @ {WindowsInstallDateFromRegistry = 18-01-01 2:29:11 AM}
Sugerencia: agradecería que elimine el texto del prefijo de la fecha de instalación para poder reemplazarlo con un encabezado más legible.
fuente
[timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970')).AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
es un poco más complejo, pero se ejecuta mucho más rápido. Incluso podría dejar de lado la zona horaria:([datetime]'1/1/1970').AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
Como dice MoonStom,
[Environment]::OSVersion
no funciona correctamente en un Windows 8.1 actualizado (devuelve una versión de Windows 8): enlace .Si desea diferenciar entre Windows 8.1 (6.3.9600) y Windows 8 (6.2.9200), puede usar
(Get-CimInstance Win32_OperatingSystem).Version
para obtener la versión adecuada. Sin embargo, esto no funciona en PowerShell 2. Así que usa esto:fuente
Utilizar:
fuente
Si está tratando de descifrar información, MS coloca su sitio de parcheo como https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
Necesitarás un combo como:
$name=(Get-WmiObject Win32_OperatingSystem).caption $bit=(Get-WmiObject Win32_OperatingSystem).OSArchitecture $ver=(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId Write-Host $name, $bit, $ver
Microsoft Windows 10 Home de 64 bits 1703
fuente
Windows PowerShell 2.0:
Windows PowerShell 3.0:
Para visualización (ambas versiones):
fuente
Para producir una salida idéntica a winver.exe en PowerShell v5 en Windows 10 1809:
fuente
fuente
Este es realmente un hilo largo, y probablemente porque las respuestas, aunque correctas, no resuelven la pregunta fundamental. Encontré este sitio: Versión y números de compilación que proporcionaban una descripción clara de qué es qué en el mundo de Microsoft Windows.
Dado que mi interés es saber con qué sistema operativo Windows exacto estoy tratando, dejé a un lado la versión completa del arco iris y en su lugar me concentré en el BuildNumber. El número de compilación puede alcanzarse ya sea por:
o por:
la elección es suya de la forma que prefiera. Entonces desde allí podría hacer algo en la línea de:
Nota: Como puede ver, utilicé lo anterior solo para sistemas de servidor, sin embargo, podría aplicarse fácilmente a estaciones de trabajo o incluso ampliarse inteligentemente para admitir ambos ... pero se lo dejo a usted.
¡Disfruta y diviértete!
fuente
Esto le dará la versión completa y CORRECTA (el mismo número de versión que encuentra cuando ejecuta winver.exe) de Windows (incluido el número de revisión / compilación) REMOTAMENTE a diferencia de todas las otras soluciones (probadas en Windows 10):
fuente
Busqué mucho para averiguar la versión exacta, porque el servidor WSUS muestra la versión incorrecta. Lo mejor es obtener una revisión de la clave de registro UBR.
fuente
Con Windows Powershell, es posible obtener los datos que necesita de la siguiente manera
Subtítulo:
ReleaseId:
versión:
fuente
[resuelto]
fuente
También puede usar algo como esto, marcando OSVersion.Version.Major:
fuente
Puede usar python para simplificar las cosas (funciona en todas las versiones de Windows y todas las demás plataformas):
fuente
En devoluciones de Windows 10: 10.0.10586.420
Luego puede usar la variable para acceder a las propiedades para la comparación granular
Además, puede comparar las versiones del sistema operativo utilizando lo siguiente
fuente