PowerShell脚本删除现有DNS条目并在NIC卡上的“替代首选DNS”上设置新条目

时间:2018-12-30 15:10:10

标签: powershell dns powershell-v2.0

$net = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true -ComputerName . |
       Select-Object -Property [a-z]* -ExcludeProperty IPX*,WINS* |
       Where-Object {$_.DNSServerSearchOrder -like "10.*"}
$num = $net.DNSServerSearchOrder
$num.Length
for ($i=0; $i -lt $num.Length; $i++) {
    if(Test-Connection $num[$i] -Count 1 -ErrorAction silentlycontinue) {
    } else {
        $net.SetDNSServerSearchOrder[$i]"<correct IP>"
    }
}

我不确定上面的代码是否使我处于写入路径。我正在尝试为大约13000多个服务器建立代码,我们需要检查服务器上配置的DNS是否正确。

为此,我选择了一个测试服务器,尝试在其中放置一些代码,这些代码将首先转到已启用的NIC,然后将检查是否配置了DNS。在for循环中,我迭代直到DNS数组的长度。在for循环内部,我对DNS条目的ping测试是否对齐。如果DNS ping不需要执行任何其他操作,则需要删除所有DNS并将仅将辅助DNS设置为主要DNS可以正常工作。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如有疑问,请阅读documentationcategoryrequests是一种方法,而不是属性。您可以使用要配置的DNS服务器IP地址数组来调用它。

SetDNSServerSearchOrder()

调整过滤器(和DNS服务器列表)以符合您的要求。

检查已配置的IP地址是否响应ping是没有意义的。它们是正确的名称服务器,那么即使它们(暂时)不可访问,也不应更改地址,或者它们不是正确的名称服务器,那么无论如何,您都需要定义正确的地址。