質問: windows 10 home editionのシャットダウン時にバッチスクリプトを実行するにはどうすればよいですか? windows 10 home editionのシャットダウン時に、手動再起動とwindows自動更新による自動再起動の両方でバッチスクリプトを実行する必要があります。これは、ユーザーがログインしていないときにも機能する必要があります。これまでに試したところ: eventid 1047でスケジュールされたタスク(破棄され、スクリプトが終了するまで待機しません)。 レジストリとc:\ windows\system32\grouppolicyにグループポリシーシャットダウンスクリプトを手動で追加します(windowsエディションの制限により機能が無効になっているため、破棄され、実行されません)。 サードパーティのソフトウェア。奇妙なことに、サービスとして実行され、システム(またはサービス)のシャットダウン時に実行される.batファイルを追加できる無料のツールを見つけることができませんでした。 autohotkey + nssm [non-sucking service manager]をカスタムサービスとして試しましたが、autohotkeyのイベントが毎回トリガーされませんでした。 私はこの制限にかなりうんざりしています。 ???? 何か案は?edit1:windowsの自動更新を考慮します。 edit2:これは、ユーザーがログインしていないときにも機能する必要があります。 edit4:windowsのアップデートが原因で次のwindows自動再起動が実行されるかどうかを確認していますshutdown -aバッチファイルの先頭に、次にshutdown -s終了時にスケジュールされたタスク内の終了イベントでアプローチが機能します。 edit5:残念、うまくいきませんでした。スケジュールされたタスクが開始されませんでした:エラー:「シャットダウン中」。私の唯一の希望はサードパーティのツールだと思います。
回答: 私は以前にこれをautohotkeyで行いました。このスクリプトはテストされ、機能しています。デスクトップに「テストファイル」を作成する基本的なバッチファイルを作成しました。 ahkファイルを実行し、実行したままにします。スクリプトがシャットダウンを検出すると、バッチファイルを実行します。スクリプトの先頭にあるテキストファイルへのパスを必ず設定してください。autohotkeyスクリプト:;============================== ;set the path to your batch file. path := "c:\batch.bat" ;============================== ; run script as admin. this will allow your batch file to be ran with admin priv. if not a_isadmin { run *runas "%a_scriptfullpath%" ; requires v1.0.92.01+ exitapp } ; only allow one instance of the script to run. #singleinstance, force ; if you don't want an icon to show in the tray, ; remove the semicolon from the line below. ;#notrayicon ; when script detects wm_queryendsession (a shutdown), run onshutdown function. onmessage(0x11, "onshutdown") return onshutdown(){ ; run the batch file. run, % path exitapp } テストに使用したバッチファイル:echo write file before shutdown > %userprofile%\desktop\shutdowntest.txt 必要に応じて、ahkから直接バッチファイルコマンドをいつでも実行できます。