WSUSでどうしても同期ができないパッチを回復させる方法

 先日、WSUSが公開されたのに伴い、会社のパッチ配布サーバをWSUSへ入れ替えました。今までのSUSを動作させていたサーバはWSUSの要求スペックに少し届かないためです。SUSを動作させていたサーバは上位サーバ(microsoft)との同期のみ停止させて、放置していましたが、やはり乗り換えるとトラブルが発生したので、回復手段をメモっておきます。

 WSUSおおむねよいのですが、一度同期に失敗するとどうしてもリカバリができません。一応手動での再ダウンロードもありますが、それも必ず失敗して、イベントログにはこんなログが出ます。
イベント ソース:Windows Server Update Services
イベント カテゴリ:同期
イベント ID:364
説明:コンテンツ ファイル ダウンロードに失敗しました。
理由: 必要な HTTP プロトコルがサーバーでサポートされていません。
バックグラウンド インテリジェント転送サービス (BITS) では、サーバーが
Range プロトコル ヘッダをサポートしている必要があります。
ソース ファイル:
/msdownload/update/v5/psf/windowsxp-kb890859-x86-jpn_b9b422a94c55e91bfe6d52cc354537bf32814e5b.psf
ターゲット ファイル: d:\WSUS\WsusContent\5B\B9B422A94C55E91BFE6D52CC354537BF32814E5B.psf.


 昨日公開された月例パッチでは、他のファイルは成功していますが、Windows Server 2003用のIE累積パッチだけがどうしても失敗します。そして、一度失敗すると、「ダウンロードの再試行」を何度行ってもだめです。RANGEプロトコルヘッダをサポートしていないサーバなんて今時…というか、microsoft.comにないと思っていたのに。

 SQL Serverをバックエンドに抱えて、簡単にファイルをいじるわけにもいきませんが、このような状態になった場合、手動でファイルをコピーすれば回復させることができます。手順をメモしてみます。

  • wgetなどのツールでイベントビューアのログに記録されているファイルをダウンロード。通常、先頭はhttp://www.download.windowsupdate.comになります。SQL ServerのtbFileというテーブルのMUURLにファイルに対するURLが書かれています。

  • ダウンロードしたファイル(上記であればwindowsxp-kb890859-x86-jpn_b9b422a94c55e91bfe6d52cc354537bf32814e5b.psf)をターゲットファイル(B9B422A94C55E91BFE6D52CC354537BF32814E5B.psf)に変更します。

  • WSUSのコンテンツディレクトリ(d:\WSUS\WsusContent\5B)にコピーします。今回はCFですが、パッチの種類によって変わります。

  • エラーになっているパッチを選択して、「更新のタスク」にある、失敗の更新をやりなおすと正常な状態になります。


 WSUSで不満なのは、間違って選んでしまったクラス(たとえばWindows 2000がないのに間違ってWindows 2000を同期してしまったとか)のコンテンツを消せないとか、こういうエラーリカバリが結構原始的なところでしょうか。

 今回も間違ってデータベースさわってしまった(Terminal Serviceでさわっていてアクティブな画面間違えた…)ので、一つのパッチがわけわかめな説明になりました(涙)。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 4

驚いた 驚いた
ガッツ(がんばれ!)
かわいい

この記事へのコメント

この記事へのトラックバック