ドメインに接続されていないAWSASGでWindowsVMを管理しています。シャットダウン時にスクリプトを実行して(notlogoff)、これらのノードをChefから削除し、Chefを使用してスクリプトを作成/登録したいと思います。削除スクリプトの準備ができました。実装が見つからないシャットダウン時に実行されます。
gpedit.msc
ローカルコンピューターポリシー->コンピューター構成-> Windows設定->スクリプト(開始/シャットダウン)->シャットダウンを介して手動で行うことができます。これにより、スクリプトがC:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown
に配置されます。残念ながら:
gpupdate /force
を実行しても(提案されているように ここ )、gpeditに表示されませんが、gpupdateは、いくつかの変更を適用するために再起動が必要になる可能性があることを示唆していました-そうではありませんASGでの再起動としてのオプションは、インスタンスの終了と置換を引き起こす可能性がありますシャットダウン時にスクリプトを実行するためにタスクスケジューラを使用する可能性があることは知っていますが、(少なくとも私の調査からは)主な違いは、タスクスケジューラのシャットダウンスクリプトの実行時間はシステムにかかる時間と同じであるということです。シャットダウンしますが、GPOシャットダウンスクリプトは、シャットダウンが完了するまでシャットダウンを延期します。
したがって、問題は、Chefを介して(つまり、PowerShell、DSC、またはバッチスクリプトを介して)再起動せずにADに接続されていないマシンにGPOシャットダウンスクリプトを登録する方法はありますか?
@Claytonの回答と この回答 から別の質問への洞察のおかげで、Win2016で動作させることができました。 C:\Windows\System32\GroupPolicy\Machine\Scripts\psscripts.ini
を作成する必要がありました:
[Startup]
0CmdLine=C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown\seppuku.ps1
0Parameters=
多数のレジストリキーを設定するだけでなく、次のようにします。
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
にあるPowerShellシャットダウンスクリプト用です。これをすべて設定するのは面倒ですが、Chefを使用すると完全に可能です。収束後、スクリプトがgpedit.msc
に登録されているのがわかります。スクリプトがシャットダウン時に実際に実行されることをまだ完全に確認していません。それが私の次のステップですが、そうすべきだと思います。
このLGPOユーティリティを使用してみてください。 GUIを使用してパイロットマシンでシャットダウンスクリプトを構成し、LGPOでバックアップしてから、LGPOを使用して新しく構築されたシステムにインポートできるはずです。