###############################################################
# RemediationDNSConfiguration_v1.0.ps1
# input : n/a
# output : none (logs)
# Version 1.0
# Changelog : n/a
# MALEK Ahmed - 26 / 04 / 2013
###################
##################
#--------Main
##################
$server1 = "x.x.x.x"
$server2 = "y.y.y.y"
$IPList = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName .
$i = 0
$nicwithdnscount = 0
$conformity = "Not Compliant"
if ($IPList.Count -ne $null)
{
while ($i -ne $IPList.Count)
{
try{
if ($IPList[$i].DNSServerSearchOrder[0] -ne $null)
{
$nicwithdnscount = $nicwithdnscount + 1
}
if (($IPList[$i].DNSServerSearchOrder[2] -eq $null))
{
if (($IPList[$i].DNSServerSearchOrder[0] -ne $null) -AND ($IPList[$i].DNSServerSearchOrder[1] -ne $null))
{
if (($IPList[$i].DNSServerSearchOrder[0] -eq $server1) -AND ($IPList[$i].DNSServerSearchOrder[1] -eq $server2))
{
$conformity = "Compliant"
}
else
{
$conformity = "Not Compliant"
}
}
}
}
catch
{
}
$i = $i + 1
if ($nicwithdnscount -ne 1)
{
$conformity = "Not Compliant"
}
}
}
else
{
try{
if ($IPList.DNSServerSearchOrder[0] -ne $null)
{
$nicwithdnscount = $nicwithdnscount + 1
}
if (($IPList.DNSServerSearchOrder[2] -eq $null))
{
if (($IPList.DNSServerSearchOrder[0] -ne $null) -AND ($IPList.DNSServerSearchOrder[1] -ne $null))
{
if (($IPList.DNSServerSearchOrder[0] -eq $server1) -AND ($IPList.DNSServerSearchOrder[1] -eq $server2))
{
$conformity = "Compliant"
}
else
{
$conformity = "Not Compliant"
}
}
}
}
catch
{
}
}
$i = 0
if (($conformity -eq "Not Compliant") -AND ($nicwithdnscount -eq 1))
{
if ($IPList.Count -ne $null)
{
while ($i -ne $IPList.Count)
{
try{
if ($IPList[$i].DNSServerSearchOrder[0] -ne $null)
{
$arrDNSServers = $server1, $server2
$IPList[$i].SetDNSServerSearchOrder($arrDNSServers)
}
}
catch
{
}
$i = $i + 1
}
}
else
{
try{
if ($IPList.DNSServerSearchOrder[0] -ne $null)
{
$arrDNSServers = $server1, $server2
$IPList.SetDNSServerSearchOrder($arrDNSServers)
}
}
catch
{
}
}
} |