Soluções possíveis
Abaixo, há alguns scripts em lote que podem verificar se o sistema operacional é o Windows 8.1, com ou sem KB2919355 . O código de saída será um dos seguintes:
-
0
: Windows 8.1 -
1
: atualização do Windows 8.1 (KB2919355 instalado) -
2
: não Windows 8.1
Script em lote A - Verificação de atualização
Esta é a maneira mais confiável. O script primeiro verifica se o sistema operacional é o Windows 8.1, comparando a versão com 6.3.9600
. Em seguida, todas as atualizações instaladas são consultadas para verificar se a atualização KB2919355 já foi 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 em lote B - Verificação da versão de compilação
Como alternativa, você pode verificar a versão de compilação do Windows, que é mais rápida que o primeiro, pois não é necessário enumerar todas as atualizações. Como ele usa um valor de registro, pode não ser tão confiável.
@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 em lote C - Verificação da versão de compilação (Internet Explorer)
Assim como o script anterior, aqui o conceito é semelhante, exceto que a versão do Internet Explorer (IE) é marcada.
@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 O script pressupõe que qualquer versão do IE maior ou igual a 12 esteja disponível em um sistema Windows 8.1 com a atualização KB2919355 instalada.
All future security and nonsecurity updates for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 require this update to be installed. We recommend that you install this update on your Windows RT 8.1, Windows 8.1, or Windows Server 2012 R2-based computer in order to receive continued future updates.
Source: Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 Update: April 2014
Com base no acima, é razoável pensar que qualquer versão mais recente do IE exigiria a atualização como um pré-requisito, assim como o SP2 é necessário para instalar o IE 9 no Windows Vista .