Назад | Перейти на главную страницу

Как я могу автоматизировать создание сценария выключения GPO?

Я управляю виртуальными машинами Windows в AWS ASG, которые не подключены к домену. Я хочу запустить скрипт при выключении (не logoff), чтобы удалить эти узлы из Chef, и я хочу создать / зарегистрировать сценарии с помощью Chef. У меня готов сценарий удаления, он заставляет их запускаться при выключении, для чего я не могу найти реализацию.

Я могу сделать это вручную через gpedit.msc Политика локального компьютера -> Конфигурация компьютера -> Параметры Windows -> Сценарии (Пуск / Завершение работы) -> Завершение работы. Это помещает скрипты в C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown. К сожалению:

Мне известно о возможном использовании планировщика задач для запуска сценария при завершении работы, но (по крайней мере, из моих исследований) кажется, что ключевое отличие состоит в том, что сценарий завершения работы планировщика задач имеет столько времени для запуска, сколько требуется системе. для выключения, тогда как сценарий выключения GPO откладывает выключение до его завершения.

Итак, возникает вопрос: есть ли способ через Chef (то есть через PowerShell, DSC или пакетный сценарий) зарегистрировать сценарий выключения GPO на машине, не подключенной к AD, без перезагрузки?

Благодаря пониманию ответа @ 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

Это для сценария выключения PowerShell, расположенного по адресу C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown\seppuku.ps1. Настроить все это сложно, но вполне возможно с помощью Chef, и после схождения я вижу сценарий, зарегистрированный в gpedit.msc. Мне еще предстоит полностью подтвердить, что сценарий действительно выполняется при выключении, это мой следующий шаг, но я считаю, что должен.

Попробуйте воспользоваться этой утилитой LGPO. У вас должна быть возможность использовать графический интерфейс для настройки сценария выключения на пилотной машине, создать резервную копию с помощью LGPO, а затем использовать LGPO для его импорта во вновь созданные системы.

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