備忘録なので、問題にぶち当たる度にこの記事は更新されます。よろしくお願いいたします。
■前提条件
オペレーションシステムはwindows11
タスクスケジューラによって毎日1回、以下のタスクを実行させます。
これがたまに『オペレータまたは管理者が要求を拒否しました』と表示されます。
タスクで実行するものは『PythonとSeleniumを使用し、chromeブラウザを操作し、特定の情報が掲載されているか確認をするだけ』
■ログを確認する
ログの確認方法は『イベント』と検索欄に入れると『イベント ビュアー』が見つかるので開きます。
システム上のログが見えるので、タスクスケジューラによって実行される時間の周辺のログを見に行きます。
今回調査したものでは以下のログが関与していそう。時系列順に並べました。

- 開始時間ちょうどに『システムがスリープ状態から再開されました。』
- 開始時間1秒前に『 サービスは、Filter detach complete 状態に入りました。』
- 開始時間1秒前に『 サービスは、Filter detach start 状態に入りました。』
- 開始時間1秒前に『 サービスは、Filter pause complete 状態に入りました。』
- 開始時間1秒前に『 サービスは、Filter pause start 状態に入りました。』
- 開始時間1秒前に『システムがスリープ状態になります。スリープの理由: System Idle』
- 開始時間1秒前に『デバイス ROOT\VPCIVSP\0000 のドライバー \Driver\vpcivsp によって、電源の切り替えが中止されました。』
- 開始時間1秒前に『システム セッションが 139 から 141.Reason SxTransition BootId: 15 に移行しました』
正直どれが関与しているかわかりませんが、ざっくり理解すると『タスクを実行する前に、システムがスリープ状態から再開され、またその後再度スリープ状態になっている』と考えるのが妥当
考えられるのは以下
- 『サービスは、Filter~』ログは、サービスに対するフィルターの処理に関連している可能性
- 『デバイス ROOT\VPCIVSP\0000~』ログは、電源の切り替えが中止されましたログは、デバイスドライバーによってトリガーされた電源の切り替えイベントに関連している可能性
- 『システム セッションが~』ログは、システムのセッションが変更されたことを示しています。
まとめると、『タスクスケジューラが設定したタスクを実行するために必要な環境が整っていなかったため、タスクスケジューラが要求を拒否した可能性』といえる。
■対処法①パワーオプション(電源オプションのプラン設定)
全ての内容を理解できませんが、タスク開始前にスリープしているのが最重要だと思いますので、スリープ時間を調整します。
検索欄から『電源プランの編集』を検索し、開き、スリープに入るまでの時間を確認。
『次の時間が経過後休止状態にする』項目が『なし』の設定だったので『2分』に設定。

この状態で経過を見てみます。2023/1/28
しばらくして更新が無ければ、有効だったと理解ください。
■対処法②タスク失敗時に再度実行
対処療法的で効果は不明ですが、一応設定しておく程度のものです。
タスクスケジューラの該当タスクをダブルクリックなりすると、プロパティが表示されます。
設定項目の『スケジュールされた時刻にタスクを開始できなかった場合、すぐにタスクを実行する』にチェックおよび『タスクが失敗した場合の再起動の間隔』を1分『再起動試行の最大数』を1回に設定します。2023/1/28

おそらくこれは本質的でないので、念のため設定しておく程度です。
■まとめ
今後、更新しない場合を考慮し記載しておきます。
Windowsのログを確認したのは今回が始めてだったので、見方があっているかよくわかりません。
詳しい方がいればアドバイスいただけると助かります。
今回の調査にはchatGPTを使用しています。こういった調査系のタスクがはかどります。仕事でも大いに役立つツールなのでchatGPTを使ったことがない人は使った方が良いです。


コメント