我如何自动创buildGPOclosures脚本?

我正在pipe理未连接到域的AWS ASG中的Windows VM。 我想在关机时运行一个脚本( 而不是注销),以从Chef中删除这些节点,并且我想用Chef创build/注册脚本。 我准备好了删除脚本,它让他们在关机时运行,我无法find一个实现。

我可以通过gpedit.msc手动执行本地计算机策略 – >计算机configuration – > Windows设置 – >脚本(开始/closures) – >关机。 这将脚本放置在C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown 。 不幸:

  • 它看起来像脚本目录只在gpedit.msc第一次运行时被创build,并且不清楚手动创build它们是否有效
  • 只要在那里放置脚本本身就不会注册它们 – 它们不会显示在gpedit.msc中
  • 放置脚本并运行gpupdate /force (如这里所build议的)也不会导致它显示在gpedit中,尽pipegpupdate确实表示重启可能需要进行一些更改 – 这不是一个选项,因为在ASG中重启导致实例终止和replace

我知道可能使用任务计划程序在关机时运行脚本,但是(至less从我的研究来看),似乎关键的区别在于,任务计划程序closures脚本只有运行系统所需的时间closures,而GPOclosures脚本将推迟closures,直到完成。

所以,问题是:是否有一种方法,通过厨师(即通过PowerShell,DSC或批处理脚本)在不连接到AD的计算机上注册GPOclosures脚本而无需重新启动?

尝试使用这个LGPO实用程序。 您应该可以使用GUI在试验机上configuration关机脚本,使用LGPO进行备份,然后使用LGPO将其导入到新build的系统中。

https://blogs.technet.microsoft.com/secguide/2016/01/21/lgpo-exe-local-group-policy-object-utility-v1-0/

感谢@ Clayton的回答,并从这个答案的另一个问题的洞察力,我能够得到它在Win2016的工作。 我必须创buildC:\Windows\System32\GroupPolicy\Machine\Scripts\psscripts.ini以及设置一大堆registry项:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\0
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\0\0
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\0
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\0\0
  • HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Shutdown\0
  • HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Shutdown\0\0

\Shutdown\0结尾的那些获取策略值:

 "GPO-ID"="LocalGPO" "SOM-ID"="Local" "FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine" "DisplayName"="Local Group Policy" "GPOName"="Local Group Policy" "PSScriptOrder"=dword:00000001 

\Shutdown\0\0结尾的那些脚本值:

 "Script"="C:\\WINDOWS\\System32\\GroupPolicy\\Machine\\Scripts\\Shutdown\\seppuku.ps1" "Parameters"="" "IsPowershell"=dword:00000001 "ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 

这是针对位于C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown\seppuku.ps1的PowerShellclosures脚本。 设置这一切是一个痛苦,但完全有可能使用厨师,经过融合,我看到脚本注册在gpedit.msc 。 我还没有完全确认脚本实际在关机时执行,这是我的下一步,但我相信它应该。