[英]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.