スクリプトを利用して、より快適にロールアップの配信を行う


みなさま、こんにちは。WSUS サポートチームです。

本記事では WSUS API を利用したスクリプトを用いて、ロールアップの更新プログラムをより快適に配信する方法について、ご案内いたします。

以前の記事で紹介した通り、Windows 7 SP1 / 8.1、Windows Server 2008 R2 / 2012 / 2012 R2 において 2016 年 10 月以降ロールアップ モデルへの移行を行っております。

しかし、「セキュリティのみの品質更新プログラム」も「セキュリティ マンスリー品質ロールアップ」も、いずれも「セキュリティ問題の修正プログラム」としてリリースされるため、WSUS の自動承認規則では、片方だけを自動で承認するということは出来ません。

このような場合には、WSUS API を用いたスクリプトを作成すると、より細かな制御を行うことが可能です。本記事では、ロールアップの更新プログラムを「セキュリティのみの品質更新プログラム」に限定して配信するために有効な、下記の 2 種類のサンプル スクリプトについて紹介をいたします。

1. 「セキュリティ マンスリー品質ロールアップ」を拒否済みに設定するスクリプト
2. 自動承認規則の「規則の実行」を行うスクリプト

なお、いずれのスクリプトも弊社内の環境にて正常に動作することを確認しておりますが、ご利用の際には、念のため事前にご検証くださいますようお願いいたします。

 

1.「セキュリティ マンスリー品質ロールアップ」を拒否済みに設定するスクリプト

こちらにて「セキュリティ マンスリー品質ロールアップ」を拒否済みに設定するスクリプトを提供しております。ダウンロードいただいたスクリプトの名前を DeclineSecurityMonthlyQualityRollup.ps1 DeclineSecurityAndQualityRollup.ps1 に変更してお使いください。

 

本スクリプトを利用すると、各 OS 向けのセキュリティ マンスリー品質ロールアップおよび .Net Framework 向けのセキュリティおよび品質ロールアップを拒否済みに設定することが可能です。誤って「セキュリティのみの品質更新プログラム」以外を配信することを抑止したい場合には、本スクリプトをタスク スケジューラー等を用いて定期的に自動実行することで、「セキュリティ マンスリー品質ロールアップ」を自動で拒否に設定することが可能です。

 

[実行例]

- 下記のスクリプトを実行することで、各 OS 向けのセキュリティ マンスリー品質ロールアップを拒否に設定します。

DeclineSecurityMonthlyQualityRollup.ps1

 

- 下記のスクリプトを実行することで、.Net Framework 向けのセキュリティおよび品質ロールアップを拒否に設定します。

DeclineSecurityAndQualityRollup.ps1

 

(補足情報 : 「セキュリティ マンスリー品質ロールアップ」を配信する場合)

「セキュリティ マンスリー品質ロールアップ」を配信する場合には、こちらにて「セキュリティのみの品質更新プログラム」を拒否済みに設定するスクリプトを提供しておりますため、ダウンロードいただいたスクリプトの名前を DeclineSecurityOnlyQualityUpdate.ps1 DeclineSecurityOnlyUpdate.ps1 に変更してお使いください。

 

[実行例]

– 下記のスクリプトを実行することで、各 OS 向けのセキュリティのみの品質更新プログラムを拒否に設定します。

こちらはタイトルに「Security Only Quality Update」を含む更新プログラムが拒否済みの対象です。

DeclineSecurityOnlyQualityUpdate.ps1

 

– 下記のスクリプトを実行することで、.Net Framework 向けのセキュリティのみの更新プログラムを拒否に設定します。

こちらはタイトルに「Security Only Update」を含む更新プログラムが拒否済みの対象です。

DeclineSecurityOnlyUpdate.ps1

 

2. 自動承認規則の「規則の実行」を行うスクリプト

こちらにて自動承認規則の「規則の実行」を行うスクリプトを提供しております。ダウンロードいただいたスクリプトの名前を Apply-InstallApprovalRules.ps1 に変更してお使いください。

 

本スクリプトを用いますと自動承認規則の「規則の実行」をスクリプトから行うことが可能です。自動承認規則では拒否に設定されていない更新プログラムが自動承認の対象となります。このため、上述の「1」のスクリプトにて「セキュリティ マンスリー品質ロールアップ」を拒否済みに設定した後に、本スクリプトを実行することで、「セキュリティ マンスリー品質ロールアップ」以外の「セキュリティのみの品質更新プログラム」を含む更新を、全て自動で承認することが出来ます。

 

[事前準備]

本スクリプトを利用する場合には、対象の自動承認規則の下記のチェック ボックスを事前に外しておきます。チェック ボックスを外さないとスクリプトの実行のタイミングと関係なく、更新プログラムが同期されたタイミングで規則に合致する更新プログラムが承認されてしまいます。

WSUSAR

 

[実行例]

- 下記のスクリプトを実行することで、対象の自動承認規則の「規則の実行」を行ないます。

Apply-InstallApprovalRules.ps1 -TargetApprovalRule <承認をスクリプトから実行する自動承認規則名 (例 : “既定の自動承認規則” )>

 

いかがでしたでしょうか。スクリプトを改修すると上記よりもさらに細かく制御を行うことも可能です。WSUS API の詳細については下記の公開情報に纏まっておりますので、興味のある方は是非ご参考にしてください。

 

- Windows Server Update Services 3.0 Class Library

https://msdn.microsoft.com/en-us/library/ms744624(v=vs.85).aspx

 

- 注意事項

サンプル スクリプトは弊社環境で検証した上でご案内しておりますが、弊社にてその動作を保証するものではございません。ご使用の際は、お客様の環境に合わせて変更いただき、十分にテストした上で、ご利用くださいますようお願いいたします。


Comments (1)

  1. a より:

    これって英語環境用でしょうか?
    日本語環境で望む動作するようには思えないのですが

  2. hir より:

    この手順を実行してWSUSでマンスリーロールアップを拒否しようと思っていましたが、
    11月のセキュリティ更新を見てみると、KB3197867のセキュリティのみの更新は、
    マンスリーロールアップKB3197868で置き換えられた更新として表示されます。
    もし、セキュリティ更新が各PCに行き渡る前にWSUSのクリーンアップを行うと、このスクリプトでマンスリーロールアップが拒否され、
    セキュリティのみの更新もクリーンアップによって拒否され、結果として両方のセキュリティ更新が各PCに配信されないという事になりませんでしょうか?

Skip to main content