[英]Error editing Windows DNS
我已经阅读了几个不同的可靠技术博客和讨论,其中以下代码应允许我使用使用特定DNS服务器的静态IP定位NIC,并更新它们使用的服务器。
$NICs = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled='FALSE'" |
Select-Object -Property DNSServerSearchOrder |
Where {
$_.DNSServerSearchOrder -contains "OldDNS1" -or
$_.DNSServerSearchOrder -contains "OldDNS2"
}
foreach ($NIC in $NICs) {
$NIC.SetDNSServerSearchOrder("NewDNS1","NewDNS2")
}
但是,当我运行该代码时,出现以下错误:
Method invocation failed because [Selected.System.Management.ManagementObject]
doesn't contain a method named 'SetDNSServerSearchOrder'.
At line:2 char:33
+ $NIC.SetDNSServerSearchOrder <<<< ("NewDNS1","NewDNS2")
+ CategoryInfo : InvalidOperation: (SetDNSServerSearchOrder:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
我一直无法弄清或找到合适的解决方案,而且我不确定自己缺少什么。 有没有人有什么建议?
编辑:@FoxDeploy的建议后,我得到另一个错误:
Cannot find an overload for "SetDNSServerSearchOrder" and the argument count: "2".
At line:2 char:33
+ $NIC.SetDNSServerSearchOrder <<<< ("172.16.1.50","172.16.210.53")
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodCountCouldNotFindBest
我不得不改变:
$NIC.SetDNSServerSearchOrder("NewDNS1","NewDNS2")
就是现在:
$NIC.SetDNSServerSearchOrder($("NewDNS1","NewDNS2"))
这是由于select
语句。
使用Select-Object
可以从其先前的配置中更改对象,并将其变为System.Management.ManagementObject
,这基本上只是PowerShell自定义对象的一种。
如果删除Select-Object
语句,这将起作用。
$NICs = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled='FALSE'" |
Where {
$_.DNSServerSearchOrder -contains "OldDNS1" -or
$_.DNSServerSearchOrder -contains "OldDNS2"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.