我创建了一个脚本,希望将其作为关机脚本部署到我的 XP 工作站上。我知道我可以使用 UI (gpedit.msc) 将我的脚本添加为关机脚本,但我想自动部署我的脚本。我的工作站不属于 Windows 域。我将使用 OCS Inventory 进行部署。
我尝试向 Windows 注册表添加条目,但不起作用。运行 gpedit.msc 时看不到我添加的内容。如果我使用 gpedit.msc 添加某些内容,这似乎会覆盖我手动添加到注册表中的内容。
答案1
对于那些努力实现这一目标的人,我深表同情。我花了很多时间试图弄清楚 gpedit 所做的数百项更改中究竟哪些是真正重要的。我的测试是在 Windows Server 2016 上进行的。这些结果是相关的:
以下值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]\0 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]\0\0 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]\0 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\[Startup|Shutdown]\0\0
目录:
\Windows\system32\GroupPolicy\Machine\Scripts\Startup \Windows\system32\GroupPolicy\Machine\Scripts\Shutdown
Windows 使用这些目录作为脚本的工作目录。即使您不将启动/关闭脚本保存在那里,这些目录也需要存在。
gpedit 的其他操作似乎都不重要。这包括许多注册表项和其他答案中引用的 .ini 文件。上面的一些键可能也是多余的,但我没有耐心进行测试。
答案2
我让它工作了。
我在一台计算机上使用 gpedit.msc 添加了脚本。我从HKLM\Software\Policies\Microsoft\Windows\System\Scripts
和导出了注册表项HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine
。我还压缩了C:\WINDOWS\SYSTEM32\GroupPolicy
目录。
在另一台电脑上,我用之前在第一台电脑上导出的 2 个 .reg 文件修补了注册表。我还将 zip 文件解压到第二台电脑上的相同位置。
脚本在关机时运行,我在 gpedit.msc 中看到它。一切似乎都很好!
答案3
我们假设启动脚本位于 C:\MyStartupScript.bat
您需要一个名为 REG_SZ 的注册表项脚本其值设置为启动脚本位于以下两个位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0\0
您还需要在 C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Scripts.ini 中添加以下条目
[Startup]
0CmdLine=C:\MyStartupScript.bat
0Parameters=
对于关机脚本,请按照相同的说明进行操作,但替换单词的每个实例启动用这个词关闭
编辑:
如果其他两个注册表项尚不存在,则似乎您可能还需要创建它们。
您需要在上述两个注册表位置创建它们。
第一个条目是 REG_SZ 条目,名为参数并且其值可以为空。
第二个条目是 REG_QWORD 条目,名为执行时间并将其值设置为00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
在 Windows XP 中,REG 命令无法将 REG_QWORD 条目添加到注册表。
为了解决这个限制,我例如使用一个批处理文件来添加这些行
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0]
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
到名为添加Qword文件然后使用以下命令执行该文件:
regedit /s addQword.reg
答案4
您可以在此处添加键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown
请在此处查看更多信息:http://en.kioskea.net/faq/3358-execute-a-script-a-startup-and-shutdown
您只需制作一个可在所有机器上运行的 reg 文件即可将密钥添加到注册表中。