Windows 8.1 Update 1とWindows 8.1を区別する方法


9

とにかく、これら2つを明確に区別する方法はありますか?

スタート画面でタスクバーまたは電源ボタンを探すことができることに気づきましたが、実際に8.1 Update 1が表示されている場所があるかどうかを知りたいと思っています。MSにこのページがあることを知っていますが、プログラムで検出する方法は特に最新のISOには更新がスリップストリーム化されているので、すばらしいです。

私の知る限り、の出力verとは、wmic osWindowsの8.1とWindows 8.1の間で同じです。Update 1でも、システムプロパティはWindows 8.1を報告します。


1
あなたはしません。「Update 1」である特定のWindows Updateナレッジベースがインストールされているかどうかを確認する必要があります。十分に文書化された便利な数はありません。
— ラムハウンド2014

2
@Ramhound 8.1からアップグレードされたシステムでのみ機能します。。。MSDNのISOはWindows 8.1 with Updateになり、Windows Updateの履歴はありません。。。
— アーニー2014

2
@ and31415ビルドバージョンはver出力(6.3.9600)で報告され、両方とも同じです。私が解決しようとしている問題は、私たちのラボにあるシステムと、それらが実行しているOSを知ることです。。。完全なテストカバレッジのために、アップデート1で8.1と8.1の両方を維持したい
— アーニー2014

2
@ and31415私はもっと明確にすべきだった。ver出力とレジストリ情報はどちらも同じです。wmic / findstrメソッドは、(新しいISOからインストールされたシステムでも)機能するように見えますが、罪として醜いです(特に、チェック後に基本的に2次チェックになるためver)。。。回答として投稿してください。。。
— アーニー2014

2
@Ramhound更新できないことは承知していますが、ここではソフトウェアをテストしています。サービスパックなしでXPを実行しているユーザーがいるのと同じように、更新されていない8.1のユーザーがいると想定しています。私たちのソフトウェアがすべての環境で機能することを確実にするために、包括的なカバレッジが必要であり、幅広いシステムを持つことは私たちにとって重要です。
— アーニー2014

回答:


6

可能な解決策

以下に、KB2919355の有無にかかわらず、オペレーティングシステムがWindows 8.1かどうかを確認できるいくつかのバッチスクリプトを示します。終了コードは次のいずれかになります。

  • 0:Windows 8.1
  • 1:Windows 8.1 Update(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

注このスクリプトでは、更新KB2919355がインストールされているWindows 8.1システムで12以上のIEバージョンが利用可能であると想定しています。

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 Update:2014年4月

上記を踏まえると、Windows VistaにIE 9をインストールするためにSP2が必要であるのと同じように、新しいIEバージョンでは前提条件として更新が必要になると考えるのが妥当です。


1
IE11のバージョンを確認するという私の考えが、可能な解決策であったことを嬉しく思います。
— ラムハウンド2014

@Ramhound古いスクリプトを改善しました。IEのバージョンを確認することにはいくつかの注意事項があり、それを明確にするために回答を更新しました。
— and31415 2014

3

BuildLabEx文字列を解析する

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

17031ユーザー数よりも大きい場合は、Update 1がインストールされています。


BuildLab更新されません。BuildLabExeです。
— Jeroen Wiert Pluimers 14

@ magicandre1981-これはまさにこのクエリスクリプトがチェックするものです。
— ラムハウンド2014

最初の文はについて語っていBuildLabます。スクリプトのデフォルトの100%のテキスト倍率ではのEx部分BuildLabExが非表示になっているため、私のコメントは2つの違いを説明しています。
— Jeroen Wiert Pluimers 2014

0

WuInstall(http://www.wuinstall.com)と呼ばれるコマンドラインユーティリティを使用して、パッチ適用に関するいくつかの便利な機能を実行します。その中には、更新がインストールされているかどうかをバッチスクリプトで確認できるようにします。

インストールされているすべての更新を表示するコマンドライン

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

特定のKBがインストールされているかどうか(多くのフィルタリングオプションがあります)を確認するには、次を確認します。

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

ユーティリティはコマンドライン出力をいくつか実行します。これは、/ xmloutと呼ばれるオプションを使用してxmlファイルにリダイレクトするか、> out.txtなどを使用してファイルにリダイレクトすることができます。


-1

私は、Windowsの「winstore」フォルダを確認するだけです。これは、Windowsのすべてのバージョンで明らかな違いがあることに気付いたからです。

コマンドWinStoreを実行してそれを表示することもできます。

REMシミュレートOSチェック:インストールc:cd \存在する場合は "c:\ windows \ WinStore" goto WIN8

:win8マシンのWin8 REM固有のコード


1
これは、Windows8とWindows 8以外のバージョンの問題だと思います。この質問は、Win8.1 v。Win8.1 Update 1を対象としたものです
— ernie
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.