Windows Serverを運用していると、Windows Updateが正常に適用されたはずなのに「失敗」と表示され続ける状況に悩まされることがあります。実際にはアップデートが正しくインストールされているケースも多く、正しい手順を押さえることでトラブルを最小限に抑えることが可能です。
Windows Updateで「失敗」と表示される主な原因
Windows Updateが「失敗」と出る理由には、さまざまな要因が考えられます。更新プログラムが重複していたり、履歴情報が破損していたりする場合もあるため、正確な原因を突き止めるには複数の観点から確認が必要です。以下では、代表的な要因を詳しく見ていきましょう。
更新履歴情報の不整合
Windows Updateの履歴情報が破損・不整合を起こしている場合、実際にはインストールが成功していても「失敗」と表示され続けることがあります。
- 更新プログラムが重複している、あるいはKB番号が異なる形で認識されている
- 一時ファイルやキャッシュが原因でインストール履歴のみが誤表記となっている
- .NET Frameworkなど、バージョンや適用対象によって複数のKB番号が絡み合っている
履歴情報の不整合は、Windows Updateのキャッシュクリアや再取得を行うことで改善するケースが見受けられます。一方で、サーバー運用の実務ではなるべく手間とリスクを抑えつつ対応したいところでもあります。
システムファイルの部分的な破損
Windows Updateに失敗と表示される一因として、OSのシステムファイルの破損や不整合が考えられます。更新プログラムを適用する際、OSが提供する各種コンポーネントとの連携が必須となるため、一部のファイルに問題があるとインストールが中断されることがあるのです。
このような場合は、以下のような手順でシステムファイルの整合性をチェックしてみるとよいでしょう。
sfc /scannow
システムファイルチェッカーが異常を検出し、それを修復した後で再度Windows Updateを実行すると、問題が解消する場合があります。
実際にはインストール済みであるケース
Windows Server 2019のコントロールパネルや「インストールされた更新プログラム」を確認すると、既にKB番号が入っていて正常に動作しているにもかかわらず、Windows Updateの履歴だけが「失敗」と表示され続ける状況がしばしば報告されています。
これは履歴情報の表示だけが更新されない典型例であり、OSとしては既にアップデートが適用されている状態です。DISMコマンドを使って実際のインストール状態を確認することで、誤った「失敗」表示に惑わされずに済むことがあります。
DISMコマンドでアップデート状況を確認する方法
Windows Serverの運用で欠かせないツールの一つがDISM(Deployment Image Servicing and Management)コマンドです。DISMコマンドを使用すれば、カタログ上の更新プログラムが実際にOSに適用されているかどうかを詳細に確認できます。
DISMコマンドの基本構文
DISMコマンドには数多くのオプションがありますが、まずは以下のコマンドを用いてインストール済みの更新パッケージを一覧表示できます。
DISM /online /get-packages
この結果に表示される「Package Identity」の項目に注目し、目的のKB番号が含まれているかを確認してください。さらに、「State : Installed」と表示されていれば、更新プログラムはOS内部で正式にインストールされていることを意味します。
KB番号が異なる場合の対処
同じ更新プログラムでも、OSのエディションや.NET FrameworkのバージョンによってKB番号が微妙に異なるケースがあります。たとえば、Windows Server 2019向けのアップデートとWindows 10向けのアップデートが別々のKB番号になっているような場合です。
そのため、KB番号による単純一致だけで判断できないときは、日付やパッケージ名などの付随情報も併せてチェックすると確実です。さらに、検索エンジンなどで該当KBがどのOSバージョンにどのように展開されているかを調べると、より正確な情報が得られます。
CABファイルを使った手動インストール手順
Windows Updateが正常に動作しない、あるいは特定の更新プログラムだけがエラーを起こすときは、CABファイルを用いた手動インストールが有効な場合があります。以下では、手動インストールの大まかな流れを説明します。
1. アップデートのダウンロード
Microsoft Updateカタログ(公式サイト)にアクセスし、該当するKB番号の更新プログラムを検索します。そこで配布されている.msu
ファイルをダウンロードしておきましょう。
2. MSUファイルからCABファイルを展開
.msu
ファイルは自己解凍形式の一種ですが、必要に応じて中身のCABファイルを取り出すことで、DISMコマンドによる直接的なインストールが可能になります。以下の例のようにexpand
コマンドを使用してCABファイルを抽出します。
expand -F:* C:\temp\update.msu C:\temp\cab
上記のコマンドにより、C:\temp\cab
フォルダ内に複数のファイルが展開されます。その中に.cab
ファイルが含まれていることを確認してください。
3. DISMコマンドによるCABファイルの適用
展開したCABファイルをDISMコマンドでインストールします。例として、以下のようなコマンドを使います。
DISM /online /add-package /packagepath:C:\temp\cab\update.cab
インストールが開始されると、進捗が表示されます。途中でエラーが出なければ正常に適用できる可能性が高いでしょう。インストールが完了したら、システムの再起動を促されることがありますので指示に従って再起動しましょう。
再起動後の確認
再起動を行ったら、改めて以下のコマンドなどでインストール状態をチェックします。
DISM /online /get-packages
目的のKB番号が表示され、State : Installed
になっていれば、手動インストールは成功とみなして構いません。
インストール状態を多角的に把握する
Windows Updateが「失敗」と表示されたままでも、すでに修正パッチが適用済みの場合があります。以下のポイントを確認することで、実際にアップデートが完了しているかどうかを総合的に判断できます。
1. コントロールパネルの「インストールされた更新プログラム」
コントロールパネルの「プログラムと機能」→「インストールされた更新プログラム」を開き、該当のKB番号が存在するかを調べてください。ここにKBが含まれていれば、アップデートはOS上で認識されている状態です。
2. DISM /get-packages の再確認
先述のとおり、DISMコマンドで確認すると最も確実です。履歴の表示やコントロールパネルの情報が何らかの理由で誤っている可能性がある場合、DISMの結果は比較的正確な状態を示してくれます。
3. イベントビューアー(イベントログ)を確認する
アップデートに関連するエラーや警告が記録されているかどうかをチェックすることで、トラブルシューティングを進めやすくなります。インストールや再起動のタイミングでどのようなログが残っているかを把握しておくと、問題の発生源を追跡しやすくなります。
Windows Updateの表示が更新されない場合の対処
アップデートが実際に適用されているにもかかわらず、表示だけが「失敗」となってしまうケースでは、以下のような対処法を試してみるのもひとつの方法です。ただし、本番サーバーで実施する場合は十分に注意・バックアップを取るなど慎重に行ってください。
SoftwareDistributionフォルダのリネームまたは削除
Windows Updateのキャッシュフォルダである「SoftwareDistribution」に一時的なファイルが蓄積されていると、更新履歴の不整合を起こすことがあります。以下の手順を踏むことでWindows Updateのキャッシュを初期化できます。
- Windows Updateサービスを停止する
net stop wuauserv
net stop bits
- SoftwareDistributionフォルダのリネームまたは削除
rename C:\Windows\SoftwareDistribution SoftwareDistribution.old
- Windows Updateサービスを再開する
net start wuauserv
net start bits
これにより、次回のWindows Update実行時に再度キャッシュが作成され、履歴がリセットされることがあります。
イベントログやログファイルのクリア
イベントログが膨大になっている場合やログファイルに古い情報が残っている場合、それらが更新履歴表示と競合して誤表示を引き起こすことがあります。ただし、イベントログのクリアは問題解析が必要なときに情報が失われるリスクがあるため、十分に考慮のうえ行いましょう。
実運用での注意点とベストプラクティス
アップデート関連のトラブルシューティングでは、システムの安定性を優先する必要があります。サーバー運用では特に、唐突な再起動やフォルダ削除が業務に影響を与えるリスクが高いため、事前のテストとバックアップが重要です。
1. 本番環境の前にテスト環境を構築する
可能であれば、同様の構成を持つテスト環境やステージング環境を用意し、手動インストールやキャッシュ削除などの操作を試したうえで本番環境に適用すると安全です。テスト環境で成功した実績を踏まえて手順書を固めることで、本番環境のリスクを最小限に抑えられます。
2. 更新プログラムの依存関係を調べておく
Windows Updateには依存関係があります。先に適用が必要なKBがあったり、特定のサービスパックやロールアップを導入していないとインストールが失敗するケースがあります。そのため、必ずマイクロソフト公式ドキュメントやKBの概要ページを確認し、順序を誤らないようにしましょう。
3. 大型更新(累積アップデート)に注意
Windows Server 2019では月例の累積アップデートを適用することで、過去の更新プログラムがまとめて置き換えられる仕組みになっています。累積アップデートを適用した場合、過去の更新プログラムが適用不要になり、履歴上は「以前の更新プログラムが失敗」という形で残るケースもあります。結果として混乱を招くこともあるため、まずは累積アップデートが入っていれば最新状態と考えて問題ないかを確認するとよいでしょう。
Windows Updateが「失敗」と表示される場合の具体的な対処事例
ここでは、実際にWindows Updateが「失敗」と表示された際の具体的な事例と対処方法をまとめます。いずれも状況によって異なるため、あくまでもヒントとしてお役立てください。
事例1: .NET Frameworkの累積更新が失敗と表示される
- コントロールパネルのインストールされた更新プログラムにはKB番号が表示されている
- Windows Update履歴には「インストール失敗」と表示される
対処策として、まずはDISMコマンドで該当KBのStateを確認します。インストールされている場合は、実質的に問題が解決していると考えられます。もしもエラーが続くようであれば、CABファイルをダウンロードして再インストールを試みるか、一度.NET Frameworkをアンインストール・再インストールする方法も視野に入れます。
事例2: 月例の累積アップデートが成功メッセージを出したのに失敗扱い
- DISMコマンドで「State : Installed」と表示される
- Windows Updateの履歴だけ「失敗」で再試行され続ける
この場合も、システムが最新状態であれば実質問題ありません。ただし、再起動が何度も求められるなど運用上支障があるときは、一度SoftwareDistributionフォルダのリネームを試すか、Windows Update関連サービスを再起動して、改めて更新を確認する手段を検討します。
事例3: DISMでエラーコードが表示されてCABインストールが完了しない
- エラーコード0x800f081fなど、ソースが見つからない旨のメッセージが出る
- サーバーがオフライン環境にあり、必要なコンポーネントへアクセスできていない可能性
このケースでは、オフラインの更新ソースを用意し、SCCMやWSUSなどを経由してインストールすることを検討します。または、ISOメディアからソースを指定してDISMを実行する方法もあります。
まとめ
Windows Updateが「失敗」と表示される原因は、単に表示の不整合であったり、部分的な更新プログラムの適用ミスであったり、多岐にわたります。最も確実な確認方法はDISMコマンドを使ったパッケージ状態のチェックであり、ここで「Installed」と出ていれば原則としてアップデート自体は適用されています。
手動インストールを行う場合はCABファイルを取り出してDISMで適用し、再起動後にインストール状態を再確認しましょう。もし表示が改善されなくてもOSが最新状態であれば、実務上は問題なく運用できる可能性が高いです。どうしても気になる場合は、Windows Updateのキャッシュ削除やイベントログの整理を検討し、履歴をリセットするなどの対処方法を試してみてください。
サーバー運用では、更新プログラムの管理が非常に重要になります。エラーの表記に慌てず、DISMやコントロールパネルで実際のインストール状況を見極めながら、慎重に対処を進めることが安定運用への近道です。
コメント