¿Cómo diferenciar Windows 8.1 Update 1 de Windows 8.1?


9

¿Hay alguna forma de diferenciar estos dos definitivamente?

Me doy cuenta de que puedo buscar una barra de tareas o un botón de encendido en la pantalla de inicio, pero estoy más interesado en saber si hay algún lugar que realmente muestre 8.1 Actualización 1. Sé que MS tiene esta página , pero sería una forma programática de detectarlo. bueno, especialmente porque los últimos ISO tienen la actualización incorporada.

Por lo que puedo decir, la salida de very wmic osson iguales entre Windows 8.1 y Windows 8.1. Actualización 1, y las Propiedades del sistema aún informan de Windows 8.1.


1
Usted no Debe comprobar si está instalada la base de conocimientos específica de Windows Update que es "Actualización 1". No tengo el número a mano, está bien documentado.
— Ramhound

2
@Ramhound Eso solo funciona para sistemas que se actualizaron desde 8.1. . . Los ISO en MSDN ahora son Windows 8.1 con actualización, y no tienen la actualización de Windows en su historial. . .
— ernie

2
@ and31415 la versión de compilación se informa en la versalida (6.3.9600), y es la misma para ambos. El problema que estoy tratando de resolver es simplemente saber qué sistemas tenemos en nuestro laboratorio y qué sistema operativo están ejecutando. . . para una cobertura de prueba completa, queremos mantener 8.1 y 8.1 con la Actualización 1
— ernie

2
@ and31415 Debería haber sido más explícito. Tanto la versalida como la información del registro son idénticas. El método wmic / Findstr parece que funcionará (incluso en sistemas que se instalaron desde los nuevos ISO), aunque es feo como pecado (especialmente porque básicamente será una verificación secundaria después de una ververificación). . . publícalo como respuesta y lo aceptaré. . .
— ernie

2
@Ramhound Entiendo que no puede actualizarlo, pero aquí probamos el software, y al igual que tenemos usuarios que aún ejecutan XP sin service packs, asumimos que tendremos usuarios con 8.1 sin haber actualizado. Necesitamos una cobertura integral para asegurarnos de que nuestro software funcione en todos los entornos, y tener una amplia variedad de sistemas es importante para nosotros.
— ernie

Respuestas:


6

Soluciones posibles

A continuación hay algunos scripts por lotes que pueden verificar si el sistema operativo es Windows 8.1, con o sin KB2919355 . El código de salida será uno de los siguientes:

  • 0: Windows 8.1
  • 1: Actualización de Windows 8.1 (KB2919355 instalado)
  • 2: No Windows 8.1

Lote de secuencia de comandos A - Verificación de actualización

Esta es la forma más confiable. El script primero comprueba si el sistema operativo es Windows 8.1 comparando la versión con 6.3.9600. Luego, se consultan todas las actualizaciones instaladas para verificar si la actualización KB2919355 ya estaba instalada.

@echo off

for /f "usebackq tokens=2 delims==" %%G in (
`wmic os get version /value ^| findstr /c:"="`
) do set version=%%~G

if not "%version%" == "6.3.9600" exit /b 2

wmic qfe get hotfixid | findstr /i /c:"KB2919355" >nul
set /a errorlevel=%errorlevel% ^^ 1

exit /b %errorlevel%

Script Batch B - Comprobación de versión de compilación

Como alternativa, puede verificar la versión de compilación de Windows, que es más rápida que la primera secuencia de comandos porque no necesita enumerar todas las actualizaciones. Como utiliza un valor de registro, puede que no sea tan confiable.

@echo off

for /f "usebackq tokens=2 delims==" %%G in (
`wmic os get version /value ^| findstr /c:"="`
) do set version=%%~G

if not "%version%" == "6.3.9600" exit /b 2

for /f "tokens=4 delims=. " %%G in (
'"reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "BuildLabEx" | findstr /i /c:"REG_SZ" "'
) do set /a build=%%~G

if %build% geq 17031 exit /b 1
exit /b 0

Script de lote C - Comprobación de versión de compilación (Internet Explorer)

Al igual que el script anterior, aquí el concepto es similar, excepto que se verifica la versión de Internet Explorer (IE).

@echo off

for /f "usebackq tokens=2 delims==" %%G in (
`wmic os get version /value ^| findstr /c:"="`
) do set version=%%~G

if not "%version%" == "6.3.9600" exit /b 2

for /f "tokens=3,6 delims=. " %%G in (
'"reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v "svcVersion" | findstr /i /c:"REG_SZ" "'
) do set /a major=%%~G & set /a build=%%~H

if %major% equ 11 if %build% geq 17031 exit /b 1
if %major% geq 12 exit /b 1
exit /b 0

Nota El script supone que cualquier versión de IE superior o igual a 12 estará disponible en un sistema Windows 8.1 con la actualización KB2919355 instalada.

Todas las futuras actualizaciones de seguridad y no seguridad para Windows RT 8.1, Windows 8.1 y Windows Server 2012 R2 requieren que se instale esta actualización. Recomendamos que instale esta actualización en su computadora con Windows RT 8.1, Windows 8.1 o Windows Server 2012 R2 para recibir actualizaciones futuras continuas.

Fuente: Actualización de Windows RT 8.1, Windows 8.1 y Windows Server 2012 R2: abril de 2014

Dado lo anterior, es razonable pensar que cualquier versión más nueva de IE requeriría la actualización como requisito previo, al igual que se requiere SP2 para instalar IE 9 en Windows Vista .


1
Estoy feliz de que mi idea de verificar la versión IE11 fuera una posible solución.
— Ramhound

@Ramhound He mejorado el antiguo script. Verificar la versión de IE tiene algunas advertencias, y he actualizado la respuesta para aclarar eso.
— y31415

3

Analiza la BuildLabExcuerda

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | findstr BuildLabEx

y si el número es mayor que 17031los usuarios tienen instalada la Actualización 1.


BuildLabno está actualizado; BuildLabExees.
— Jeroen Wiert Pluimers

@ magicandre1981: que es exactamente lo que comprueba este script de consulta.
— Ramhound

La oración inicial habla de BuildLab. Mi comentario explica la diferencia entre los dos, ya que la Exparte de BuildLabExestá oculta en el aumento de texto predeterminado del 100% del script.
— Jeroen Wiert Pluimers

0

Usamos una utilidad de línea de comandos llamada WuInstall ( http://www.wuinstall.com ) que hace algunas cosas útiles para parchear, entre ellas habilitar scripts por lotes para verificar cuándo se instalan las actualizaciones

Línea de comando para mostrar todas las actualizaciones instaladas

WUInstall.exe / search / criterios "IsInstalled = 1" / offline

Para verificar si un determinado KB está instalado (hay muchas opciones de filtrado) puede verificar:

WUInstall.exe / search / criterios "IsInstalled = 1" / offline / match "KB982214"

La utilidad realiza una salida de línea de comandos, que puede redirigirse a un archivo xml con una opción llamada / xmlout o simplemente redirigirse a un archivo con, por ejemplo,> out.txt


-1

Simplemente busco una carpeta "winstore" en Windows, ya que he notado que es una gran diferencia en todas las versiones de Windows.

Incluso puede ejecutar el comando WinStore para verlo.

REM Simulación de comprobación del sistema operativo: Instalar c: cd \ if exist "c: \ windows \ WinStore" ir a WIN8

: Código específico de Win8 REM para una máquina win8


1
Supongo que estás diciendo que es para Windows8 versos que no son Windows 8. Esta pregunta fue específicamente para Win8.1 v. Win8.1 Actualización 1
— ernie
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.