У меня есть два контроллера домена Server 2019 со службами DHCP, работающими в режиме балансировки нагрузки, который синхронизирует аренду, но не параметры области или резервирования, если это не указано через PowerShell. Так что все, что я хочу сделать, это запланировать Invoke-DhcpServerv4FailoverReplication -Forceзапуск каждые 10 минут.

Я не представлял, что это будет так сложно. У меня есть сценарий PowerShell в C: \ Scripts \ Sync-DhcpReservations.ps1 со следующим кодом:

$ErrorActionPreference="Continue"
Start-Transcript -Path 'C:\Scripts\output.txt' -Append

Import-Module DhcpServer
Invoke-DhcpServerv4FailoverReplication -Force

Stop-Transcript

Когда я настроил это для запуска в запланированной задаче под учетной записью NT_AUTHORITY \ SYSTEM, это не удалось, и в выводе стенограммы были указаны запрещенные разрешения на другом контроллере домена. В этом есть смысл (СИСТЕМА имеет права только на себя), поэтому я создал групповую управляемую учетную запись службы:

New-ADServiceAccount -Name DC_gMSA -DNSHostName DC_gMSA.domain.net -PrincipalsAllowedToRetrieveManagedPassword "Domain Controllers"

Отлично. Test-ADServiceAccount DC_gMSAвозвращает истинный результат на обоих контроллерах домена. Итак, я настроил запланированную задачу для использования этого gMSA:

$Action = New-ScheduledTaskAction -Execute 'powershell.exe' `
-Argument '-NoProfile -NonInteractive -ExecutionPolicy Bypass -File "C:\Scripts\Sync-DhcpReservations.ps1"'

$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 10) `
-RepetitionDuration (New-TimeSpan -Days 9999)

$Principal = New-ScheduledTaskPrincipal -UserId 'DOMAIN\DC_gMSA$' -LogonType Password -RunLevel Highest

$Settings = New-ScheduledTaskSettingsSet -MultipleInstances IgnoreNew

Register-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings -Principal $Principal `
-TaskName 'Replicate DHCP Scope Options' -TaskPath \

Конечный результат: задача даже не запустится. Он не работает с событиями 101 и 104, указывая на то, что gMSA не имеет разрешения на выполнение задачи. Я не получаю стенограмму PowerShell, потому что скрипт никогда не запускался.

Судя по всему, gMSA созданы во всех самых влиятельных группах AD, включая Enterprise Admins. В любом случае, я посмотрел разрешения NTFS и не верю, что это проблема.

Кто-нибудь сталкивался с подобной проблемой?

answer

Для потомков: проблему решил.

Во-первых, я уже настроил, но забыл упомянуть, что gMSA требуется «вход в систему как пакетный» для выполнения сценария.

Во-вторых, gMSA не создается в составе каких-либо групп, кроме компьютеров домена. Я смотрел на ACL учетной записи службы, а не на членство в группе. Я исправил это.

В-третьих, мне пришлось перезагрузить оба контроллера домена, прежде чем привилегии gMSA вступили в силу.