web-dev-qa-db-ja.com

Windows Server 2008 R2でスケジュールされたタスク(ローカルおよびリモート)を表示する

Windows Server 2008 R2で実行される本番ノードの1つで、土曜日の午前中(午前00:00から07:00まで)の間(Tomcatで実行されているアプリケーションによる)リクエストの処理に大幅な遅延(通常の5倍)があることに気付きました。 30AM)。アプリケーションプロバイダーから、トラブルシューティングのためにその期間中に実行するようにスケジュールされているタスクを提供するように依頼されました。

その期間中に実行されるすべてのスケジュールされたタスク(ローカルおよびリモートでトリガーされた)を表示する方法はありますか?土曜日の午前5時のように、過去に実行されたすべてのスケジュールされたタスクの何らかの履歴を見ることができれば素晴らしいと思います。

タスクスケジューラを試しました。ただし、ローカルスケジュールのみが表示され、ケースに関連するもの(この場合は土曜日の朝)のみを表示するようにビューをフィルターする明確な方法はありません。

もともとstackoverflowで尋ねられました(誤って追加するかもしれません。 https://stackoverflow.com/q/24751302/147909

3
Jayachandran

タスクスケジューラで実行されているものである場合は、イベントログを見て、その間に何が実行されたかを確認できます。これはかなり冗長になるため、定期的に発生するイベントを除外する必要がありますが、問題のドリルダウンに役立つ場合があります。

イベントビューア->アプリケーションおよびセキュリティログ->Microsoft->Windows->タスクスケジューラ->Operationalには情報が含まれている必要があります。

Powershellを使用してログを解析することもできます。このリンクを参照してください: http://blogs.technet.com/b/heyscriptingguy/archive/2011/01/24/use-powershell-cmdlet-to-filter-event-log-for-easy-parsing。 aspx

幸運を!

5
jski

MSDNで タスクスケジューライベントID を参照として使用し、Powershellクエリを実行して、発生した関連するタスクスケジューライベントを一覧表示します。

たとえば、これはイベントID 107(時間トリガーによって実行される)に対応するすべてのタスクをリストします。

Get-WinEvent -LogName Microsoft-Windows-TaskScheduler/Operational | ? { $_.Id -eq 107 }

その後、簡単に日付でフィルターをかけ、さまざまなフィールド/メンバーを選択し、すべてをファイルに書き込んで、アプリケーションプロバイダーに電子メールで送信して確認できます。凝ったものにしたい場合は、 Powershellを使用してパフォーマンスログデータをダンプする を使用して、いくつかの相関を試すことができます。

1
Will