WSUS 初回同期で未承認更新が大量になる原因と整理方法(Windows Server 2012 R2 / Windows 10 1809)

WSUS(Windows Server 2012 R2)を初めて同期すると、Windows 10 の旧バージョン向け更新まで混在して「未承認更新が数百件」になり、承認作業が止まりがちです。本記事では、社内が Windows 10 1809 のみの場合に、不要更新を安全に整理する考え方と、置き換え済み更新の掃除、運用を楽にするフィルター/スクリプト例をまとめます。

目次

結論:運用対象が Windows 10 1809 のみなら、不要更新は「拒否」で整理して問題ない

WSUS の初回同期で未承認更新が大量に出るのは珍しくありません。製品に Windows 10 を選ぶと、WSUS は Windows 10 の複数リリース(例:1511〜1809 など)向けの「品質更新プログラム(累積更新)」「コンポーネント」「Definition 更新」などを一緒に取得するため、未承認が数百件という状態になりがちです。

社内が Windows 10 バージョン 1809 のみで、ほかのバージョンへ展開しない運用であれば、次の方針で整理するのが現実的です。

  • 旧バージョン向け・不要な更新は Decline(拒否)して一覧を絞る
  • 置き換え済み(Superseded)更新は定期的に拒否し、クリーンアップで“掃除”する
  • 「見やすさ」は 更新ビュー(Update View)とフィルター運用で作る

実務では、旧バージョン向け更新を一括拒否し、さらに置き換え済み更新を拒否してクリーンアップを実行することで、未承認更新が 779 件 → 20 件のように大幅に減らせるケースもあります(環境や選択した分類により数は変わります)。

「タイトルに 1809 と書かれていない更新」は全部拒否してよい?

ここが一番つまずきやすいポイントです。結論から言うと、タイトルだけで機械的に判断するのは危険です。

理由は単純で、1809 端末でも必要な更新の中には、タイトルに「1809」と明示されないものが混ざるからです。代表例は次のとおりです。

種類タイトルに 1809 が出にくい理由1809 運用での扱い
Definition Updates(例:Microsoft Defender 定義ファイル)OS バージョン固定ではなく、エンジン/定義データとして配布されるため原則残す(セキュリティ上重要)
.NET Framework 関連更新OS バージョンではなく、搭載される .NET のバージョン/製品名で表記されることが多い利用状況により 必要(OS だけ見て拒否しない)
Servicing Stack Update(SSU)表記が「Windows 10」止まり、KB 番号中心のことがあるLCU の前提になることがあるため 慎重に扱う
Windows Defender/セキュリティプラットフォーム更新Windows 10 共通コンポーネントとして配布されることがある原則残す

一方で、タイトルに「version 1511」「version 1607」「version 1703」など、明確に別リリースを示す文言が入っている更新は、1809 端末には通常不要です。そうした“明らかに対象外”を優先して拒否していくと、安全性と作業効率のバランスが取りやすくなります。

WSUS に旧バージョン向け更新が混ざる仕組み

WSUS の製品選択で「Windows 10」を有効にすると、WSUS は Windows 10 の各リリースに対して公開されている更新をまとめて取得します。端末側は自分のビルドに適用可能な更新だけを評価してインストールしますが、WSUS コンソール上の“一覧”は全部見えるため、初回同期後はどうしてもごちゃつきます。

さらに、初回同期直後は次の要素が重なり、件数が増えやすいです。

  • 同じ KB が複数アーキテクチャ(x64 / x86 / ARM64)で並ぶ
  • 同じ分類(Security / Critical)でも対象製品が多いと積み上がる
  • 置き換え(Superseded)の関係で古い更新も残り続ける
  • Definition 更新は頻繁に追加される

整理の基本:Decline(拒否)は「運用対象から外す」操作

WSUS の 拒否(Decline)は、ざっくり言うと「この WSUS からは配布しない」と意思表示する操作です。端末に既に入っている更新を勝手にアンインストールするものではありませんし、Windows Update 本体(インターネット側)からも消えるわけではありません。

ただし、拒否は“二度と戻せない”操作ではないにせよ、GUI だけだと元に戻すのが面倒な場合があります。大量に一括拒否する前に、次の安全策を入れてください。

  • WSUS のコンピューターグループに テスト(パイロット)を作り、まずテストだけ承認・適用して挙動を確認する
  • 「拒否する条件」を 文字列(例:1511 / 1607 / 1703 / 1709 / 1803)などで明確化し、ログとして残す
  • 月次運用中(パッチ適用直前〜直後)は、大量拒否/クリーンアップを避ける

最初にやるべき設定見直し:製品・分類・言語を絞って“増え方”を止める

すでに同期してしまった更新は拒否で整理できますが、次に同じ状況を繰り返さないために、WSUS 側の選択を最小限にしておくのが重要です。特に初期構築直後は、以下の3点が効きます。

製品(Products)の選択例

社内が Windows 10 1809 のみで、ほかに配布するものがない前提の例です。実際には Office や .NET、Visual Studio なども WSUS で配るなら追加します。

項目推奨理由
Windows 10必要OS 更新の母体
Windows Defender(または Microsoft Defender 関連)必要(Defender を使うなら)Definition 更新を受け取るため
Drivers原則不要件数と運用負荷が急増しやすい(別管理の方が安定)
Language Packs / Feature on Demand必要時のみ言語や機能追加を WSUS で管理する場合だけに限定

分類(Classifications)の選択例

質問の環境では Critical / Definition / Security を選んでいますが、運用設計としては次の考え方が分かりやすいです。

分類1809 運用での位置づけポイント
Security Updates基本的に有効月次の中心。自動承認するなら最優先
Critical Updates基本的に有効緊急度が高いものが入りやすい
Definition UpdatesDefender 利用時は有効件数は多いが“捨てると危険”な代表格
Updates / Update Rollups方針で決める機能改善系が混ざる。必要最低限にしたいなら抑える
Upgrades1809 固定なら原則無効機能更新(Feature Update)を WSUS で配る場合だけ有効

言語(Languages)と同期対象の見直し

  • 使わない言語を同期すると、その分だけ更新バイナリが増えます。日本語環境なら 日本語 + 英語程度に絞ると管理しやすくなります。
  • 「Express インストール ファイル」を有効にするとネットワーク負荷が下がる一方、WSUS のコンテンツ容量が増えることがあります。ディスクに余裕がないなら慎重に。

旧バージョン向け更新を安全に減らす手順(GUI 編)

ここからは、コンソール操作で「未承認更新が大量」を現実的な件数まで落とす流れを、なるべく迷わない形でまとめます。

作業前の準備:テスト用コンピューターグループを作る

本番クライアント全台へいきなり適用せず、まずテストで確認します。

  1. WSUS コンソールで コンピューターを開き、グループ(例:Pilot)を作成
  2. テスト端末を Pilot に割り当て(手動でも GPO でも可)
  3. 最初は Pilot のみに承認し、問題がないことを確認してから全社へ広げる

まずは「明確に対象外」の更新を拒否する

“タイトルに OS バージョンが明示されている更新”は、最初の整理対象として扱いやすいです。例えば次のようなキーワードです。

  • version 1511 / 1607 / 1703 / 1709 / 1803(社内が 1809 のみなら対象外になりやすい)
  • LTSB / LTSC(社内エディションと違う場合)
  • ARM64(社内が x64 のみの場合)
  • Itanium / ia64 など(そもそも該当しないもの)

WSUS の更新一覧で検索・絞り込みし、該当する更新をまとめて拒否します。

  1. 更新 > すべての更新を開く
  2. フィルターを 承認:未承認、状態:任意、種類:ソフトウェアに設定
  3. 右上の検索(タイトル検索)で version 1511 などを入力して抽出
  4. 対象を複数選択し、右クリックで 拒否(Decline)
  5. 同様に version 1607、1703…と繰り返す

この時点で、未承認の総数が大きく減ることが多いです。

クライアントが状態を報告すると「必要な更新だけ」にさらに絞り込める

初回同期直後は、WSUS が「どの更新が社内端末に必要か」をまだ把握できていないため、多くの更新が 状態:なし(No Status) で並びます。クライアント(1809 端末)が WSUS に接続してスキャン結果を報告し始めると、更新ごとに「必要(Needed)」「インストール済み(Installed)」などの状態が付くようになります。

この状態が付いた後は、更新一覧のフィルターで次のように設定するだけで、運用画面が一気に見やすくなります。

フィルター設定例期待できる効果
承認未承認これから判断すべき更新だけを表示
状態必要(Needed)社内端末に必要な更新だけが残り、旧バージョン向け更新が自然に消える
分類Security Updates / Critical Updates月次運用の対象に集中できる

「旧バージョン向け更新が大量で、どれを拒否すべきか迷う」場合は、まず Pilot 端末だけでも WSUS に接続させ、状態が付いてから Needed で絞ると、拒否の判断量そのものを減らせます。

「1809 と書かれていないが、実は対象外」を見分けるコツ

タイトルにバージョンが出ない更新は、次の2点を見ると判断しやすくなります。

  • 更新の詳細(Details)の「この更新プログラムは次の製品に適用されます(Applies to)」
  • 製品(Products)や 分類(Classifications)、KB番号

たとえば、更新の詳細に「Windows 10 Version 1709」などが明記されていれば、1809 端末には不要な可能性が高いので拒否対象にできます。逆に、Defender 定義や .NET 更新などは OS バージョンでは切れないことが多いため、“バージョン表記がない=不要”ではない点に注意してください。

置き換え済み(Superseded)更新はどう扱うのが正解?

WSUS では更新が新しい更新に置き換えられると、古い更新が Superseded(置き換え済み)としてマークされます。置き換え済み更新を残しておくと次のデメリットがあります。

  • 更新一覧が膨らみ、承認作業の判断が遅くなる
  • クリーンアップしない限り、コンテンツや DB が肥大化しやすい
  • “どれを承認すべきか”が曖昧になり、誤承認・誤拒否が起きやすい

そのため、運用としては 置き換え済み更新は定期的に拒否して掃除するのがおすすめです。

置き換え済み更新を拒否する前に確認したいこと

置き換え済みは原則整理対象ですが、次の条件を満たすようにすると安全性が上がります。

確認項目理由目安
置き換え元を置き換える更新(後継)が WSUS に存在する置き換え先が未同期・未承認だと穴が開く少なくとも後継が同期済み
後継更新が Pilot で適用できている稀に後継で問題が起きることがあるPilot に承認し正常性確認
置き換え済みが「最近の更新」ではない端末が追いついていないと必要になる場合がある運用に合わせて猶予を設ける

WSUS のクリーンアップとセットで考える

拒否しただけでは、WSUS のコンテンツフォルダや SUSDB から即座に消えるとは限りません。拒否 → クリーンアップをセットにすると、見た目だけでなく容量面でも改善しやすくなります。

WSUS クリーンアップ(GUI 編):拒否した更新を“掃除”して軽くする

Windows Server 2012 R2 の WSUS なら、まずは標準の サーバークリーンアップウィザードが基本です。

  1. WSUS コンソールで オプションを開く
  2. サーバークリーンアップウィザードを実行
  3. チェック項目を選択して実行

よく使うチェック項目の考え方は次のとおりです。

チェック項目(表記は環境で多少異なる)効果注意点
期限切れ(Expired)更新の削除/拒否不要更新を整理基本的に有効で OK
置き換え済み(Superseded)更新の削除/拒否一覧と DB を整理後継が承認済み/適用済みか確認すると安全
不要な更新ファイルの削除コンテンツ容量削減実行中に負荷が上がることがあるため業務時間外が無難
未使用コンピューターの削除DB の整理長期間未接続の端末を整理したい場合に
不要な更新のリビジョン(revisions)の削除DB を軽くするWSUS の健康診断的に重要

更新ビュー(Update View)で「見やすい運用画面」を作る

拒否とクリーンアップで件数を減らしても、日々の承認作業は“見やすさ”がないと迷いが出ます。WSUS の運用を安定させるには、更新ビューを自分の運用に合わせて作るのが効果的です。

おすすめのビュー構成例(1809 固定運用)

ビュー名の例フィルターの例狙い
未承認(セキュリティ)承認:未承認 / 分類:Security Updates / 状態:任意毎月ここだけ見れば良い状態にする
未承認(Critical)承認:未承認 / 分類:Critical Updatesセキュリティ以外の重要分を拾う
置き換え済み(掃除対象)置き換え:置き換え済み / 承認:任意掃除の入口を固定する
拒否済み(確認用)承認:拒否一括拒否した結果を後から確認できる
要注意(失敗/未ダウンロード)状態:失敗 / ファイルなし など配布トラブルの早期発見

“全部見る”のではなく、見るべきビューを先に固定すると、運用が一気に楽になります。

PowerShell で「置き換え済み更新の拒否」を自動化する(例)

GUI での一括拒否は、初回の整理で便利ですが、置き換え済み更新は継続的に増えます。定期運用にするなら、PowerShell で自動化しておくと管理が安定します。以下は WSUS API を使った例です。

(実行前にテスト WSUS / Pilot グループで動作確認し、スクリプトの対象条件を自社ポリシーに合わせて調整してください)

# 置き換え済み(Superseded)更新を一括で拒否する例
# 実行には WSUS 管理ツールがインストールされていることが前提です。

[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("localhost",$false)

# まだ拒否されていない、置き換え済みの更新を取得

$updates = $wsus.GetUpdates() | Where-Object {
$*.IsSuperseded -eq $true -and $*.IsDeclined -eq $false
}

Write-Host ("Target updates: " + $updates.Count)

foreach ($u in $updates) {
try {
$u.Decline()
Write-Host ("Declined: " + $u.Title)
} catch {
Write-Warning ("Failed: " + $u.Title + " / " + $_.Exception.Message)
}
} 

旧バージョン文字列を含む更新を拒否する例(慎重に)

「1511〜1803 など明確に対象外のバージョンを拒否したい」場合の例です。タイトルだけに依存するため万能ではありませんが、初回の大量整理では現実的に効きます。

# タイトルに旧バージョン表記を含む更新を拒否する例
# 1809 固定運用を想定(必要に応じて配列を調整)

[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("localhost",$false)

$keywords = @(
"version 1511",
"version 1607",
"version 1703",
"version 1709",
"version 1803"
)

$all = $wsus.GetUpdates() | Where-Object { $_.IsDeclined -eq $false }

$targets = $all | Where-Object {
$t = $_.Title.ToLower()
foreach ($k in $keywords) {
if ($t.Contains($k)) { return $true }
}
return $false
}

Write-Host ("Target updates: " + $targets.Count)

foreach ($u in $targets) {
try {
$u.Decline()
Write-Host ("Declined: " + $u.Title)
} catch {
Write-Warning ("Failed: " + $u.Title + " / " + $_.Exception.Message)
}
} 

ポイントは、キーワードの対象を“明確に不要”に限定することです。例えば「Windows 10」だけで拒否すると必要な更新まで巻き込むので、絶対に避けてください。

運用テンプレ:毎月の承認作業を迷わない形にする

整理が済んだら、次は“増え続ける更新をどうさばくか”が勝負になります。1809 固定運用でよくある運用テンプレを例として載せます。

タイミングやることWSUS 側の操作
パッチ公開後Pilot に先行適用「未承認(セキュリティ)」ビューから該当更新を Pilot のみ承認
問題なし確認後本番へ展開同じ更新を 本番グループへ承認
月次の安定後置き換え済みの掃除Superseded を拒否 → クリーンアップ
四半期ごと設定棚卸し製品/分類/言語が増えていないか見直し

よくある落とし穴と回避策

「1809 と書いてないから拒否」で Defender 定義まで捨ててしまう

Definition Updates を拒否すると、端末が最新の防御を受け取れません。WSUS を使うなら、Defender を利用している限り Definition 更新は捨てないのが基本です(別経路で更新する設計なら別)。

置き換え済みを掃除したのに容量が減らない

拒否だけでは容量は減りにくいことがあります。クリーンアップ(不要な更新ファイルの削除、リビジョン整理)を実行して、はじめて効果が見えるケースが多いです。必要に応じて「WSUS コンテンツの場所」「ディスク残量」も併せて確認してください。

クリーンアップ後に同期や承認が遅くなった気がする

クリーンアップは WSUS に負荷をかけます。業務時間外に実行し、完了後に WSUS のイベントログや同期結果を確認しておくと安心です。DB(SUSDB)の肥大が疑われる場合は、再インデックスなどのメンテナンスも検討すると改善することがあります。

まとめ:初回の大量未承認は「拒否で整理」+「置き換え済み掃除」+「ビュー運用」で解決できる

WSUS(Windows Server 2012 R2)で初回同期直後に未承認更新が大量になるのは、製品選択の性質上ほぼ避けられません。重要なのは、社内の運用対象(今回なら Windows 10 1809)を前提に、不要な更新を拒否して“見える量”をコントロールすることです。

そのうえで、置き換え済み更新を定期的に拒否し、クリーンアップで掃除する流れを習慣化すると、WSUS は「初回だけ大変で、その後は淡々と回る」状態を作れます。まずは Pilot で小さく試し、問題がないことを確認しながら、全体へ広げていくのが安全です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次