WSUS環境下でのWindowsUpdateエラー,0x80244022の対処法

WSUSサーバを立てているのに、WindowsUpdateでエラーが起こっている場合の対処法についてのメモ

WindowsUpdateエラー

サーバ資産の棚卸をしていて、WindowsUpdateで「重要」と表示されるのに、適用されないUpdateがあることに気づきました。

詳細を確認してみると、適用できてないUpdateは主に3つ:
.netFrameworkの更新
セキュリティのみの品質更新プログラム
IE11の累積的なセキュリティ更新プログラム

別記事で書いたように、PowershellのScriptを使って自動化しているのですが、どうやら上手く動いてないようです。手作業でやっている方は下記を参考にしてみてください。便利なスクリプトが提供されています。

PowerShellによるWindowsUpdateの自動化

Microsoftサーバに対してUpdateしようとして-AcceptAllにすると言語Packとか要らない更新プログラムがインストールされかけたので、-AutoSelectOnlyにしていたのですが、これだと「セキュリティ更新プログラム」までRejectされるようです。
セキュリティ更新がなぜRejectされるかは不明ですが、
調べてみると、更新プログラムは以下の三種があるそうです。
・重要な更新プログラム
・推奨する更新プログラム
・オプションの更新プログラム
-AutoSelectOnlyでは重要な更新プログラムしか受け入れません。Windowsの画面では推奨する更新プログラムまで「重要」と表示されるようです。
わかりにくいよ!

アクセス先を社内のWSUSサーバにして、オプションを-AcceptAllにして動かすと、セキュリティ更新プログラムも対象になりました。
…が、エラーで終了するようです。

Errorを拾ってくれないのがこのScriptの残念なところ。しょうがないので自分でエラーを確認します。
発生したエラーは$Error配列に格納されているので、その最初のもの[0]を取り出してやります。

0x80244022という良くあるエラーが返っています。
基本的にはこのエラーは「サーバが利用できない」という内容です。WSUSのエラーコードを調べるとService Unavailという内容でした。

0x80244022 HTTP_STATUS_SERVICE_UNAVAIL Http status 503 – temporarily overloaded.

WSUS Server Error Codes
このエラー番号をGoogle検索すると、「Proxy環境下で発生する場合、実行環境にProxyを設定する必要がある」というFAQが見つかります。
proxyを通じてWindowsUpdateサーバーに接続している場合のFAQのようです。

プロキシ サーバーを使用する環境にて Windows Update を実行すると通信エラーが発生する
https://support.microsoft.com/ja-jp/help/2894304
https://blogs.technet.microsoft.com/jpwsus/2014/04/09/windows-update-12392/

自分の場合は、Proxyを通してMicrosoftのサーバにアクセスしているわけではないので、非該当です。

WindowsUpdateログの確認

しょうがないので、もう少し情報を探していると、WindowsUpdateのログを見ましょう、という情報がhitしました。

このログは%windir%\Windowsupdate.logに格納されていいます。見方は下記のMicrosoftのサイトを参考にしてください。
参考)Windowsupdate.logファイルの解釈

Windows+Rキーを押して「Windowsupdate.log」を入力してEnterを押すと、メモ帳で開きます。
ざーっとみていくとWarningが発生している個所をみつけました。

…単に過負荷でWSUSサーバが応答を返せない様です。書かれているURIにInternetExplorerでアクセスすると、エラーが返ってきました。
社内検索すると、Update配信直後はサーバが混雑するので間をあけて繰り返し試してみてください、というQ&Aが見つかりました。
セキュリティホールあったらそんなのどかな事じゃすまないと思うんだが(-_-;

結局、-AcceptAllにオプションを変えて自動実行を仕掛けてみることにしました。

一定間隔でUpdateを自動実行する

間をあけて、ということなので、1分間隔で接続を試みるScriptを組んでみました。

$Status変数は、何も更新がなければ空のまま、更新が有れば更新結果の文字列が入ります(上の実行結果のような文字列)。

ログを出すよう改良して別記事にアップしたので参考にしてください。

WindowsUpdateを一定間隔で試行する

Windows10の場合

Windows10/Server2016以降の場合、WndowsUpdateはテキストではなくバイナリのログに保存されるようです。同じ様にWindowsUpdate.logを表示しようとしたら、下記のようなつれないログが表示されました。

言われたとおりにGet-WindowsUpdateLogをPowerShellで実行したところ、デスクトップにテキスト文のログが生成されました。内容はWindows8.1/Server2012以前と変わらないようです。
ただ、2バイトコードは文字化けしてしまうようです。対処法を別記事にまとめてありますのでご参照ください。Powershellのスクリプト付きなのでコピペ&実行で対処できるはず。

Window10でのWindowsUpdate.log文字化け対策

まとめ

  • WSUS環境下でErrorが起こったら、WindowsUpdateログを参照してみる。
  • エラー番号の内容を確認する
  • 設定されているWSUSサーバにきちんと接続できるか調査する
  • 正しく設定されていて接続できないようなら、繰り返しトライするScriptを組む

参考にしてみてください。

WSUS環境下でのWindowsUpdateエラー,0x80244022の対処法” に対して3件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください