Windows Server 2008 R2でKB4534976のインストールが失敗し、Windows Updateが毎日同じ更新を再試行して困っていませんか?原因の多くは「KB4534976の実体が.NET Frameworkのバージョン別に分かれている」ことと、SSU/SHA-2前提更新の不足です。手順をまとめます。
よくある症状:KB4534976が「Installation failed」で失敗し続ける
Windows Updateを使っているWindows Server 2008 R2環境で、次のような状態に陥ることがあります。
- 更新プログラム一覧にKB4534976が表示され、インストールを実行すると失敗する
- 更新履歴には「Failed」「インストールに失敗」と残る
- 翌日以降もWindows Updateが同じKBを「重要な更新」として再提示し、同じ失敗を繰り返す
この現象は「Windows Updateの不具合」というより、KB4534976の仕組みを誤解している、または前提更新(Servicing Stack / 署名対応)が不足していることが原因で発生するケースが多いです。
まず押さえる:KB4534976は“単体の更新ファイル”ではない
KB4534976は、Windows 7 SP1 / Windows Server 2008 R2 SP1向けの.NET Framework「セキュリティのみ」更新を指す“総称(メタ的なKB)”です。実際に適用される更新は、インストール済みの.NET Frameworkのバージョンごとに分かれます。
つまり、Windows Update画面では「KB4534976」と表示されていても、実際には以下のような複数の候補のどれか(または複数)を入れる必要があります。
| ポイント | 内容 | ここを間違えると |
|---|---|---|
| 対象OS | Windows Server 2008 R2 SP1 | SP1でないと適用不可/前提更新の整合が取れない |
| アーキテクチャ | 多くのサーバーはx64(Itaniumは別系統) | x86/x64取り違えでインストール失敗 |
| .NET Framework | 3.5.1(OS標準)+ 4.x(追加導入している場合) | 入っていない.NET向けパッケージを当てようとして失敗 |
| 更新の枝分かれ | 同じ「KB4534976」でも.NETの世代ごとに実体KBが別 | 「KB4534976を入れたつもり」でも再提示が消えない |
結論として、KB4534976という表示名に引っ張られず、Microsoftのサポートページに記載された「自分の.NETバージョンに一致する実体KB」を選び、Microsoft Update カタログから手動適用するのが最短ルートです。
セキュリティのみ更新とロールアップの違いを整理する
Windows Server 2008 R2世代は「セキュリティのみ(Security Only)」と「ロールアップ(Security and Quality Rollup)」が並ぶことがあり、ここが混乱の元になります。運用方針に合わせて選びましょう。
| 種類 | ざっくり特徴 | 向いている運用 | 注意点 |
|---|---|---|---|
| セキュリティのみ更新 | セキュリティ修正に焦点を当てた更新 | 「必要最小限だけ入れたい」「変更リスクを抑えたい」 | 前提更新(SSU/SHA-2)が不足していると失敗しやすい |
| ロールアップ | セキュリティ+品質改善をまとめて提供する更新 | 「月次でまとめて適用したい」「管理を簡素化したい」 | 適用範囲が広くなり、影響調査が必要なことがある |
今回の話は「KB4534976=.NETのセキュリティのみ更新」が対象です。ロールアップ運用の環境では、WSUSや配布方針と矛盾していないかも合わせて確認してください。
事前確認:OS情報と.NETのバージョンを把握する
OSが「Windows Server 2008 R2 SP1」か、x64かを確認する
GUIで確認する場合は、コンピューターのプロパティでエディションとService Pack、システムの種類(64ビット)を確認します。
コマンドで一気に確認するなら、管理者権限で以下を実行します。
wmic os get Caption,ServicePackMajorVersion,OSArchitecture /value
.NET Frameworkのインストール状況を確認する
Windows Server 2008 R2では、.NET Framework 3.5.1が標準で含まれます。加えて、業務アプリ要件で.NET Framework 4.5.2 / 4.6~ / 4.8などが後から入っていることがよくあります。
.NET 4.5以降は「Release値」で判定できるため、次のレジストリを確認します(存在しなければ4.xが入っていない可能性が高いです)。
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Release
また、サーバーでGUIが使えるなら、コントロール パネル → プログラムと機能から.NETの存在を確認する方法もあります。
| 確認したいこと | 簡単な確認方法 | 目的 |
|---|---|---|
| OS / SP | コンピューターのプロパティ / wmic | 対象更新の適用可否を判断 |
| x64か | システムの種類 / wmic | Update Catalogで選ぶファイルを間違えない |
| .NET 3.5.1 | 基本的に搭載(ただし機能が無効化されている例もある) | 3.5.1向け更新が必要か判断 |
| .NET 4.x | レジストリ(Release)/ アプリ一覧 | 4.x向け更新が必要か判断 |
ポイントは、複数の.NETが同居している可能性が高いことです。たとえば「3.5.1と4.8が両方入っている」なら、両方に対応する更新が提示されることがあります。片方だけ入れると、KB4534976が“未完了”扱いで残りやすくなります。
原因の本命:前提更新(SSU)とSHA-2署名対応が不足している
Windows Server 2008 R2世代で.NET更新の手動インストールが通らない場合、最も多いのが前提更新不足です。特に重要なのが次の2つです。
- KB4490628:Servicing Stack Update(SSU)
- KB4474419:SHA-2コード署名対応更新(署名検証に必要)
2019年以降、更新プログラムの署名はSHA-2が前提になりました。OS側がSHA-2署名を正しく検証できないと、Windows Updateでも手動でも更新が弾かれ、結果として「インストールに失敗」「毎日再試行」の状態になりやすくなります。
まずは導入済みかを確認する
既に入っている場合もあるので、最初に確認するとムダがありません。
wmic qfe | find "4490628"
wmic qfe | find "4474419"
| 前提更新 | 役割 | 導入のポイント |
|---|---|---|
| KB4490628(SSU) | 更新を適用する“仕組み”自体(Servicing Stack)を更新 | 先に入れる。SSUは後戻りが難しいため、適用順序が重要 |
| KB4474419(SHA-2) | SHA-2署名の更新プログラムを受け入れるための土台 | SSU導入後に適用。導入後は再起動を挟むのが安全 |
この2つが未導入のまま、目的の.NET更新(KB4534976相当)だけを入れようとしても、失敗が続くことがあります。まずは土台を整えましょう。
解決手順:Microsoft Update カタログから該当パッケージを手動で入れる
手順の全体像
やることはシンプルですが、順序が大事です。
- KB4490628(SSU)をインストール → 再起動
- KB4474419(SHA-2)をインストール → 再起動
- KB4534976(表示名)の“実体”である、対象.NET向けの更新をUpdate Catalogから入れる
- Windows Updateを再スキャンし、再提示が消えたか確認する
KB4490628(SSU)の入手とインストール
Microsoftのサポートページから該当KBを開き、OSに合うパッケージ(多くはx64)をMicrosoft Update カタログでダウンロードします。
ダウンロードしたファイルが.msuの場合、基本はダブルクリックでインストールできます。サーバー運用で無人実行したい場合は、管理者権限で次のように実行します。
wusa.exe Windows6.1-KB4490628-x64.msu /quiet /norestart
適用後は再起動を推奨します(/norestartにした場合でも、計画再起動を入れてください)。
KB4474419(SHA-2)の入手とインストール
同様にUpdate Catalogから入手し、インストールします。
wusa.exe Windows6.1-KB4474419-x64.msu /quiet /norestart
ここも再起動を挟んでください。再起動を挟まないと、後続の更新が途中で失敗することがあります。
KB4534976の「実体」を選んでインストールする
ここが一番のハマりどころです。Update Catalogで「KB4534976」を検索すると複数の項目が出ますが、全部入れる必要は基本ありません。次の条件に合うものだけを選びます。
- OS:Windows Server 2008 R2 SP1
- アーキテクチャ:x64(ほとんどの場合)
- インストール済みの.NET Framework(3.5.1 / 4.xのどれが入っているか)
- 更新の種別:セキュリティのみ更新(Security Only)
実際の適用例として、.NET Framework 3.5.1(x64)環境では、KB4534976の実体としてKB4532960を入れることで解消したケースがあります。自分の環境で必要な“実体KB”は、MicrosoftのKB4534976解説ページに.NETのバージョン別で整理されています。
インストールできたかを確認する
手動インストール後は、対象KBが入ったか確認します。例としてKB4532960を確認するなら次のコマンドが便利です(KB番号は読み替えてください)。
wmic qfe | find "4532960"
また、GUIなら「インストールされた更新プログラム」に表示されます。確認できたら、Windows Updateで「更新プログラムの確認」を実行し、KB4534976の再提示が消えるかを見ます。
Windows Updateが再提示をやめない場合の追加対処
前提更新と対象パッケージの手動適用が完了しても、Windows Update側のキャッシュが古いままだと、同じ更新が“未適用”として残って見えることがあります。こういうときは、Windows Updateコンポーネントのキャッシュをリセットします。
SoftwareDistributionのリセット(定番)
次の手順はよく効きますが、サーバー運用では影響範囲を理解したうえで実施してください(更新履歴表示が一部変わることがあります)。
net stop wuauserv
net stop bits
ren %windir%\SoftwareDistribution SoftwareDistribution.old
net start bits
net start wuauserv
この後、Windows Updateで再スキャンします。
「とにかく再試行を止めたい」場合は一時的に非表示にする
根本解決は「必要な更新を正しく入れる」ことですが、業務都合で一時的に再試行を止めたい場合は、Windows Updateの画面で該当更新を非表示にできます(右クリック → 非表示)。
ただし、セキュリティ更新を恒久的に避けるのは推奨できません。後で必ず原因(前提更新不足、.NETの対象取り違え等)を潰してください。
それでもインストールに失敗する時のチェックリスト
ここまでやっても失敗する場合は、環境固有の要因(コンポーネント破損、証明書ストアの異常、再起動待ちなど)が疑われます。以下を順番に確認してください。
| チェック項目 | 確認・対処 | 狙い |
|---|---|---|
| 再起動待ちが残っていないか | 一度サーバーを再起動し、更新を再実行 | 「保留中の更新」による失敗を排除 |
| ディスク空き容量 | システムドライブの空きを確保(目安:数GB以上) | 展開領域不足による失敗を排除 |
| 更新プログラムの署名エラー | KB4490628 / KB4474419が入っているか再確認 | SHA-2未対応で弾かれるケースを潰す |
| Windows Updateキャッシュ破損 | SoftwareDistributionのリセット | 同一更新の再提示ループを解除 |
| コンポーネントストア破損 | System Update Readiness Tool(CheckSUR)やSFCで修復 | 更新適用基盤の不整合を修正 |
ログを見ると原因が特定しやすい
失敗が続くときは、ログにヒントが出ます。
- C:\Windows\WindowsUpdate.log:Windows Updateの動き
- C:\Windows\Logs\CBS\CBS.log:更新適用の詳細(TrustedInstaller)
エラーコードで絞り込むなら、たとえば次のように検索します。
findstr /i /c:"0x80092004" %windir%\WindowsUpdate.log
findstr /i /c:"error" %windir%\Logs\CBS\CBS.log
よく出るエラーコードと意味(目安)
| エラーコード | よくある意味 | 優先して試す対処 |
|---|---|---|
| 0x80092004 | 証明書/暗号化処理の失敗(署名検証に失敗しやすい) | KB4474419(SHA-2)とKB4490628(SSU)の導入確認 |
| 0x800B0109 / 0x800B0101 | 証明書チェーンの検証に失敗 | SHA-2対応、証明書ストア更新、日付時刻の確認 |
| 0x8024200D | Windows Updateデータが破損 | SoftwareDistributionのリセット |
| 0x80070490 | コンポーネントストア不整合 | System Update Readiness Tool(CheckSUR)/ SFC |
運用メモ:同じ.NET更新が何度も出る理由と、再発を減らすコツ
KB4534976のような.NET更新は、環境によっては「3.5.1向け」「4.x向け」が別々に提示されます。どちらか一方だけ入っていない状態だと、Windows Updateは“未完了”として繰り返し提示します。
再発を減らすコツは次の通りです。
- まず前提更新(SSU / SHA-2)を基準線として入れておく
- サーバーに入っている.NETのバージョンを棚卸しし、該当する更新だけを選ぶ
- Windows Updateで失敗した更新は、Update Catalogから手動適用できるかを先に試す(原因切り分けが早い)
- 再スキャンで消えないときは、キャッシュを疑ってリセットする
まとめ:KB4534976の失敗ループは「前提更新」と「対象取り違え」を潰すと止まる
Windows Server 2008 R2でKB4534976が失敗し続ける問題は、次の流れで解決できることが多いです。
- KB4534976は“単体”ではなく.NETバージョン別の更新に分かれる
- KB4490628(SSU)→ KB4474419(SHA-2)を先に入れる
- Microsoft Update カタログから、OS/アーキテクチャ/.NETに合う更新だけを手動適用する
- 必要ならWindows Updateキャッシュをリセットして再提示を消す
ポイントを押さえれば、毎日再試行される状態から抜け出せます。まずは「前提更新が入っているか」と「自分の.NETに合う実体KBを選べているか」を見直してください。

コメント