【WSUS】Windows Update状況の確認

## 【WSUS】Windows Update状況の確認

### この記事でわかる・できること

- Windows Server2019のADサーバにWSUSをインストールしてドメイン内のPCのUpdate状況を一覧で確認できるようにする

### この記事の対象者

- WSUSを始めたい人

### 動作環境・使用するツールや言語

- Windows Server 2019 Standard
- Active Directory（AD)導入済み

### はじめに

WSUS（Windows Server Update Services）はWindows Updateを集中管理することができる無償の機能です。
MECM(SCCM)というものでもできるようですが有償のようなので、今回はWSUSで構築してみました。
更新プログラムを配布することもできますが、一旦は適用状況を一覧で確認するだけにとどめています。

### インストール
サーバマネージャの「役割と機能の追加」からインストールします。
内容は基本的にデフォルトのままでいいですが、ファイルの格納場所は自分で指定する必要があります。サイズが何十GBもあるので余裕のあるところに指定します。（後からコマンドで変更も可能）

インストールが完了したら設定ウィザードが起動します。
このウィザードは後からコンソール画面のオプションから起動することができます。
「アップストリームサーバーの選択」：Microsoft Updateから同期します。
「プロキシサーバーの指定」：プロキシサーバはなしとします。
ここで「接続の開始」を押下しますが結構時間がかかります。
「言語の選択」：日本語と英語とします。
「製品の選択」：対象が多いと同期に非常に時間がかかったりエラーになったりするので、最小限にしておいて必要であれば後から追加するのがよいでしょう。クライアントのOSにどれがあるか調べなくても後でコンソール画面で確認できます。
「分類の選択」：セキュリティ問題の修正プログラム、更新、修正プログラム集、重要な更新、定義更新プログラムとしました。なおドライバーおよびドライバーセットは対象となるプログラムが非常に多いため選んではいけないようです。（必要ならば個別にインポート）
その他はデフォルトとします。

レポート機能のためにMicrosoft SQL Server 2012 Feature PackからSQLSysClrTypes.msi、および
Mirosoft Report Viewer 2012 RuntimeからReportViewer.msiをMicrosoft公式サイトからダウンロードしてインストールする必要があります。

https://www.microsoft.com/ja-jp/download/details.aspx?id=29065&msockid=112fd1d42de666d82550c3382c516778

https://www.microsoft.com/ja-jp/download/details.aspx?id=35747&msockid=112fd1d42de666d82550c3382c516778

インストール内容はデフォルトでいいです。

### グループポリシーの設定
クライアントの設定をするためにグループポリシーを設定します。
最低限の設定としては、クライアントがWSUSサーバを参照できるようにすればいいです。
ローカルで個別に設定することもできますが、今回はADがあるのでそこでまとめて設定します。
#### クライアントの登録
AD上でサーバマネージャから「グループポリシーの管理」を開きます。
対象のドメインを右クリックし「このドメインにGPOを作成し、このコンテナーにリンクする」を選択します。
先にGPOだけ作成して後からリンクしてもいいです。
デフォルトだと全体に配布されますが、配布範囲を制限したい場合はスコープでセキュリティフィルター処理の「Authenticated Users」を削除し別の対象にします。
作成したものを右クリックで編集するとグループポリシー管理エディター（GPOE）が開きます。
ここで設定したポリシーがドメイン内に配布されます。
WSUS関連のポリシー設定は
コンピュータの構成＞ポリシー＞管理用テンプレート＞Windows コンポーネント＞Windows Update
にあります。


「イントラネットのMicrosoft更新サービスの場所を指定する」を有効にします。
「更新を検出するためのイントラネットの更新サービスを設定する」と
「イントラネット統計サーバーの設定」に
http://【WSUSサーバー】:8530
を指定します。（httpsの場合は8531）
ポートはインストール時に開かれているので開ける必要はありません。
グループポリシーの適用はコマンドプロンプトから
```
gpupdate /force
```
で強制的に適用できます。ただ即時反映というほどではないようです。
最低限これだけ設定すればWSUSサーバに認識されていきます。
認識には結構時間がかかるようで、こちらの環境では全台認識されるのに丸一日以上かかりました。
先に後続の作業を実施していきます。
#### その他のポリシー
「自動更新を構成する」を有効にすれば自動的にWindows Updateをダウンロードするようにできますが、その後インストールして再起動する挙動は完全には抑制できないようなので特にサーバについては注意が必要です。ある程度遅らせたりユーザがログイン中は勝手に再起動しないようにしたりすることはできます。
自動再起動に関する項目は色々あるので確認してみてください。

「インターネット上のWindows Updateに接続しない」を有効にすればWSUSサーバにのみ接続するようになりますが、説明文に「（中略）このポリシーを有効にすると、その機能は無効になり、Windows ストアなど公開されているサービスへの接続が動作しなくなる可能性があります。」とあるので、有効にする場合はご注意ください。WSUSサーバの障害の可能性も考慮する必要があります。
これを有効にしていなくてもクライアント側ではSNMPなどのオプション機能をインストールしようとするとエラーになります。回避するためには
コンピューターの構成＞管理用テンプレート＞システム＞オプションコンポーネントのインストールおよびコンポーネントの修復のための設定を指定する
を有効にし、「Windows Server Update Services(WSUS)の代わりに、Windows Updateから修復コンテンツとオプションの機能を直接ダウンロードする」にチェックを入れる必要があります。

### コンソール操作
サーバマネージャからツール⇒Windows Server Update Servicesでコンソール画面を表示できます。
コンピュータ＞すべてのコンピューターにクライアントが登録されていきいます。最初は状態が「失敗または必要」のものしか表示しないようになっていたので、状態を「任意」にして最新の情報に更新しないと出ないかもしれません。
警告アイコンが出ているものは必要な更新がインストールされていないもののようですが、多少タイムラグがあるようで、直接クライアント側で見てみるとインストールされていることもありました。
登録されたクライアントの一覧にOSが表示されているので、それを見ればどれが必要な製品か分かります。足りていないものがあればオプションの「製品と分類」から追加で指定します。
修正したら同期しないと有効にならず、初期状態では同期はスケジューリング実行になっています。オプションの「同期スケジュール」で確認できます。
今回は一覧で確認するだけですが、更新プログラムを配布する場合は承認が必要になります。一つずつ承認するのは手間なので、オプションの自動承認で承認規則を決めておくのがほぼ必須になります。

### IISマネージャの設定

初期設定だとIISが停止してコンソールがすぐにエラーになってしまいます。
サーバマネージャ⇒ツール⇒インターネットインフォーメーションサービス（IIS）マネージャからIISマネージャを起動し、アプリケーションプールの「WsusPool」を右クリックして詳細設定を開き、下記のMicrosoftの公式サイトで推奨されているパラメータを設定してください。

https://learn.microsoft.com/ja-jp/troubleshoot/mem/configmgr/update-management/windows-server-update-services-best-practices

### メンテナンス
コンソール画面のオプションから「サーバークリーンアップウィザード」を実行することが推奨されています。
PowerShellをタスクスケジューラに登録して自動実行した方がよいでしょう。
コマンドの詳細についてはInvoke-WsusServerCleanupで検索すればすぐに出てきます。