Windowsをシャットダウンするときに実行するタスクをスケジュールする方法


86

Windowsをシャットダウンしたときに実行されるように、WindowsXPでタスクをどのようにスケジュールしますか。Windowsをシャットダウンするたびにc#で記述した簡単なコマンドラインプログラムを実行したいようなものです。スケジュールされたタスクには、コンピューターのシャットダウン時にこのタスクを実行するオプションがないようです。

回答:


92

gpedit.msc(ローカルポリシー)を実行します

コンピューターの構成-> Windowsの設定->スクリプト->シャットダウン->プロパティ->追加


28
Logoffでバッチスクリプトを実行したい場合は、.batファイルを直接参照しても機能しないことがわかりました。ただし、スクリプト名およびスクリプトパラメータとして使用C:\Windows\System32\cmd.exeした場合は、使用しました。/C C:\path\to\batch\script.bat
ダンスティーブンス

6
警告:fastbootを使用している場合、グループポリシーの起動とシャットダウンのsciptsは実行されません(Windows 8以降ではデフォルトで有効になっています)。この場合、再起動または強制シャットダウン(コマンドプロンプトから)のみが実際にコンピューターをシャットダウンします。他のすべての場合(スタートメニューのシャットダウン)、コンピューターカーネルは休止状態になり、起動時に回復し、GPOの起動とシャットダウンのsciptsは無視されます。
voji 2016年

@voji:これはWindows Serverにも当てはまりますか?
sampathsris 2018

再起動はどうですか?
dangalg

これらは
ServerCore

40

Dan Williamsの回答に加えて、スタートアップ/シャットダウンスクリプトを追加する場合は、[コンピューターの構成]で[Windowsの設定]を探す必要があります。ログオン/ログオフスクリプトを追加する場合は、[ユーザーの構成]で[ Windowsの設定]を探す必要があります。

したがって、この情報を含めてダンが言ったことを繰り返すと、

起動/シャットダウンの場合:

  1. gpedit.msc(ローカルポリシー)を実行します
  2. コンピューターの構成-> Windowsの設定->スクリプト->起動またはシャットダウン->プロパティ->追加

ログオン/ログオフの場合:

  1. gpedit.msc(ローカルポリシー)を実行します
  2. ユーザー構成-> Windows設定->スクリプト->ログオンまたはログオフ->プロパティ->追加

ソース:http//technet.microsoft.com/en-us/library/cc739591(WS.10).aspx


2
これがより良い答えです。GPEditorを開くと、説明したとおりに2つのノードが表示されます。両方のノードにWindows設定オプションがあるため、受け入れられた回答はあなたの回答よりも明確ではありません。ヒントをありがとう。非常に役立ちます。
セススピアマン2015

34

タスクスケジューラの使用を好む場合は、イベントビューアのシステムログのイベント1074がログに記録された後にタスクを実行するように設定することで、再起動/シャットダウンが開始された後にタスクを実行するようにスケジュールできます。ただし、これは非常に短いタスクにのみ適しています。このタスクは、システムが再起動/シャットダウンしている限り実行されます。通常は数秒です。

  • タスクスケジューラから:

    タスクを開始します。イベント
    ログ:システム
    ソース:USER32イベント
    ID:1074

  • コマンドプロンプトから:

    schtasks / create / tn "taskname" / tr "task file" / sc onevent / ec system / mo * [system / eventid = 1074]

コメント:/ ecオプションはWindowsVista以降で使用できます。(ありがとう@ t2d)

タスクのステータスは次のようになることに注意してください。

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

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


ヒントをありがとう!@ Oz、これはシャットダウン時だけでなく再起動時にも実行されますか?私がカバーしようとしている場合は、Windows Updateは...再起動を強制している
エリックEidt

はい、そうです。このイベントは再起動/シャットダウン時にログに記録されるためです。
Oz Edri 2015年

引数/ec systemは存在しませんが、と呼ばれることに注意してください/ru systemsupport.microsoft.com/en-us/kb/814596#bookmark-4
t2d 2016年

@ t2d、/ ecは新しいバージョンに存在しますが、/ ruは完全に異なるものを指します。ECではイベントチャネルを指定でき、ruでは別のユーザーとして実行できます。それでも、コメントありがとうございます。それに応じて投稿を編集します。
Oz Edri 2016年

1
あなたの例の修飾子にタイプミスがあります。それは、そう... /mo *[system/eventid=1074]ではないはずです.../mo *[system/evendid=1074]
テストワーク2018年

4

回避策の1つは、プログラムを実行してからコンピューターをシャットダウンするための単純なバッチファイルを作成することです。

コマンドラインからシャットダウンできるので、スクリプトはかなり単純になります。

c:\directory\myProgram.exe
C:\WINDOWS\system32\shutdown.exe -s -f -t 0

4

GPEdit.MSCを実行する場合は、[コンピューターの構成]-> [Windowsの設定]-> [スクリプト]に移動し、起動/シャットダウンスクリプトを追加できます。これらは、単純なバッチファイルでも、本格的なEXEでもかまいません。また、この同じツールでログオンスクリプトとログオフスクリプトのユーザー構成を調整できます。このツールは、Windows XPHomeでは使用できません。




1

私が提案できるのは、.batファイル(デスクトップなど)へのショートカットを作成し、コンピューターをシャットダウンする(そして.batファイルを実行する)ときに、作成したショートカットをクリックすることです。これを行った後、.batファイルを編集し、このコード行を最後または必要な場所に追加します。

c:\windows\system32\shutdown -s -f -t 00

これは何ですか

  1. シャットダウンプロセスを実行します
  2. アラートを表示します
  3. 実行中のすべてのプロセスを強制的に停止します
  4. すぐに実行

1

Windows 10 Proでは、バッチファイルを登録できます。cmd.exeを登録し、batファイルをparamとして指定する回避策は必要ありません。シャットダウンスクリプトと起動(ブート)スクリプトの両方を登録してこれを実行したところ、機能しました。


0

ここで説明するように、「グループポリシースクリプトの最大待機時間を指定する」と「シャットダウンスクリプトの実行時に命令を表示する」も有効にする必要がありました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.