Возможные решения
Ниже приведено несколько пакетных сценариев, которые могут проверить, является ли операционная система Windows 8.1 с KB2919355 или без. Код выхода будет одним из следующих:
0
: Windows 8.1
1
: Обновление Windows 8.1 (установлено KB2919355)
2
: не Windows 8.1
Пакетный скрипт A - проверка обновлений
Это самый надежный способ. Сначала скрипт проверяет, является ли операционная система Windows 8.1, сравнивая версию с 6.3.9600
. Затем запрашиваются все установленные обновления, чтобы проверить, было ли уже установлено обновление KB2919355.
@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%
Пакетный скрипт B - Проверка версии сборки
В качестве альтернативы вы можете проверить версию сборки Windows, которая быстрее, чем первый скрипт, потому что вам не нужно перечислять все обновления. Поскольку он использует значение реестра, он может быть не таким надежным.
@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
Пакетный скрипт C - Проверка версии сборки (Internet Explorer)
Как и в предыдущем сценарии, здесь концепция аналогична, за исключением того, что вместо нее проверяется версия 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
Примечание. В сценарии предполагается, что любая версия IE выше или равная 12 будет доступна в системе Windows 8.1 с установленным обновлением KB2919355.
Все будущие обновления для системы безопасности и безопасности для Windows RT 8.1, Windows 8.1 и Windows Server 2012 R2 требуют, чтобы это обновление было установлено. Мы рекомендуем установить это обновление на компьютер под управлением Windows RT 8.1, Windows 8.1 или Windows Server 2012 R2, чтобы получать дальнейшие обновления.
Источник: Windows RT 8.1, Windows 8.1 и Windows Server 2012 R2 Обновление: апрель 2014 г.
Учитывая вышесказанное, разумно думать, что любая более новая версия IE потребует обновления в качестве предварительного условия, точно так же, как SP2 требуется для установки IE 9 в Windows Vista.