繁体   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