次の方法で共有

WSUS環境の機能更新プログラムのスクリプトについて

さとこ 60 評価のポイント
2026-05-29T11:34:14.38+00:00

MSの下記サイトにあるスクリプトを実行すると、古い承認した機能更新プログラムが「拒否済み」になるのですが、何か回避策はありますでしょうか。

https://jpmem.github.io/blog/wsus/2017-12-11_01/

ビジネス向け Windows | Windows Server | デバイスと展開 | Windows の更新プログラム、機能、またはロールのインストール
0 件のコメント コメントはありません

質問作成者が受け入れた回答

チャブーン 6,716 評価のポイント MVP ボランティア モデレーター
2026-06-01T05:59:11.98+00:00

チャブーンです。

この件ですが、この運用自体は「通常は適切」なんだと思います。

上記スクリプトと合わせて以下サイトのクリーンアップウィザードを実施しているのですが、違いはありますか? クリーンアップウィザードを実施すれば、スクリプトは実施する必要はないでしょうか。

WSUSクリーンアップの目的は、「WSUS自体にたまった過去データベースとファイルを削除する」が目的です。そしてWSUSクライアント状況確認は「WSUS自身が保有する情報」に依存します。

不要な更新プログラムは「拒否済み」に設定しよう!

にあるように「拒否済みは「配信されない」代わりに「収集されない」」は既定の仕様なので、この点は変えることはできないです。資料にも「レポート情報の収集が行われなくなるため、クライアントへ適用が行われているか、配信が必要であるか、WSUS 上のレポートから確認出来なくなる。」と記載があり、MSサポートは承知しています。

なので、素で考えると例えばこういう話しになると思います。

1.仕様に合わないためあきらめる

拒否済みの設定は「WSUSの空き容量をより増やす」ための向上施策で、必達事項ではないです。質問者さんの環境にはあわない、ということでこの部分はあきらめるという方法はあると思います。通常のクリーンアップウィザードでもある程度は容量を減らせますし、運用でカバー(WSUSディスクサイズを増設する)という方法もあります。

資料でも「注意 : 最新の更新プログラムを配信する方針 (数ヶ月遅れで更新プログラムを配信する等) でご運用されていない場合には、本手順を実施しないでください。本手順は最新の更新プログラムを配信する方針で運用している環境を前提としております。」ということなので、万人のためのプログラムではないです。

2.WSUSレポートを「自前で作成」する

以下の方法で、自分で使用にあったレポート相当の情報を集計する、というやり方があります。

  • WSUSレポート情報に相当する内容が得られる「PowerShellスクリプト」を作成する
  • PowerShellスクリプトの内容から「拒否済み」の内容もレポートに加えるものにカスタマイズする

まずはWSUSレポート情報をPowerShellで実行する、というところから情報収集されてはいかがでしょうか?

WSUS Report Script

うえの内容をカスタマイズすると、お望みの内容にたどり着けると思います。

その方法についてですが、

  1. AIに質問する
    ご自身でスクリプトの扱いに習熟されていれば、最適です。費用も掛からず正しい内容が期待できます。AIはソフトウェアコードなどの「正解がある」問いへの対応力は高いためです。
  2. このコミュニティでの回答を待つ
    ご自身でAIやスクリプトをまったく扱えない場合の対応ですが、通常こういった対応は「企業が有償で」請け負うもので、奇特な方がいないと不可能なソリューションです。
  3. MS有償サポートを利用する
    従来の対応方法としては最適ですが、費用が発生します。こういった内容から確認してください。
    https://ittrip.xyz/microsoft/ms-pro-support-fee-check

ただ、上記の1をご自身で対応したうえ、「わからないところがある」ということであれば、このスレッドとは別の「新規のスレッド」で質問していただければ、Microsoft Q&A のメンバーから何らかのヒントや回答は引き続き得られると思います。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。

質問作成者が受け入れた回答

VPHAN 36,330 評価のポイント 独立アドバイザー
2026-05-29T12:18:16.8033333+00:00

Hi さとこ,

この問題は、Windows機能更新がWindows Server Update Servicesデータベース内のアップグレード分類に分類されているため発生します。新しいWindowsビルドがリリースされるにつれて、Microsoftは古い機能アップデートを「上書き」としてフラグ付けします。あなたが使っているメンテナンススクリプトは、WSUSデータベースをクエリし、すべての上位更新に対して自動的にDeclineメソッドを呼び出してデータベースのパフォーマンスを最適化するように設計されています。スクリプトは標準的なセキュリティパッチと主要な機能展開を区別しないため、意図せず古い承認済みの機能アップデートをキャッチして拒否してしまいます。

これを解決するには、PowerShellスクリプトを編集して、アップグレード分類をバルク拒否操作から明示的に除外する必要があります。スクリプトファイルを開いて、Get-WsusUpdate コマンドレットまたは UpdateScope オブジェクトを使って特定のブロックを特定し、上書きされた更新を収集します。このデータ取得パイプラインにWhere-Objectフィルターを注入し、各更新のUpdateClassificationTitleプロパティを評価する必要があります。このプロパティが「Upgrades」と完全に一致しない更新のみを処理するようスクリプトに指示することで、機能更新に対して恒久的な除外が生まれます。この修正を保存したら、安全にWSUS管理コンソールを再開し、手動で古い機能アップデートを再承認してください。新たに調整されたスクリプトは、今後のすべてのメンテナンス実行時にこの分類を回避し、特定のビルドがクライアントマシンで完全に利用可能であることを保証します。

この回答が役に立つ情報になれば幸いです。もしそうなら、「回答を受け入れる」をクリックしてください。質問があれば、ぜひコメントしてください。

ヴァファン

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。

0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "おすすめ" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。