Как отличить Windows 8.1 Update 1 от Windows 8.1?


9

Есть ли какой-либо способ дифференцировать эти два окончательно?

Я понимаю, что могу искать панель задач или кнопку питания на начальном экране, но мне больше интересно знать, есть ли где-нибудь, что на самом деле отображает 8.1 Обновление 1. Я знаю, что у MS есть эта страница , но программным способом ее обнаружения будет приятно, тем более, что последние ISO-файлы имеют обновленную версию.

Насколько я могу сказать, выход verи wmic osодинаковы между Windows 8.1 и Windows 8.1. Обновление 1, и Свойства системы по-прежнему сообщает о Windows 8.1.


1
Вы не Вы должны проверить, установлена ​​ли конкретная база знаний Центра обновления Windows «Обновление 1». У меня нет удобного номера, это хорошо задокументировано.
— Ramhound

2
@Ramhound Это работает только для систем, которые были обновлены с 8.1. , , ISO-образы на MSDN теперь являются Windows 8.1 с обновлением, и в их истории нет Центра обновления Windows. , ,
— Эрни

2
@ and31415 версия сборки сообщается в verвыходных данных (6.3.9600) и является одинаковой для обоих. Проблема, которую я пытаюсь решить, заключается в том, чтобы просто знать, какие системы у нас есть в нашей лаборатории, и какую ОС они используют. , , для полного охвата тестов мы хотим сохранить как 8.1, так и 8.1 с обновлением 1
— Эрни

2
@ and31415 Я должен был быть более явным. И verвыходные данные, и информация о реестре идентичны. Кажется, что метод wmic / findstr будет работать (даже на системах, которые были установлены из новых ISO), хотя это ужасно, как грех (тем более, что в основном это будет вторичная проверка после verпроверки). , , отправьте это как ответ, и я приму это. , ,
— Эрни

2
@Ramhound Я понимаю, что вы не можете обновить его, но мы тестируем здесь программное обеспечение, и, как у нас есть пользователи, которые все еще используют XP без пакетов обновления, мы предполагаем, что у нас будут пользователи с 8.1 без обновления. Нам нужно полное покрытие, чтобы наше программное обеспечение работало во всех средах, и для нас важно иметь широкий спектр систем.
— Эрни

Ответы:


6

Возможные решения

Ниже представлено несколько пакетных сценариев, которые могут проверить, является ли операционная система 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 .


1
Я счастлив, что моя идея о проверке версии IE11 была возможным решением.
— Ramhound

@Ramhound Я улучшил старый скрипт. Проверка версии IE имеет некоторые оговорки, и я обновил ответ, чтобы прояснить это.
— and31415

3

Разобрать BuildLabExстроку

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

и если число больше, чем 17031у пользователей, установлено обновление 1.


BuildLabне обновляется; BuildLabExeявляется.
— Йерун Wiert Pluimers

@ magicandre1981 - это именно то, что проверяет этот скрипт запроса.
— Ramhound

Первоначальное предложение говорит о BuildLab. Мой комментарий объясняет разницу между ними, так как Exчасть BuildLabExскрыта в 100% увеличении текста скрипта по умолчанию.
— Йерун Wiert Pluimers

0

Мы используем утилиту командной строки под названием WuInstall ( http://www.wuinstall.com ), которая делает несколько полезных вещей в отношении исправлений, среди которых включение пакетных сценариев для проверки, установлены ли обновления

Командная строка, чтобы показать все установленные обновления

WUInstall.exe / поиск / критерии "IsInstalled = 1" / не в сети

Чтобы проверить, установлен ли определенный КБ (есть много вариантов фильтрации), вы можете проверить:

WUInstall.exe / поиск / критерии "IsInstalled = 1" / автономный режим / соответствие "KB982214"

Утилита выводит некоторую командную строку, которую можно перенаправить в файл XML с помощью параметра / xmlout или просто перенаправить в файл, например,> out.txt.


-1

Я просто проверяю папку «winstore» в Windows, так как заметил, что это явная разница во всех версиях Windows.

Можно даже запустить команду WinStore, чтобы увидеть это.

REM Имитация проверки ОС: Установите c: cd \, если существует "c: \ windows \ WinStore", перейдите в WIN8

: Win8 REM-специфичный код для машины win8


1
Я предполагаю, что вы говорите, что это для Windows8 стихи не-Windows 8. Этот вопрос был специально для Win8.1 v. Win8.1 Обновление 1
— Эрн
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.