Как использовать учетную запись gMSA с планировщиком задач и Powershell для управления фильтрами DHCP
Я изо всех сил пытаюсь синхронизировать фильтры DHCP между несколькими серверами DHCP, каждый из которых работает на контроллере домена. Я написал простой скрипт для получения фильтров с главного DHCP-сервера и отправки их на другие DHCP-серверы:
$aDhcpServers = Get-DhcpServerInDC
New-Variable -Name sDhcpMasterServer -Value "master.server.fqdn" -Option Constant
$aDhcpMacFilters = Get-DhcpServerv4Filter -ComputerName $sDhcpMasterServer
foreach($DhcpServer in $aDhcpServers) {
#Don't overwrite ourself
if($DhcpServer.DnsName -notmatch "$sDhcpMasterServer") {
Invoke-Command -ComputerName $DhcpServer.DnsName -ScriptBlock {
#Clear remote entries
Get-DhcpServerv4Filter | Remove-DhcpServerv4Filter
#Add array of MacFilters to remote filter
$args[0] | Add-DhcpServerv4Filter
} -ArgumentList (,$aDhcpMacFilters)
}
}
Затем я создал gMSA и добавил его в группу администраторов DHCP, а также предоставил привилегию входа в систему в качестве пакетного задания на контроллерах домена. Главному DHCP-серверу разрешено получать пароль gMSA. Учетная запись используется в запланированном задании, которое просто выполняет сценарий и (теоретически) должно передавать изменения с главного DHCP на другие DHCP-серверы.
Однако это не так. Скрипт выполняется, но в DHCP-фильтрах на других серверах изменений не происходит (код завершения задачи — 0). Когда тот же сценарий выполняется с учетными данными администратора домена, он работает нормально. Я подозреваю, что проблема связана с удаленным взаимодействием Powershell с использованием учетных данных gMSA, но я не могу найти никакой документации по этому вопросу.