少し間が開いてしまいましたが、Part.1, Part.2 の続きです。
【事象C: 承認したパッチのダウンロード/インストールが始まらない】
事象B の「いつまで経っても Status Report がサーバーに上がってこない」 を無事に乗り越えると、その端末に対するパッチの承認&適用プロセスに入ることができます。
ここで発生し得る問題としては「承認したはずのパッチが何時まで経ってもインストールされない(ダウンロードされない)」というものです。
この問題に関しては まずはクライアント側で、WSUS サーバーに対する “ポーリング間隔” がどのように設定されているのかを確認しましょう。 グループ ポリシーであれば [Windows コンポーネント] - [Windows Update] - [自動更新の検出頻度] という項目で、未構成の場合は 22 時間間隔(前後ブレあり)になります。
WSUS はあくまでもクライアント側からの polling によってパッチ適用の必要性を判断しますので、パッチの承認を行っても、その後でクライアントからの検出が行われなければ次のステップに進みません。もしデフォルトのまま22時間という設定であれば、承認後に最長22時間検出が行われないというのは正常動作の範囲内になります。
トラブル対応時などでそのような悠長なことを言っていられない場合は、クライアント側で wuauclt /detectnow と入力し、直ちに検出を開始させましょう。
事象B の問題にあった「ステータスレポート」が問題なく送信できている状態であれば、数分以内に“自動更新の検出”が行われ、承認したパッチのダウンロードが試行されます。
# 検出の具体的なプロセスを確認したい場合は、WindowsUpdate.log を見るとよいでしょう。
---
検出までのプロセスが適切に行われると、必要なパッチのダウンロードが始まります。
# クライアント側の設定によっては、自動ダウンロードする代わりに、通知領域にダウンロードの準備ができたことを示すメッセージが表示されます。
パッチのダウンロードですが、一時保管領域として %Windir%\SoftwareDistribution\Download が使用されます。詳細なところは WindowsUpdate.log 等で確認する必要がありますが、ここに順次新しいファイルが作られていることを確認できれば、ダウンロード・プロセスは問題なく開始されていると考えてよいでしょう。
「検出はされているのに、ダウンロードが開始されない」という場合はいろいろな原因が考えられますが、大抵は Part.1 や Part.2 で紹介したトラブルシューティングのいずれかで解決できるはずです。
落ち着いてひとつひとつ確認していきましょう。
特に原因になっているケースが多いのが、自動更新サービスやデータベースファイルなどの必要機能が何らかの理由で停止/破損してしまっている場合です。
Part.1 や Part.2 でも類似のケースをご紹介しましたが、とりあえず一連の基本確認作業をバッチ化するとこんな感じです。
net stop wuauserv
net stop bits
regsvr32 /u wuaueng.dll /s
rmdir /S /Q %windir%\softwaredistribution
del /Q %windir%\windosupdate.log
regsvr32 wuaueng.dll /s
net start wuauserv
net start bits
wuauclt.exe /resetauthorization /detectnow
ここまでのすべてを実施してもダウンロードが開始されないいとなると、、、
少々一般的ではない障害である可能性がありますので、ログファイルをじっくり見る必要がありそうです。
【事象D: ダウンロードが始ったが完了しない】
さて次の関門は、ダウンロードは始まったぽい(=「SoftwareDistribution\Download フォルダに何かしらのファイルはある)のに、通知領域にはずっとダウンロード中のメッセージが表示され続け、ダウンロードが完了しないというケースです。
この場合は、Automatic Updates サービスのアクセス権設定(DACL)に問題がある可能性が高いです。Part.1 のときも紹介しましたが、グループポリシーで中途半端に Automatic Updates サービスの動作を設定してしまっていると、予期せず必要な権限を削除してしまっていたという事例が多くみられます。
グループポリシーで設定している場合は、できる限り Automatic Updates サービスの起動状態だけではなく、明示的にアクセス権の設定も合わせてしてあげたほうが無難でしょう。通常は、SYSTEM & Administrators に Full Control, Authenticated Users に Modify 以上の権限があれば WSUS 的には十分です。
なお、グループポリシー以外の方法でサービスに対するアクセス権を設定したい場合ですが、Windows 標準コマンドである SC sdset を利用するのが一般的です。
セキュリティ記述子定義言語 (SDDL) を使用するためパラメータの指定に少々癖がありますが、とりあえず Automatic Updates サービスの権限を正しいものに変更したい場合はこんな感じです。
# 以下を1行で入力します。詳細は KB555336 に記載されています。
sc sdset wuauserv "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
自分で書いていてイヤになるほどの散文乱文ですが、ここまでの3回に渡った内容を熟知していただければ、WSUSサーバー/クライアント間で発生する問題の大半は解決できるはずです。
次回は、ここまでで紹介しきれなかった個別の事象/既知の問題/参考情報なんかを書いてみたいと思います。