有没有办法在使用 Windows 8 关机时执行批处理或 PowerShell 脚本而不禁用 FastBoot?
我知道您可以使用“gpedit.msc”添加脚本,但我发现只要启用 FastBoot,Windows 8 就不会执行关机脚本。
在企业中部署脚本时,我不想在脚本末尾添加关机命令并告诉几十个人通过脚本关闭电脑。
答案1
在 上创建一个 wmi 事件观察器Win32_ComputerShutdownEvent
,从您的登录脚本中在后台静默运行它。它将整天等待关机命令。发生事件时,发送"shutdown -a"
并调用您的脚本。
答案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\State\Machine\Scripts\Startup]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0]
"GPO-ID"="LocalGPO"
"SOM-ID"="Local"
"FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine"
"DisplayName"="Stratégie de groupe locale"
"GPOName"="Stratégie de groupe locale"
[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"="Stratégie de groupe locale"
"GPOName"="Stratégie de groupe locale"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0]
"Script"="C:\\script1.bat"
"Parameters"=""
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
一旦您理解了代码,您可以通过改变一些变量来调整它以满足您的需要。
C:\\script.bat
表示硬盘上脚本的路径。
0
表示脚本的编号(如果您要运行多个脚本)。
Startup
是脚本的执行时间(启动时为 Startup,关闭时为 Shutdown)
可以添加多个脚本:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0]
"Script"="C:\\script1.bat"
"Parameters"=""
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
还可以通过更改参数字段来指定该脚本执行的参数。
最后,保存此文本文件:
- 转到文件 > 保存
- 给它一个以 .reg 结尾的名称
- 在文件类型列表框中选择所有文件
- 将文件保存到所需位置并双击此文件