Windowsタスクスケジューラでいくつかのタスクをスケジュールしました。タスクスケジューラから電子メールを個別に送信するタスクを追加するBmailというサードパーティツールをインストールしました。特定の時間にトリガーできます。元のタスクが実行されたときにBmailタスクが電子メールを送信するようにこれを設定する方法を知っている人はいますか?タスクスケジューラで2つの異なるタスクをリンクし、一方が他方をトリガーするようにするにはどうすればよいですか?
2 に答える
これが古いスレッドの復活と見なされる場合は申し訳ありません。しかし、私はこれについて自分で答えたいと思っていて、最初にここに来ました。
デイジーチェーン接続できます。最初のタスクの後に、最初のタスクが完了したときに作成されたイベントでトリガーするように 2 番目のタスクをスケジュールします。ここで少し面倒なことをすべて説明しています。
このトリガーを追加して Ping イベントを起動すると、Ping が完了した直後に Pong タスクが起動します。この XPath を再利用して、タスク名 \Ping を後で実行するタスクに置き換えた単純な例です。
*[EventData[@Name='TaskSuccessEvent'][Data[@Name='TaskName']='\Ping']]
さらに詳細な制御が必要な場合は、上記のリンク先のブログで行われたコメンテーターの 1 人として行うことができます。
さらに、「前のタスクが終了コード 0 で完了した場合にのみタスクを実行する」という条件を追加しました。
そのためには、「タスク完了」イベントよりも「アクション完了」イベントの方が適しています。この「アクション完了」イベントのイベント データ要素には、まさに探している「ResultCode」という名前の子要素がもう 1 つ含まれています。
したがって、xPath は次のとおりです。 *[EventData[@Name='ActionSuccess'][Data[@Name='TaskName']='Ping'][Data[@Name='ResultCode']='0']]
自分で動作するようになったら、この投稿をさらに更新します。
Bmail タスクが実行していることをエミュレートするスクリプトを作成し (たとえば、Run exe など)、Bmail タスクを変更して、作成したばかりのスクリプトを実行することができます。
そこから元のタスクを変更して同じスクリプトを呼び出すようにします。このように、Bmail が実行方法を変更した場合、両方のタスクを更新できますが、スクリプトを変更するだけです。