簡體   English   中英

編輯Windows DNS時出錯

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM