Windowsの自動更新がらみでいろいろノウハウがたまってきたのでメモ。
Windows UpdateやWSUSを使った自動更新はWindowsUpdateAgentで行う。
自動更新の問題=WindowsUpdateAgent(WUA)の問題と考えてよさげ。
WUAの設定方法
レジストリーエントリ
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
以下の値で設定。レジストリーの修正を手で行うのは面倒なので「グループポリシーエディター」を使う。"gpedit.msc"を実行するか、グループ・ポリシー・エディタの使用法を参考にしてMMCにスナップインを追加する。
「ローカルコンピューターポリシー」→「管理用テンプレート」→「Windowsコン
ポーネント」→「WindowsUpdate」
以下で設定可能。
各種データの保存場所
ログ
- %Windir%\WindowsUpdate.log
- %Windir%\SoftwareDistribution\ReportingEvents.log
稼動状況の確認
WSUSを設定したのになぜかパッチがあたらない、といった場合は、とりあえずこれらの情報を確認してみる
WUAの稼動ログ
%Windir%\WindowsUpdate.log
各種データの保存場所
%Windir%\\SoftwareDistribution
パッチ適用前のファイルは
%Windir%\\SoftwareDistribution\Download
以下のフォルダーに保存されている
WUAでの自動パッチ適用が失敗してしまう場合
サーバーには接続しているのにパッチがダウンロードできない
ダウンロードしたパッチが壊れているらしく、うまく適用できない。こういった場合、クライアントの情報を消してアップデートサーバーに再接続することで何とかなることが多い。
各種サービスの停止
WUAのバージョンによってサービス名がまちまちだが
- AutomaticUpdate、または自動更新サービス
- Background Intelligent Transfer Service、またはBITサービス
これらに近いサービスを探して停止する。最新バージョンのWUAではBackground Intelligent Transfer Serviceは手動実行に
なっていて、通常はサービス稼動していない。
- "%Windir%\\SoftwareDistribution"ディレクトリーを削除
- 心配ならリネームでもいい
- アップデートサーバーに接続
- 以下のコマンドを実行する
> wuauclt.exe /detectnow
Proxy経由での自動更新
いつのころからか、Proxy経由でのWindowsUpdateができなくなってしまった。WUAのバージョンがあがって、ネット接続に使うコンポーネントがWinHTTPに変更になったせいらしい。古いバージョンではIEのProxy設定をそのまま使ってネット接続していたが、WinHTTPでは独自にProxyを設定しないといけない。
WinHTTPのProxy設定を確認
以下のコマンドを実行
> proxycfg
デフォルトでは以下のようにProxyが設定されていない
Microsoft (R) WinHTTP Default Proxy Configuration Tool Copyright (C) Microsoft Corporation. All rights reserved. 現在の WinHTTP プロキシ設定: HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\ WinHttpSettings : 直接アクセス (プロキシ サーバーなし)