WSUS管理コンソールで更新プログラム取得が遅いときの対処法

目次

はじめに

WSUSで更新プログラムの管理を行っていると、
更新プログラムの取得に時間が掛かることはありませんか?
状況によっては取得がタイムアウトされ、以下のようなエラーが表示されることもあります。

WSUS サーバーに接続中にエラーが発生しました。このエラーは発生する原因は多数あります。サーバとの接続を確認してください。問題が解決しない場合は、ネットワーク管理者に問い合わせてください。

私の環境でもよく発生することがあります。対応策を調査してみました。

原因はおそらくこれ

10万件に及ぶ更新プログラムがあることによって、WSUSサービスの管理をしているIIS(Webサーバですね)からのレスポンスが遅れ、WSUSコンソール側でタイムアウトが発生し、
応答が非常に遅いまたは上記画像のエラーが発生するという状況だと思われます。

(私の環境では、同期対象にドライバを追加したことにより、WSUSが抱えている更新プログラム数が増えてしまいました…)

だったら、更新プログラムをWSUS上から削除する方法はないのか?と考えますが、
公式で公開されている情報はありませんでした。(2018/10/31付)

以下のクリーンアップウィザードを使うことで拒否済の更新プログラムのデータは削除できるようですが、
一度DB上の登録された更新プログラムのレコードは削除されません。
(そのため、更新プログラムの検索に抽出され続けます)
[参考]

ワークアラウンドとして有効と思われる対応策

1.%appdata%\Microsoft\MMC\wsusを削除しWSUSコンソールのキャッシュをクリア

実行することで、WSUSコンソールの設定がデフォルトに戻りますので、
ユーザー個別に設定した内容は失われますのでご注意ください。

[参考]

2.新たに更新ビューを作成し、検索負荷を軽減させる

更新ビューで検索対象となる更新プログラムが多いために、検索結果を返すのが遅れているのであれば、そもそも検索対象を絞り込んだ更新ビューを作成するという方法です。

[更新ビューの作成方法]

  1. WSUSコンソールを起動
  2. 画面左のメニューから「更新プログラム」の項目を右クリックし「新しい更新ビュー」を選択
  3. 表示したい分類をクリック、青文字リンクをクリックし、表示したい分類などをチェック(ココで対象をできるだけ絞り込む!)
  4. 作成したカスタム更新ビューの名前を入力し、OK

(番外)エラーを表示させたくない、ということであれば、タイムアウトを0にする

DBに対してデータを取得するタイムアウトの設定値を0にしてしまえば、エラーは表示されず取得するまで応答を待ちます。
以下の方法はSQL Server Management Studioを使います。
作業後は、WSUSサーバを再起動してください。

USE SUSDB;
GO
EXEC sp_configure ‘remote query timeout’, 0;
GO
RECONFIGURE;
GO

それでも改善しない場合

WSUSサーバーの再構築が必要となりそうです。

[参考]
https://technet.microsoft.com/ja-jp/library/hh852340.aspx

再構築はなかなか手間が掛かるので、サーバリソースが不足しているのか、IISとDB間のプロセスで問題が起きているのかなど、まずはボトルネックの調査を行うことをおすすめします。

役に立ちましたら、ぜひ他の記事や書籍を読んでみてください。

「WSUS」の記事一覧です。