我正在pipe理未连接到域的AWS ASG中的Windows VM。 我想在关机时运行一个脚本( 而不是注销),以从Chef中删除这些节点,并且我想用Chef创build/注册脚本。 我准备好了删除脚本,它让他们在关机时运行,我无法find一个实现。
我可以通过gpedit.msc手动执行本地计算机策略 – >计算机configuration – > Windows设置 – >脚本(开始/closures) – >关机。 这将脚本放置在C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown 。 不幸:
gpupdate /force (如这里所build议的)也不会导致它显示在gpedit中,尽pipegpupdate确实表示重启可能需要进行一些更改 – 这不是一个选项,因为在ASG中重启导致实例终止和replace 我知道可能使用任务计划程序在关机时运行脚本,但是(至less从我的研究来看),似乎关键的区别在于,任务计划程序closures脚本只有运行系统所需的时间closures,而GPOclosures脚本将推迟closures,直到完成。
所以,问题是:是否有一种方法,通过厨师(即通过PowerShell,DSC或批处理脚本)在不连接到AD的计算机上注册GPOclosures脚本而无需重新启动?
尝试使用这个LGPO实用程序。 您应该可以使用GUI在试验机上configuration关机脚本,使用LGPO进行备份,然后使用LGPO将其导入到新build的系统中。
感谢@ 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 。 我还没有完全确认脚本实际在关机时执行,这是我的下一步,但我相信它应该。