web-dev-qa-db-ja.com

Windowsシャットダウン時にバッチスクリプトを実行する

方法はありますか、Windows 7 Professional、ユーザーが「シャットダウン」をクリックしたときにバッチスクリプト(たとえば、.BATファイル)を実行します(マシンをシャットダウンするようにスケジュールされたバッチファイルではなく、ユーザーが「シャットダウン」をクリックした場合にのみ実行されるバッチファイル) ?

理想的には、このようなスクリプトはコマンドプロンプトウィンドウを表示し、シャットダウン手順をキャンセルするオプションを提供します。

サードパーティのユーティリティを必要としないソリューションが望ましいでしょう。

27
PNS

Windowsでローカルコンピューターポリシーを作成できます。 http://technet.Microsoft.com/en-us/magazine/dd630947 のTechNetを参照してください

  1. 実行gpedit.mscグループポリシーエディターを開くには、
  2. コンピューターの構成| Windows設定|スクリプト(スタートアップ/シャットダウン)

enter image description here

50
bahrep

さて、レジストリの変更を行う簡単な方法:2008 r2および2016サーバーでこれを試しました。

物事を行う必要があります:

  1. テキストファイル「regedit.txt」を作成します
  2. 次のコードを貼り付けます:
Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown]     

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\0]  
"GPO-ID"="LocalGPO"    
"SOM-ID"="Local"    
"FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine"    
"DisplayName"="Local Group Policy"    
"GPOName"="Local Group Policy"    

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\0\0]    
"Script"="terminate_script.bat"    
"Parameters"=""    
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00    

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\0]
"GPO-ID"="LocalGPO"    
"SOM-ID"="Local"    
"FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine"    
"DisplayName"="Local Group Policy"    
"GPOName"="Local Group Policy"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\0\0]    
"Script"="terminate_script.bat"    
"Parameters"=""
"IsPowershell"=dword:00000000
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
  1. このファイルをregedit.reg extensionとして保存します

  2. 以下のコマンドを使用して、コマンドラインで実行します。

    regedit.exe /s regedit.reg
    
5
asif

Windows 10の起動およびシャットダウン用の実行スクリプトを検索しているときに、このトピックを見つけました。上記の回答は機能しませんでした。 Windows 10では、タスクスケジューラにスクリプトを配置すると機能しました。これを行う方法:ウィンドウキーを押してタスクスケジューラを記述して開き、右側に[タスクの追加...]ボタンがあります。ここで、スクリプトを追加できます。 PS:スタートアップユーザーとログアウトユーザーに対するアクションが見つかりましたが、シャットダウンはありません。

2
paka

Myshutdown.batと呼ばれる独自のシャットダウンスクリプトを作成し、スクリプトで行う予定の操作をすべて実行し、最後にshutdown/aを呼び出します。次に、通常のシャットダウンの代わりにbatファイルを実行します。

(詳細については http://www.w7forums.com/threads/run-batch-file-on-shutdown.11860/ を参照してください。)

2
rss2363

上記のコードが機能するため。次のディレクトリが存在することを確認する必要があります(私の場合は存在しませんでした)。次をバットに追加して実行するだけです:

mkdir C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup
mkdir C:\Windows\System32\GroupPolicy\Machine\Scripts\Shutdown
mkdir C:\Windows\System32\GroupPolicy\User\Scripts\Startup
mkdir C:\Windows\System32\GroupPolicy\User\Scripts\Shutdown

GPがこれらのディレクトリが存在する必要があるのは、次のとおりです。

Group Policy\Local Computer Policy\Windows Settings\Scripts (Startup/Shutdown)

適切に機能します。

0
Dugb