$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
}
}