В PowerShell, как я могу определить, является ли DNS-сервер, который я использую, контроллером домена?

#powershell #dns #domaincontroller

Вопрос:

Я хочу убедиться, что DNS-сервер, который я использую, является контроллером домена. Я знаю доменное имя. Могу ли я проверить это с помощью PowerShell? Например, для разрешения некоторой DNS-записи, указанной DC:

 Resolve-DnsName -Name '_tcp.' $DomainName
 

Ответ №1:

Вы можете получить список всех серверов имен домена с:

 Resolve-DnsName -Name $env:USERDNSDOMAIN -Type NS
 

И вы можете получить список всех контроллеров домена домена с:

 Resolve-DnsName -Name _ldap._tcp.dc._msdcs.$env:USERDNSDOMAIN -Type SRV
 

Чтобы получить список всех контроллеров домена, которые также являются DNS-серверами (что, скорее всего, имеет место в настоящее время), вы можете выполнить следующий код:

 $dnsServers = (Resolve-DnsName -Name $env:USERDNSDOMAIN -Type NS).NameHost
Resolve-DnsName -Name _ldap._tcp.dc._msdcs.$env:USERDNSDOMAIN -Type SRV | Where-Object {$_.NameTarget -in $dnsServers}
 

Затем вы можете проверить, содержит ли список используемый вами DNS-сервер.