WhitePotageのブログ

ミント菓子はかっらーいのがイイんだよねと思っている人

サーバーが更新できない… Windows Update エラー 0x800F0922 を消すまでの話

Windows Server 2012 R2 のうち1台が、何をどうやってもアップデートできなくなった…。
失敗コードは 0x800F0922。 何を試しても 0x800F0922。
報告され続けるエラー。 再起動にクレームする利用部門。
マイクロソフト様のご指導を戴いてもなお更新できないサーバーに悩むこと3か月、最終的に極々限られた状況にあてはまることがわかり、やっと解決したのでブログを置いておきます。

適応事例

このブログは、下記の条件にあてはまる場合に奏功します。

なんか、条件の1行目を見た途端に「あぁ~…」となりそうですが、解決したからまぁいいです。
Azure VMじゃない御方がこのエントリを見ていたら、2行目以降を頑張ってお試しください。

原因と対応方法

Azureの Windows VM では特定のエージェントサービスが稼働しており、そのサービスに関する某レジストリが「何らかの理由で」破損すると、今回のサーバーのように Windows Update できなくなります。

これは純粋にマイクロソフト環境の問題なので、こんなブログでどーこー言わなくても、ちょうど先日新しいドキュメントが公開されていました。(自分のような "踏んじゃったユーザー" が続出したからだろうね!)
こちらをご覧くださいませ↓
 https://blogs.technet.microsoft.com/jpaztech/2017/05/16/troubleshooting-patch-installation-failure/

といって終わるのもめんどーくさいので、リンク先を読むのが面倒な人向けに(まさに自分のことなんだがw)手順を簡単に抜粋します。

  1. Azure ゲストエージェントのインストーラーをダウンロードしておく
    http://go.microsoft.com/fwlink/?LinkID=394789&clcid=0x409
  2. c:\Windows\Logs\CBS 以下のログを検索し(行数が多いのでgrep推奨)、下記の記載を見つける
    EventAITrace:Provider Microsoft-WindowsAzure-Diagnostics (中略) is missing channels under the channelreferances registry key.

    中略の部分には、レジストリキー値が入ります。何種類かある場合はすべて控えておきます。

  3. レジストリエディタで下記パスを開き、
    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers
    その下にあるキー群から先ほど控えたキー値を見つけ、削除する
  4. 手順1で取得した Azure ゲストエージェントを再インストールする(再起動不要)
  5. Windows Update してみる

すると……
ナオッター!

自分は最後の手順のとき、Windows Update ではなく 更新プログラムのスタンドアロンインストールを試しましたが、まぁ公式ドキュメントに情報もあることだし、いきなりアップデートを検索しても大丈夫なんだろうなと思います。

 


スポンサー