簡體   English   中英

在 Windows 關機時執行批處理腳本

[英]Executing a batch script on Windows shutdown

Windows 7 Professional ,有什么方法可以在用戶單擊“關閉”時運行批處理腳本(例如 .BAT 文件)(不是計划關閉機器的批處理文件,只有在用戶點擊“關機”)?

理想情況下,這樣的腳本將顯示命令提示符窗口並提供取消關閉過程的選項。

不需要第三方實用程序的解決方案會更可取。

您可以在 Windows 上創建本地計算機策略。 請參閱http://technet.microsoft.com/en-us/magazine/dd630947 上的 TechNet

  1. 運行gpedit.msc打開組策略編輯器,
  2. 導航到計算機配置 | Windows 設置 | 腳本(啟動/關閉)

在此處輸入圖片說明

嗯,這是進行一些注冊表更改的簡單方法:我在2008 r22016服務器上嘗試過這個。

需要做的事情:

  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擴展名

  2. 使用以下命令在任何命令行上運行它:

     regedit.exe /s regedit.reg

創建您自己的關閉腳本 - 稱為 Myshutdown.bat - 並執行您將在腳本中執行的任何操作,然后在腳本結束時調用 shutdown /a。 然后執行您的 bat 文件而不是正常關機。

(有關更多信息,請參見http://www.w7forums.com/threads/run-batch-file-on-shutdown.11860/ 。)

我在搜索啟動和關閉 Windows 10 的運行腳本時發現了這個主題。上面的那些答案不起作用。 對我來說,當我將腳本放入任務計划程序時,我在 Windows 10 上工作。 如何做到這一點:按窗口鍵並編寫任務計划程序,打開它,然后右側是添加任務...按鈕。 您可以在此處添加腳本。 PS:我找到了啟動和注銷用戶的操作,沒有關閉。

使上述代碼發揮作用; 您需要確保以下目錄存在(我的沒有)。 只需將以下內容添加到 bat 並運行它:

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)

正常運行。

這可以通過SCHTASKS編程方式實現:

SCHTASKS /Create /SC ONEVENT /mo "Event[System[(EventID=1074)]]" /EC Security /tn on_shutdown_normal /tr "c:\some.bat" 

SCHTASKS /Create /SC ONEVENT /mo "Event[System[(EventID=6006)]]" /EC Security /tn on_shutdown_6006 /tr "c:\some.bat" 

SCHTASKS /Create /SC ONEVENT /mo "Event[System[(EventID=6008)]]" /EC Security /tn on_shutdown_6008 /tr "c:\some.bat" 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM