Comment différencier Windows 8.1 Update 1 de Windows 8.1?


9

Existe-t-il de toute façon de les différencier définitivement?

Je me rends compte que je peux rechercher une barre des tâches ou un bouton d'alimentation sur l'écran de démarrage, mais je suis plus intéressé à savoir s'il y a un endroit qui affiche réellement 8.1 Update 1. Je sais que MS a cette page , mais une façon programmatique de la détecter serait agréable, surtout que les dernières ISO ont la mise à jour intégrée.

Pour autant que je sache, les sorties de veret wmic ossont les mêmes entre Windows 8.1 et Windows 8.1. Mettez à jour 1 et les propriétés système signalent toujours Windows 8.1.


1
Non. Vous devez vérifier si la base de connaissances Windows Update spécifique qui est "Update 1" est installée. Je n'ai pas le numéro à portée de main, c'est bien documenté.
— Ramhound

2
@Ramhound Cela ne fonctionne que pour les systèmes qui ont été mis à niveau à partir de 8.1. . . Les ISO sur MSDN sont désormais Windows 8.1 avec mise à jour et n'ont pas Windows Update dans leur historique. . .
— ernie

2
@ and31415 la version de construction est signalée dans la versortie (6.3.9600) et est la même pour les deux. Le problème que j'essaie de résoudre est simplement de savoir quels systèmes nous avons dans notre laboratoire et quel système d'exploitation ils exécutent. . . pour une couverture complète des tests, nous voulons conserver les versions 8.1 et 8.1 avec la mise à jour 1
— ernie

2
@ and31415 J'aurais dû être plus explicite. La versortie et les informations de registre sont identiques. La méthode wmic / findstr semble fonctionner (même sur les systèmes qui ont été installés à partir des nouveaux ISO), bien que ce soit laid comme un péché (d'autant plus que ce sera fondamentalement une vérification secondaire après une vervérification). . . postez-le comme réponse et je l'accepterai. . .
— ernie

2
@Ramhound Je comprends que vous ne pouvez pas le mettre à jour, mais nous testons le logiciel ici, et tout comme nous avons des utilisateurs qui exécutent encore XP sans service packs, nous supposons que nous aurons des utilisateurs avec 8.1 sans avoir mis à jour. Nous avons besoin d'une couverture complète pour nous assurer que nos logiciels fonctionnent dans tous les environnements, et disposer d'une large gamme de systèmes est important pour nous.
— ernie

Réponses:


6

Solutions possibles

Vous trouverez ci-dessous quelques scripts de commandes qui peuvent vérifier si le système d'exploitation est Windows 8.1, avec ou sans KB2919355 . Le code de sortie sera l'un des suivants:

  • 0: Windows 8.1
  • 1: Windows 8.1 Update (KB2919355 installé)
  • 2: Pas Windows 8.1

Script de lot A - Vérification de la mise à jour

C'est le moyen le plus fiable. Le script vérifie d'abord si le système d'exploitation est Windows 8.1 en comparant la version avec 6.3.9600. Ensuite, toutes les mises à jour installées sont interrogées pour vérifier si la mise à jour KB2919355 a déjà été installée.

@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 de lot B - Vérification de la version de build

Comme alternative, vous pouvez vérifier la version de build de Windows, qui est plus rapide que le premier script car vous n'avez pas besoin d'énumérer toutes les mises à jour. Puisqu'il utilise une valeur de registre, il n'est peut-être pas aussi fiable.

@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 lot C - Vérification de la version de build (Internet Explorer)

Tout comme le script précédent, ici le concept est similaire, sauf que la version Internet Explorer (IE) est vérifiée à la place.

@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

Remarque Le script suppose que toute version IE supérieure ou égale à 12 doit être disponible sur un système Windows 8.1 avec la mise à jour KB2919355 installée.

Toutes les futures mises à jour de sécurité et de non-sécurité pour Windows RT 8.1, Windows 8.1 et Windows Server 2012 R2 nécessitent l'installation de cette mise à jour. Nous vous recommandons d'installer cette mise à jour sur votre ordinateur Windows RT 8.1, Windows 8.1 ou Windows Server 2012 R2 afin de recevoir les futures mises à jour continues.

Source: Windows RT 8.1, Windows 8.1 et Windows Server 2012 R2 Update: avril 2014

Compte tenu de ce qui précède, il est raisonnable de penser que toute nouvelle version d'IE nécessiterait la mise à jour comme condition préalable, tout comme SP2 est requis pour installer IE 9 sur Windows Vista .


1
Je suis heureux que mon idée de vérifier la version IE11 soit une solution possible.
— Ramhound

@Ramhound J'ai amélioré l'ancien script. La vérification de la version IE a quelques mises en garde, et j'ai mis à jour la réponse pour clarifier cela.
— and31415

3

Analyser la BuildLabExchaîne

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

et si le nombre est supérieur à 17031ce que les utilisateurs ont installé la mise à jour 1.


BuildLabn'est pas mis à jour; BuildLabExeest.
— Jeroen Wiert Pluimers

@ magicandre1981 - C'est exactement ce que ce script de requête vérifie.
— Ramhound

La première phrase parle BuildLab. Mon commentaire explique la différence entre les deux, car la Expartie de BuildLabExest cachée dans le grossissement de texte par défaut de 100% du script.
— Jeroen Wiert Pluimers

0

Nous utilisons un utilitaire de ligne de commande appelé WuInstall ( http://www.wuinstall.com ) qui fait certaines choses utiles concernant les correctifs, notamment en permettant aux scripts de commandes de vérifier si les mises à jour sont installées

Ligne de commande pour afficher toutes les mises à jour installées

WUInstall.exe / recherche / critères "IsInstalled = 1" / hors ligne

Pour vérifier si un certain KB est installé (il existe de nombreuses options de filtrage), vous pouvez vérifier:

WUInstall.exe / recherche / critères "IsInstalled = 1" / hors ligne / correspond à "KB982214"

L'utilitaire fait une sortie de ligne de commande, qui peut être redirigée vers un fichier xml avec une option appelée / xmlout ou simplement redirigée vers un fichier avec par exemple> out.txt


-1

Je vérifie simplement un dossier "winstore" dans Windows car j'ai remarqué que c'est une différence flagrante dans toutes les versions de Windows.

Peut même exécuter la commande WinStore pour le voir.

REM Simulation de la vérification du système d'exploitation: installez c: cd \ s'il existe "c: \ windows \ WinStore" goto WIN8

: Code spécifique Win8 REM pour une machine win8


1
Je suppose que vous dites que c'est pour les vers Windows8 non-Windows 8. Cette question était spécifiquement pour Win8.1 v. Win8.1 Update 1
— ernie
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.