web-dev-qa-db-ja.com

シャットダウン前にタスクスケジューラを使用してタスクを実行する

執筆時点で利用可能な唯一のオプションは、「タスクを開始する」ことです。

  • スケジュール通り
  • ログオン時
  • 起動時
  • アイドル時
  • イベントで
  • タスクの変更/作成時
  • ユーザーセッションへの接続時
  • ユーザーセッションからの切断時
  • ワークステーションロック時
  • ワークステーションのロック解除時

シャットダウンする前にタスクスケジューラでタスクを実行する方法はありますか?

7
G.P. Burdell

これは古いスレッドですが、私が考案した、うまく機能するソリューションを追加したいと思います。

シャットダウンまたは再起動が開始されるたびにスクリプトまたはバッチファイルを実行したかったのですが、グループポリシーのシャットダウンスクリプト機能を使用したくありませんでした。この理由はかなり詳細でしたが、基本的に、特定のサービスを閉じる前にスクリプトを実行する必要がありました。

私は次のようにスケジュールされたタスクを作成することになりました:

  • タイプ:イベント時(基本)
  • ログ:システム
  • ソース:User32
  • EventID:1074

ユーザーまたはコマンドがログオンユーザーとして、またはユーザーに代わってシャットダウンまたは再起動を開始すると、イベントID 1074が発生します。これを使用してスクリプトをトリガーするタスクを作成すると、スクリプトが開始されて終了できるようになりますが、ログではタスクが「実行中」または「トリガー済み」としてのみ報告されます。私は長いスクリプトでこれを使用していませんので、さらにテストする価値があるかもしれませんが、短いスクリプトではうまく機能します。

13
Nathan

Windows 7では、 グループポリシーエディター を使用して シャットダウンタスク を作成できます。

4
John

タスクスケジューラは、シャットダウン時にタスクをスケジュールする機能に制限があります。同様の質問がスタックオーバーフローで尋ねられました( how-to-schedule-a-task-to-run-when-shutting-down-windows )。そこでの回答は、詳細に説明されており、それを処理するためのより良い方法である可能性があるグループポリシーエディターメソッドを含むタスクマネージャー。

タスクスケジューラは、グループポリシーエディタの代わりに使用できます。ただし、システムが再起動またはシャットダウンしている間(通常は数秒)実行される非常に短いタスクにのみ適しています。

さらに、タスクのステータスは次のようになる可能性があることに注意してください。

ユーザーがネットワークにログオンしていないため、要求されている操作は実行されませんでした。指定されたサービスは存在しません。 (0x800704DD)

ただし、実行されなかったという意味ではありません。

2
Oz Edri