web-dev-qa-db-ja.com

Windows Updateの直前と直後の両方で実行するようにスケジュールされたタスクを設定することは可能ですか?

現在、IISマシンでWindowsUpdateをより適切に自動化するためのソリューションを見つけようとしています。1日中何千ものトランザクションに見舞われるインフラストラクチャがあります。最適なウィンドウです。提供できるのは、これらのトランザクションが少ないものですが、IISを強制終了するか、その間にマシンの電源をオフにすると、部門間のインシデントが発生し、回避したいと思います。

そのため、これらのトランザクションは、更新を受け入れるためにマシンを再起動する前に完了する必要があります。現在、更新を許可するために手動で変更する制御値を持つファイルを監視するF5ロードバランサーを使用しています。サーバーが負荷分散テーブルに存在しなくなった場合、進行中のトランザクションを完了でき、残りの新しいトランザクションは他のサーバーに送信されます。

サーバーをシャットダウンしたりオフにしたりせずに、ロードバランサーからサーバーを削除できるようにする方法を見つけようとしていますIIS(新しいトランザクションを停止しながら保留中のトランザクションの猶予期間を許可します)。現在、私がアクセスできないコントロールであるSCOMを使用しており、チームは、現在のインフラストラクチャで更新する前にスクリプトまたはトリガーを指定することはできないと言っています。

私の考えは、Windows Updateをインストールする準備ができているイベントIDでトリガーし、サーバーを負荷分散から外し、更新が終了したときに別のスクリプトをトリガーして元に戻すようにスケジュールされたタスクスクリプトを構成できるということです。

ただし、スケジュールされたタスクがイベントID 19(更新の成功)で機能することはわかっていますが、更新が実際に開始される前に実行するタスクを指定できるかどうかはわかりません。私が現在見ているイベントIDは43、インストールが開始されましたが、これが発生している間に他のタスク(サービスの停止と開始、ファイルの変更など)が実行される可能性があるとは思えません。

更新が適用される直前と直後に、この特定のイベントチェーンの周りにスケジュールされたタスクまたはスクリプトを作成した経験がある人はいますか?

2
nostalgk

良い質問!

IISサーバー?どのツールを使用していますか?WSUS?SCCM?BigFix?Altiris?またはその他のパッチを適用する予定はありますか?

SCOMの方法-特定のイベントIDでスクリプトをトリガーすることが可能です。 SCOM-イベント検出に応答してスクリプトを実行します

SCOMスクリプトテンプレート

プロセスを自動化するには、サービスウィンドウを定義する必要があります。

IISサーバーに4時間(午後6時から午後10時)のサービスウィンドウを使用して、1日1台のサーバーにパッチを適用することを計画しているとします。

  1. ロードバランサーからサーバーを削除するPHP/Perl/Python/iRuleを使用して、手動で介入することなくサーバーを削除できます。

F5ロードバランサープログラミング

  1. トランザクションが完了するまでの猶予期間を許可します。ここでは、いくつかのIIS特定のスクリプトを使用してセッションを監視できます

  2. パッチ管理の対象となるサーバーをターゲットにし、更新のダウンロード、インストール、および完了イベントIDを監視します

  3. サーバーをF5ロードバランサーに追加し直します

使用する一般的なツール:Windows Powershell(IISについて話しているので、Powershellが最善の策です)

Powershellの助けを借りて:

  1. F5ロードバランサーにサーバーを追加および削除するPHP関数/ URL)を呼び出すことができます。

Windows Powershell経由でPHPスクリプトを実行

  1. モニターIISおよびデータベース(必要な場合))

  2. アップデートインストールのイベントIDを監視し、最後にサーバーを再起動できます。

WindowsPowershellを使用してJOBをスケジュールできます。

お役に立てれば。これはほんの一例です。

2
Rajiv Iyer