この記事は、スケジュールされたタスクがタスク スケジューラで想定どおりに実行されない問題のトラブルシューティングに役立ちます。
タスク スケジューラを使用してタスクを構成してスケジュールすると、次のいずれかの問題が発生する可能性があります。
- タスクはスケジュールされた時刻に開始されません。
- タスクの状態は、 実行 無期限に保持されます。
- タスクは完了しますが、予期されるアクションは発生しません。
- タスク スケジューラの History タブまたは Last Run Result 列にエラーが表示されます。
この問題のトラブルシューティングを行うには、これらの手順に従います。
手順 1: タスクに配置する前にスクリプトをテストする
タスク スケジューラは、タスクのトリガーです。 スクリプトを使用する場合、スケジュールされたタスクを構成するための前提条件は完全なスクリプトです。 タスクに配置する前にエラーがないことを確認するには、PowerShell やコマンド プロンプトなどのツールを使用してスクリプトを直接テストします。
手順 2: [状態] 列と [履歴] タブを使用してタスクの状態を確認する
History タブで特定のタスク イベントを確認します。 このタブでは、タスクがトリガーされて正常に完了したかどうかを判断できます。 例:
タスクがトリガーされない場合は、手動トリガーを試してください。 トリガーが スケジュール トリガーの場合は、トリガーの開始時刻を将来の時刻に設定し、タスクをもう一度保存します (タスクを再登録します)。 まだトリガーされない場合は、タスクを右クリックし、初期チェック用の .xml
ファイルにエクスポートして、タスク構成を収集します。
既にトリガーされている場合は、 Status 列と History タブを使用して、タスクの実行中にエラーがないか確認します。
通常、タスクは手動または自動的にトリガーされるために、 Ready 状態である必要があります。 実行状態が長い間残っている場合は、タスクのアクションを確認します。 たとえば、タスクがカスタマイズされたアプリケーションまたは PowerShell スクリプトを実行する場合は、タスク マネージャーでプロセスを見つけます。 次に、特定のプロセスのダンプやその他のトレースを収集して、プロセスが実行され続け、終了しない理由をトラブルシューティングします。
手順 3: タスク履歴のエラーを確認する
タスクの完了中にエラーが発生した場合、またはタスクが正常に完了しても予想される出力が表示されない場合は、次の方法を使用して問題をさらに絞り込みます。
- 簡略化されたスクリプトを使用して、問題がスクリプトまたはアプリケーションに関連しているかどうかを判断します。
- トランスクリプトを有効にして PowerShell スクリプトの実行中にエラーを確認します。 バッチ スクリプトなどの場合は、出力コマンドをさらに追加して、特定のコマンドのエラーをトレースします。
- セキュリティ オプションを Run に変更して、ユーザーがログオンしている場合にのみ実行します問題がセキュリティ コンテキストに関する問題であるかどうかを判断します。
収集するログ
上記の手順で問題が解決せず、さらに支援を得るためにMicrosoft サポートに連絡することを検討する場合は、事前に次の情報を収集してください。
- タスクの構成 (エクスポートされた
.xml
ファイル) - タスク スケジューラ イベント ログ (イベント ビューアー>アプリケーションとサービス ログ>Microsoft>Windows>TaskScheduler>Operational)