製品コラム

セイテクエンジニアのブログ  製品コラム  利用可能な重要な更新プログラム数の監視で「Windows Update監視」を置き換える-BOM for Windows活用例

 

 

利用可能な重要な更新プログラム数の監視で「Windows Update監視」を置き換える-BOM for Windows活用例

2025年03月26日配信
2025年04月25日更新
執筆者:セイ・テクノロジーズ エバンジェリスト

 「BOM for Windows Ver.8.0 SR1」(以下、BOM)が標準で備える「Windows Update監視」は、インストール済みの更新プログラムの数をしきい値で監視します。これは、不具合やセキュリティ問題に対して個別に更新プログラム(ホットフィックス)が提供されていたレガシバージョンのWindowsでは理にかなった監視方法でした。しかし、現在のWindowsバージョンではこの監視方法は適していません。そこで今回は、BOM標準の「Windows Update監視」を代替でき、現在のWindowsバージョンにより適したカスタム監視項目を作成します。

 

BOM標準の「Windows Update監視」の補完+置き換え

 

 BOMが標準で備える「Windows Update監視」は、インストール済みの更新プログラムの数をしきい値で監視します。これは、不具合やセキュリティ問題に対して個別に更新プログラム(ホットフィックス)が提供されていたレガシバージョンのWindowsでは理にかなった監視方法でした。しかし、最近のWindowsバージョンの監視には適さないことを以下の製品コラムで指摘しました。

最後の更新からの経過日数を監視して「Windows Update監視」を強化する-BOM for Windows活用例

 最近のWindowsバージョンでは、更新プログラムは累積的であり、最新の品質更新プログラムがインストールされていれば、過去の更新プログラムで修正された内容を含めて更新することができるからです。上記の製品コラムでは、「Windows Update監視」を強化する目的で、最後に品質更新プログラムがインストールされてからの経過日数を返すPowerShellスクリプトを作成し、BOMのカスタム監視項目として実装しました。今回は、BOM標準の「Windows Update監視」を代替でき、現在のWindowsバージョンにより適したカスタム監視項目を作成します。

 

利用可能な重要な更新プログラムの数で監視する

 

 次のPowerShellサンプルスクリプト「checkavailableupdates.ps1」は、「Windows Update エージェント API」を使用して、Windows UpdateまたはWindows Server Update Services(WSUS)から利用可能な重要な更新プログラムを検索して、その数を返すスクリプトです。

 

Windows Update エージェント API の使用|Windows アプリ開発(Mirosoft Learn)


[checkavailableupdates.ps1]プレーンテキストで表示)

$UpdateSession = New-Object -ComObject Microsoft.Update.Session
$updateSearcher = $updateSession.CreateupdateSearcher()
$SearchCriteriaRecommended = "IsInstalled=0 and Type='Software' and AutoSelectOnWebsites=1"
$searchResult = $updateSearcher.Search($SearchCriteriaRecommended)
$Updates = $SearchResult.Updates
return $SearchResult.Updates.Count

 

 このPowerShellスクリプトを、BOMのカスタム監視項目で「powershell.exe」の引数として設定し、しきい値を適切に設定すれば、利用可能な更新プログラムの数で更新状態を確認することができます(画面1)。重要な更新プログラムには、Windowsや.NET Frameworkの品質更新プログラムの他に、Microsoft Defender Antivirusの更新プログラム(プラットフォームや定義ファイル)も含まれるため、しきい値としては「0: 正常」「1以上: 注意」「4以上: 危険」のようにするとよいでしょう。なお、更新プログラムの検索にはしばらく時間がかかる場合があります。監視設定のプロパティの「拡張設定」タブで「タイムアウト時間」(既定は60秒)に長め(例: 1800秒)に設定してください。

 

画面1
画面1 利用可能な重要な更新プログラムの数を返すPowerShellスクリプトをBOMのカスタム監視項目として設定する

 検索条件(Search Criteria)としては、Windows ServerのSconfigユーティリティの「6) 更新プログラムのインストール|2) 推奨される品質更新プログラムのみ」と同じ検索条件にしました(画面2)。

 

画面2
画面2 Windows Server 2022以降のSconfigユーティリティの「2) 推奨される品質更新プログラムのみ」と同じ検索条件を使用。Windows Server 2019以前は「%Windir%¥System32¥ja-jp¥WUA_SearchDownloadInstall.vbs」内に同じ検索条件あり

 

運用例


 Windows Serverにおける更新プログラムのインストールの自動化は、運用中の業務システムに影響しないようにすることが課題です。Windows Updateの自動化は行わずに、要な場合に業務に影響しない時間帯で手動で実行するというのも1つの選択です。今回の監視例のを用いれば、BOMの監視に基づいて、更新プログラムのインストールの必要性を判断することができるでしょう。

 

 画面3は、Windows Serverを新規インストールし、Windows Updateを一度も実行していないサーバーの監視状態です。最後の品質更新からの経過日数は「174」となっていますが、これはOSのイメージに含まれていたホットフィックス情報(Get-Hotfix)からの経過日数です。画面4は、更新プログラムをインストールし、再起動した後の監視状態になります。最後の品質更新からの経過日数は「0(正常)」になりました。1つの更新プログラムが利用可能であることを示していますが、これはMicrosoft Defender Antivirusの更新プログラムでした。

 

画面3
画面3 BOMによる監視に基づいて、Windows Updateを手動で開始する

画面4

画面4 Windows Updateの完了後、健全な状態になった

 今回作成した「利用可能な重要な更新プログラム数」の監視と前回の「最後の品質更新からの経過日数」の監視は、スクリプトの内容を含めて、よりシンプルで直感的な監視が可能です。なお、BOM 8.0以降には、更新プログラムの未適用リストの監視する「Windows Upate未適用リスト取得」と取得可能なすべての更新履歴を取得する「Windwos Update成否リスト取得」の2つの監視テンプレートが製品に同梱され、未適用リストのメール通知を含む、より詳細な監視を簡単に実装することができます。


関連:
最後の更新からの経過日数を監視して「Windows Update監視」を強化する-BOM for Windows活用例
Windows Updateの更新履歴を毎日監視-BOM 8.0 SR1活用例: おじさんブログと連動
Windows Updateの更新を自動化し、再起動を保留-BOM 8.0 SR1活用例: おじさんブログと連動

blog_column_subscribe

blog_column_comment

最新記事