在Windows关闭时执行批处理脚本

PNS*_*PNS 28 windows shutdown batch-file group-policy windows-7

有没有办法在Windows 7 Professional用户点击"关闭"时运行批处理脚本(例如.BAT文件)(不是计划关闭机器的批处理文件,只有在用户点击时才运行的批处理文件) "关掉")?

理想情况下,此类脚本将显示命令提示符窗口并提供取消关闭过程的选项.

不需要第三方实用程序的解决方案更可取.

bah*_*rep 50

您可以在Windows上创建本地计算机策略.请访问Techtech,网址http://technet.microsoft.com/en-us/magazine/dd630947

  1. 运行gpedit.msc以打开组策略编辑器,
  2. 导航到计算机配置| Windows设置| 脚本(启动/关闭).

在此输入图像描述

  • 在关闭之前为VirtualBox VM编写`savestate`脚本非常有用.谢谢! (4认同)
  • 谢谢.请注意,您需要"Win Professional"或"Ultimate"才能执行此操作.如果您有标准的家庭版本(就像我一样),那么您可以从[here]手动添加组策略编辑器(http://www.askvg.com/how-to-enable-group-policy-editor-gpedit- MSC-在窗口-7家保费家庭基本和起动器的版本/). (3认同)
  • 谢谢bahrep,我一直在寻找这个. (2认同)
  • 我怎样才能在“睡眠”而不是“关机”时做到这一点? (2认同)
  • 请注意,正如[在这个问题](/sf/ask/7115321/)中提到的,如果您想要在注销时运行批处理脚本,我发现直接引用 .bat 文件不起作用。但是,如果我使用“C:\Windows\System32\cmd.exe”作为脚本名称,并使用“/CC:\path\to\batch\script.bat”作为脚本参数,则它会执行此操作。 (2认同)

小智 5

好吧,这是做一些注册表更改的简单方法:我在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
Run Code Online (Sandbox Code Playgroud)
  1. 将此文件另存为regedit.reg扩展名

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

    regedit.exe /s regedit.reg
    
    Run Code Online (Sandbox Code Playgroud)