WSUSを設定したお話
Windows Updateを管理するためのソフトWSUSの設定について記します。
リモートワークがメジャーになる以前の環境で使うものなので古い知識となります。
構築した環境はWindows Server 2016
---------------------------------------------------------------------------
追記:2024/04/10 リンクが切れていたので修正
追記:2023/11/07
Microsoft UpdateカタログにPowershellを使ったインポートでエラーが
発生した際の対処方法を追記
追記:2023/08/09
Microsoft UpdateカタログにPowershellを使ったインポート方法の追加
追記:2021/07/20
メンテナンス設定にタスクがうまくいかない場合の対処を追記
---------------------------------------------------------------------------
WSUSのインストール
サーバマネージャからインストール。
基本はデフォルトとで進めていくが、「コンテンツ」欄の格納先は注意。
資源を格納する場所の指定であるため、十分容量が確保できるドライブを指定する必要がある。
どのくらいの目安なの?という点は難しい。2021年3月現在、WSUS関連のファイルは100GB以上の大きさになっている。今回の作成では念の為1TBを確保しておいた。
WSUSコンソール設定
WSUSのインストールが終わるとサーバマネージャからWSUSコンソールの設定を実施することとなる。
製品の選択:どのOSやアプリに対応するかの選択
分類の選択:どのレベルの更新をダウンロードしておくかの選択
同期スケジュール:ダウンロードをする時刻になるため、他の通信への干渉が少ない時間を指定する。
自動承認設定
下記の画像のようにひとまず設定しておいた。
上記によって吟味の余地なく自動的に適用されてしまうが、
ADのグループポリシーで不具合に対しては対応する。
グループポリシーの設定1
グループポリシーはそれぞれ以下のように設定する。
・Windows UpdateとWSUSの両方を見に行くデュアルスキャンに
ならないように設定。
詳しくは以下
[WSUS/Windows10]WSUS管理下PCの意図しない更新プログラム適用を阻止する方法[勝手にインストールされる]
・ユーザ使用時には再起動をかけないように設定
・更新通知が出るように設定(念のため明示的に無効とする)
・再起動が伴わないものは直ちにインストールするように設定
・自動更新設定
配信されたWindows Updateの不具合を想定し、第3,4週に適用するよう
にしている。
・WSUSサーバの指定
グループポリシーの設定2
グループポリシーの設定1については全体的な設定。自分の場合は大型アップデートを分散で適用するためにWSUS内でグループを作成している。
例ではOU「Group1」を作成し、WSUSのグループ「Group1」を指定するよう設定。
メンテナンスの設定
WSUSはそのまま放っておくと反応が遅くなり、容量は増えていく。そのためメンテナンスは必須となる。放っておくと、重すぎてWSUSのコンソールが表示しなくて何もできない、なんてことになってしまう。
具体的な内容は以下を参照。
上記で重要なのは以下
・WSUSで使用しているDBのメンテナンススクリプトを実行する
・Powershellでクリーンアップウィザードを実行する
もし構築済みの環境の場合、初回は時間がかかりすぎて、タイムアウトして終わってしまうこともあるのでタスクスケジューラで実行させる前に手動で何度か実行しておくことをお勧めする。
また、クリーンアップウィザードはよくタイムアウトして失敗するのでその場合は以下を参照して対応。
うまくいかないことが多いので、タスクマネージャで分割している
特にcompreUpdatesはタイムアウトするので、3回かける仕組みにしている。コマンド的には以下
powershell -Command "Invoke-WsusServerCleanup -CompressUpdates" > C:\wsuslog\wsusClean.txt
powershell -Command "Invoke-WsusServerCleanup -CompressUpdates" >> C:\wsuslog\wsusClean.txt
powershell -Command "Invoke-WsusServerCleanup -CompressUpdates" >> C:\wsuslog\wsusClean.txt
-Command "Invoke-WsusServerCleanup -CleanupObsoleteUpdates" >> C:\wsuslog\wsusClean.txt
-Command "Invoke-WsusServerCleanup -CleanupObsoleteComputers" >> C:\wsuslog\wsusClean.txt
-Command "Invoke-WsusServerCleanup -CleanupUnneededContentFiles" >> C:\wsuslog\wsusClean.txt
-Command "Invoke-WsusServerCleanup -DeclineExpiredUpdates" >> C:\wsuslog\wsusClean.txt
-Command "Invoke-WsusServerCleanup -DeclineSupersededUpdates" >> C:\wsuslog\wsusClean.txt
特定KBの削除設定
コンソー
ルの右側の検索から、特定プログラムを検索する
該当のプログラムを右クリックして「承認」をクリック
対象グループを右クリックし、「削除の承認」をクリック
これでインストールしてしまったKBをアンインストールさせることができる。
その他承認設定は以下
ネットワークの帯域制限設定
設定も行い、自動的にメンテナンスの環境も揃えた。1拠点のみならこれでいいかもしれないが、複数拠点がある環境ではネットワーク帯域がWSUSの通信で潰れた、なんてことがあったので、帯域制限の設定は必要だと考える。
Microsoft Updateカタログからのインポート1
カテゴリで同期設定をしていない場合、Windowsカタログから個別にインポートする必要がある。
Windows2016の場合は以下に注意。
2021/03現在、インポート都度実施が必要。
・WSUSコンソールから「更新プログラム」を右クリックし、「更新のインポート」を選択
・WindowsカタログサイトでインポートしたいKBを検索
※IEで開くことになる。(chormeやビジネス向けedgeではだめだった)
・「追加」をクリックし、「バスケットの表示」をクリックする。
・「直接インポート」がチェックが入った状態で「インポート」をクリック
Microsoft Updateカタログからのインポート2
上記のブラウザによるインポート以外にPowershellからインポートする方法が公開されたので追記。
しかし、結局はUpdateIDというのをブラウザで見る必要があるので、2016の場合はIEを使わざるを得ない。別のPCから取得すれば別だが。
下準備1
上記に記載の「Import updates into WSUS using PowerShell」のURL先のプログラムをコピーして、私の場合は「ImportUpdateToWSUS.ps1」というファイルで格納した。
Microsoft Updateカタログサイトで対象を確認
下記にアクセスし、インポートする対象を調べる。
インポートしたいプログラムの詳細を開き、「Copy」をクリックする。
Powershellを管理者権限で開き、ImportUpdateToWSUS.ps1があるディレクトリに移動して以下を実行する
.\ImportUpdateToWSUS.ps1 -UpdateId <コピーしたUpdateID>
上記実行時に「ImportUpdateFromCatalogSite 呼び出し中に例外が・・・」というエラーが発生した場合には下記の記事のレジストリ追加で解消しました。
おわり
もはや新しく構築されることはないのかもしれないけれど、万が一使う人のために残しました。
トラブルの対応した際の記録は以下に記した。
この記事が気に入ったらサポートをしてみませんか?