Як відрізнити 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 Update, яка є "Оновлення 1". У мене немає такої кількості, яка б добре була зафіксована.
— Рамхаунд

2
@Ramhound Це працює лише для систем, які були оновлені з 8.1. . . ISO-адреси в MSDN тепер є Windows 8.1 з оновленням і не мають оновлення Windows в своїй історії. . .
— ernie

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

2
@ and31415 Я повинен був бути більш чітким. І verвихід, і інформація про реєстр однакові. Метод wmic / findstr здається, що він буде працювати (навіть у системах, які були встановлені з нових ISO), хоча це некрасиво як гріх (тим більше, що це в основному буде вторинною перевіркою після verперевірки). . . опублікуйте це як відповідь, і я прийму його. . .
— ernie

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

Відповіді:


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 потребує оновлення як необхідної умови, подібно до того, як для встановлення IE 9 на Windows Vista потрібно SP2 .


1
Я щасливий, що моя думка про перевірку версії IE11 була можливим рішенням.
— Рамхаунд

@Ramhound Я вдосконалив старий сценарій. Перевірка версії IE містить деякі застереження, і я оновив відповідь, щоб уточнити це.
— і31415

3

Розбираємо BuildLabExрядок

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

і якщо число більше, ніж 17031у користувачів, встановлено оновлення 1.


BuildLabне оновлюється; BuildLabExeє.
— Jeroen Wiert Pluimers

@ magicandre1981 - саме це перевіряє цей скрипт запиту.
— Рамхаунд

Початкове речення говорить про BuildLab. Мій коментар пояснює різницю між двома, оскільки Exчастина BuildLabExприхована у 100-відсотковому збільшенні тексту сценарію за замовчуванням.
— Jeroen 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" goto WIN8

: Спеціальний код Win8 для машини win8


1
Я здогадуюсь, ви говорите, що це для віршів Windows8, не для Windows 8. Це питання було розроблено спеціально для Win8.1 v. Win8.1, оновлення 1
— ernie
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.