Wie kann man Windows 8.1 Update 1 von Windows 8.1 unterscheiden?

9

Gibt es überhaupt eine Möglichkeit, diese beiden endgültig zu unterscheiden?

Mir ist klar, dass ich auf dem Startbildschirm nach einer Taskleiste oder einem Netzschalter suchen kann, aber ich bin mehr daran interessiert zu wissen, ob irgendwo tatsächlich 8.1 Update 1 angezeigt wird. Ich weiß, dass MS diese Seite hat , aber eine programmatische Methode, dies zu erkennen schön, vor allem, weil die neuesten ISOs das Update Slipstreaming haben.

Soweit ich das beurteilen kann, sind die Ausgaben von verund wmic oszwischen Windows 8.1 und Windows 8.1 gleich. Update 1 und die Systemeigenschaften melden weiterhin Windows 8.1.

Ernie
quelle
1
Das tust du nicht. Sie müssen überprüfen, ob die spezifische Windows Update-Wissensdatenbank "Update 1" installiert ist. Ich habe die Nummer nicht zur Hand, sie ist gut dokumentiert.
Ramhound
2
@Ramhound Das funktioniert nur für Systeme, die von 8.1 aktualisiert wurden. . . ISOs auf MSDN sind jetzt Windows 8.1 mit Update und haben das Windows Update nicht in ihrem Verlauf. . .
ernie
2
@ and31415 Die Build-Version wird in der verAusgabe (6.3.9600) gemeldet und ist für beide gleich. Das Problem, das ich zu lösen versuche, ist nur zu wissen, welche Systeme wir in unserem Labor haben und welches Betriebssystem sie ausführen. . . Für eine vollständige Testabdeckung möchten wir sowohl 8.1 als auch 8.1 mit Update 1
ernie
2
@ and31415 Ich hätte expliziter sein sollen. Sowohl die verAusgabe- als auch die Registrierungsinformationen sind identisch. Die wmic / findstr-Methode scheint zu funktionieren (selbst auf Systemen, die von den neuen ISOs installiert wurden), obwohl sie als Sünde hässlich ist (zumal es sich im Grunde genommen um eine sekundäre Prüfung nach einer verPrüfung handelt). . . poste das als Antwort und ich werde es akzeptieren. . .
ernie
2
@Ramhound Ich verstehe, dass Sie es nicht aktualisieren können, aber wir testen die Software hier und genau wie wir Benutzer haben, die noch XP ohne Service Packs ausführen, gehen wir davon aus, dass wir Benutzer mit 8.1 haben, ohne sie aktualisiert zu haben. Wir benötigen eine umfassende Abdeckung, um sicherzustellen, dass unsere Software in allen Umgebungen funktioniert, und eine breite Systembreite ist uns wichtig.
ernie

Antworten:

6

Mögliche Lösungen

Im Folgenden finden Sie einige Batch-Skripte, mit denen überprüft werden kann, ob das Betriebssystem Windows 8.1 mit oder ohne KB2919355 ist . Der Exit-Code lautet wie folgt:

  • 0: Windows 8.1
  • 1: Windows 8.1 Update (KB2919355 installiert)
  • 2: Nicht Windows 8.1

Stapelskript A - Aktualisierungsprüfung

Dies ist der zuverlässigste Weg. Das Skript prüft zunächst, ob das Betriebssystem Windows 8.1 ist, indem es die Version mit vergleicht 6.3.9600. Anschließend werden alle installierten Updates abgefragt, um zu überprüfen, ob das KB2919355-Update bereits installiert wurde.

@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%

Batch-Skript B - Versionsprüfung erstellen

Alternativ können Sie die Windows-Buildversion überprüfen, die schneller als das erste Skript ist, da Sie nicht alle Updates auflisten müssen. Da ein Registrierungswert verwendet wird, ist er möglicherweise nicht so zuverlässig.

@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

Batch-Skript C - Versionsprüfung erstellen (Internet Explorer)

Genau wie im vorherigen Skript ist auch hier das Konzept ähnlich, außer dass stattdessen die Internet Explorer (IE) -Version aktiviert ist.

@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

Hinweis Das Skript geht davon aus, dass jede IE-Version höher oder gleich 12 auf einem Windows 8.1-System mit installiertem Update KB2919355 verfügbar ist.

Für alle zukünftigen Sicherheits- und Nicht-Sicherheitsupdates für Windows RT 8.1, Windows 8.1 und Windows Server 2012 R2 muss dieses Update installiert sein. Wir empfehlen, dass Sie dieses Update auf Ihrem Windows RT 8.1-, Windows 8.1- oder Windows Server 2012 R2-basierten Computer installieren, um weitere zukünftige Updates zu erhalten.

Quelle: Windows RT 8.1, Windows 8.1 und Windows Server 2012 R2 Update: April 2014

In Anbetracht des oben Gesagten ist es vernünftig zu glauben, dass für jede neuere IE-Version das Update als Voraussetzung erforderlich ist , genau wie SP2 für die Installation von IE 9 unter Windows Vista erforderlich ist .

und 31415
quelle
1
Ich bin froh, dass meine Idee, die Version IE11 zu überprüfen, eine mögliche Lösung war.
Ramhound
@ Ramhound Ich habe das alte Skript verbessert. Das Überprüfen der IE-Version weist einige Einschränkungen auf, und ich habe die Antwort aktualisiert, um dies zu verdeutlichen.
and31415
3

Analysieren Sie die BuildLabExZeichenfolge

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

und wenn die Anzahl größer ist als 17031die Benutzer, haben Sie das Update 1 installiert.

magicandre1981
quelle
BuildLabwird nicht aktualisiert; BuildLabExeist.
Jeroen Wiert Pluimers
@ magicandre1981 - Genau das prüft dieses Abfrageskript.
Ramhound
Der erste Satz spricht darüber BuildLab. Mein Kommentar erklärt den Unterschied zwischen den beiden, da der ExTeil von BuildLabExin der standardmäßigen 100% igen Textvergrößerung des Skripts verborgen ist.
Jeroen Wiert Pluimers
0

Wir verwenden ein Befehlszeilenprogramm namens WuInstall ( http://www.wuinstall.com ), das einige nützliche Dinge rund um das Patchen erledigt, darunter Batch-Skripte, mit denen überprüft werden kann, ob die Updates installiert sind

Befehlszeile, um alle installierten Updates anzuzeigen

WUInstall.exe / search / Kriterien "IsInstalled = 1" / offline

Um zu überprüfen, ob eine bestimmte KB installiert ist (es gibt viele Filteroptionen), können Sie Folgendes überprüfen:

WUInstall.exe / search / Kriterien "IsInstalled = 1" / offline / match "KB982214"

Das Dienstprogramm führt eine Befehlszeilenausgabe aus, die mit der Option / xmlout in eine XML-Datei umgeleitet oder einfach in eine Datei mit zB> out.txt umgeleitet werden kann

MacDonkey
quelle
-1

Ich suche einfach in Windows nach einem "Winstore" -Ordner, da ich festgestellt habe, dass dies ein offensichtlicher Unterschied in allen Windows-Versionen ist.

Kann sogar den Befehl WinStore ausführen, um ihn anzuzeigen.

REM Simulation der Betriebssystemprüfung: Installieren Sie c: cd \ falls vorhanden "c: \ windows \ WinStore" und gehen Sie zu WIN8

: Win8 REM-spezifischer Code für eine Win8-Maschine

PowerTrip
quelle
1
Ich vermute, Sie sagen, das ist für Windows8-Verse, die nicht Windows 8 sind. Diese Frage war speziell für Win8.1 v. Win8.1 Update 1
ernie