Here’s a brilliant PowerShell scipt to check what the DNS servers are set as accross the domain then change it:
$allservers = @() $domainpcs = Get-ADComputer -Filter * -Properties operatingsystem | where {$_.operatingsystem -like "*Server*"} | sort name foreach ($pc in $domainpcs) { if (Test-Connection $pc.DNSHostName -Quiet) { $thisserver = $null $DNSsettings = $null $DNSsettings = Get-DnsClientServerAddress -CimSession $pc.DNSHostName | where {($_.AddressFamily -eq 2) -and ($_.InterfaceAlias -notlike "Loopback*") -and ($_.InterfaceAlias -notlike "isatap*") -and ($_.ServerAddresses -ne $null)} | select @{n='DNSServers';e={$_ | select -ExpandProperty serveraddresses}},InterfaceIndex $thisserver = New-Object psobject -Property @{ Servername = $pc.Name interfaceindex = $DNSsettings.interfaceindex[0] DNSsetting1 = $DNSsettings.dnsservers[0] DNSsetting2 = $DNSsettings.dnsservers[1] DNSsetting3 = $DNSsettings.dnsservers[2] } $allservers += $thisserver $thisserver } } foreach ($server in $allservers) { $newdns1 = $null $newdns2 = $null $newdns3 = $null $needchange = $false write-host $server.Servername -ForegroundColor Green $newdns1 = $server.dnssetting1 $newdns2 = $server.dnssetting2 $newdns3 = $server.dnssetting3 write-host $newdns1 -ForegroundColor Red write-host $newdns2 -ForegroundColor Red write-host $newdns3 -ForegroundColor Red Switch ($server.DNSsetting1) { "10.5.1.4" {$newdns1 = "8.8.8.8";$needchange =$true} "10.5.1.5" {$newdns1 = "8.8.4.4";$needchange =$true} "10.5.1.6" {$newdns1 = "1.1.1.1";$needchange =$true} } Switch ($server.dnssetting2) { "10.5.1.4" {$newdns2 = "8.8.8.8";$needchange =$true} "10.5.1.5" {$newdns2 = "8.8.4.4";$needchange =$true} "10.5.1.6" {$newdns2 = "1.1.1.1";$needchange =$true} } Switch ($server.dnssetting3) { "10.5.1.4" {$newdns3 = "8.8.8.8";$needchange =$true} "10.5.1.5" {$newdns3 = "8.8.4.4";$needchange =$true} "10.5.1.6" {$newdns3 = "1.1.1.1";$needchange =$true} } write-host $newdns1 -ForegroundColor Cyan write-host $newdns2 -ForegroundColor Cyan write-host $newdns3 -ForegroundColor Cyan $needchange if ($needchange) { Set-DnsClientServerAddress -cimsession $server.servername -InterfaceIndex $server.interfaceindex -ServerAddresses ($newdns1,$newdns2,$newdns3) -whatif } }
very nice.