Я хочу создать скрипт для автоматизации управления нашим частным DNS (размещенным на Azure ADDS) через Powershell. Для начала я создал простой скрипт для перечисления всех записей DNS. Я добавил Invoke-Command для удаленного запуска этого сценария на компьютере Azure, и проблема началась. Invoke-команда соединяется с целевой машиной, пользователь ADAdmin аутентифицируется правильно (ограничение Azure - только adadmin может управлять DNS на машине), но, к сожалению, я не могу вывести список записей. Я получил ошибку «Не удалось перечислить зоны с IP-адреса сервера». С другой стороны, когда я выполняю RDP на целевой машине, используя того же пользователя, и запускаю скрипт из команды Invoke - DNS-записи отображаются без проблем.
Не могли бы вы помочь мне с этим?
# set up variables
$DNSServer = #IP machine in Azure
$user = #ADAdmin username
$pass = #ADAdmin password | ConvertTo-SecureString -AsPlainText -Force
# open session to remote host (where containers will be run)
$cred = New-Object System.Management.Automation.PSCredential ($user, $pass)
$session = New-PSSession -ComputerName $DNSServer -Credential $cred
$env:ComputerName
Invoke-Command -Session $session -Scriptblock {
$env:ComputerName
$Zones = @(Get-DnsServerZone -ComputerName "Azure ADDS IP")
ForEach ($Zone in $Zones) {
Write-Host "`n$($Zone.ZoneName)" -ForegroundColor "Green"
$Zone | Get-DnsServerResourceRecord -ComputerName "Azure ADDS IP"
}
}
Remove-PSSession -Session $session
# Show-Error $? "Can't remove PS session after uploading image & starting the container"
Pop-Location
Exit 0
end {
# Write-Host "End processing"
}