製品コラム

セイテクエンジニアのブログ  製品コラム  Windows Updateの更新を自動化し、再起動を保留-BOM 8.0 SR1活用例: おじさんブログと連動

 

 

Windows Updateの更新を自動化し、再起動を保留-BOM 8.0 SR1活用例: おじさんブログと連動

2024年05月22日配信
2024年06月19日更新
執筆者:セイ・テクノロジーズ エバンジェリスト

 BOM for Windows は、サーバーを監視するだけでなく、メールなどによる通知機能、自動リカバリー機能、監視や通知のログを蓄積するアーカイブ機能から構成されています。今回は、「かつて山市良と呼ばれていたおじさんのブログ」で最近紹介された、Windows Update関連のスクリプトを、BOM 8.0 SR1の「イベントログ監視」機能および「メール通知」アクションと組み合わせる活用例を紹介します。

 

タスクスケジューラー×イベントログ×BOM監視/通知

 

 前回は、「かつて山市良と呼ばれていたおじさんのブログ」の以下の記事で紹介されたスクリプト「get-wustatu.vbs」を、BOM 8.0 SR1の「カスタム監視」と「テキストログ監視」と組み合わせて、更新履歴のログをメール送信する方法について紹介しました。

メモ. 再起動が完了するまでがWindows Updateのインストール

 今回は、更新プログラムのスキャン、ダウンロード、インストールをタスクスケジューラーを使用して実装する、以下のテクニックと、BOM 8.0 SR1の「イベントログ監視」を組み合わせてみます。

メモ. Windows Update補完計画、フェーズ2
メモ. Windows Update補完計画、フェーズ2.1

 上記のブログ記事で紹介している「WUA_SearchDownloadInstallv2.vbs」は、Microsoft提供のWindows Update Agent(WUA)APIを使用したサンプルスクリプト「WUA_SearchDownloadInstallv.vbs」をカスタマイズし、サンプルスクリプトの機能はそのままに、終了(EXIT)コードでインストールの結果と再起動の要否を判断できるようにしたものです。そして、「mywinupdate.cmd」は、「WUA_SearchDownloadInstallv2.vbs」を実行し、終了コードに応じたカスタムイベントログ(イベントID 900~910)をシステムログに書き込むバッチファイルです。このバッチファイル「mywinupdate.cmd」をタスクスケジューラーで定期的(例えば毎週水曜日)に実行することで、利用可能な更新プログラムがあれば、ダウンロードとインストールを開始し、再起動が必要な場合は、再起動せずに保留状態にすることができます(画面1)。

画面1
画面1 「WUA_SearchDownloadInstallv2.vbs」を呼び出してシステムログに書き込む「mywinupdate.cmd」をタスクスケジューラーで定期的に自動実行させる

 再起動が必要なケースや、インストール時にエラーが発生したときにいち早く管理者が対応できるようにする1つの方法が、BOMの活用です。BOMの「イベントログ監視」を利用して、イベントの発生を監視し、管理者の対応が必要な場合は、「メール送信」アクションを利用して通知するのです。

 

「イベントログ監視」を利用してメール通知の実装

 

 今回もスクリプトやバッチファイルは既にあるので、あとはBOMに実装するだけです。今回は、監視グループ「MyWindowsUpdate」を作成し、その中に「イベントログ監視」を必要な数だけ作成していきます。必要な数とは、「mywinupdate.cmd」が返す可能性がある終了コードの数だけです。それぞれに、「システム」ログからソース「MyWindowsUpdate」のイベントIDを監視させ、イベントログの検出数のしきい値で注意や危険状態を調整します(画面2)。

 

画面2
画面2 「mywinupdate.cmd」が書き込むイベントログ(イベントID 900~910、情報/警告/エラーのいずれか)のすべてに対応した「イベントログ監視」を作成する

 イベントID「900」(利用可能な更新プログラムがない)以外の各監視には、「メール送信」アクションを作成し、指定した宛先に「mywinupdate.cmd」が出力するのと同じメッセージを含めます(画面3)。

 

画面3
画面3 「メール送信」アクションに「mywinupdate.cmd」が出力するのと同じメッセージを含める

 以上の設定を行った後、BOMの監視を開始します。タスクスケジューラーで指定した日時に「mywinupdate.cmd」が実行され、イベントログが書き込まれると、その直後に結果がメールで通知されるようになります(画面4)。タスクスケジューラーの自動化タスクは、再起動まで行ってくれるものではありませんが、BOMからのメールの通知で再起動が必要な場合や、エラーの発生をいち早く知り、対処することができます。

画面4
画面4 BOMのイベントログ監視で通知された、タスクスケジューラーのWindows Updateタスクのメッセージ(※動作確認のため、画面1とはタスクの実行時間が異なります)。ちなみにこのエラーは、おじさんのブログで詳しく説明したKB5034439のエラーを今回の動作確認のために放置しておいたもの

 

 今回は、タスクスケジューラーとBOMのイベントログ監視を組み合わせたWindows Updateの半自動化の活用例でしたが、タスクスケジューラーの部分をJob Directorに置き換えることで、Windows Updateを完全にコントロール下に置いた上での、Windows Updateの完全な自動化も可能でしょう。その方法についても、この製品コラムで近日中に紹介する予定です。

blog_column_subscribe

blog_column_comment

最新記事