Windows

如何在不使用 netsh 或 WIM 的情況下更改 Windows 上的網路適配器 DNS 伺服器

  • January 29, 2019

我想以程式方式修改 Windows 上的網路適配器 DNS 伺服器。我不想使用 WMI,因為它會失敗,例如當沒有網路電纜連接到正在修改的乙太網適配器時。更重要的是,它不支持設置 IPv6 配置。

因此,我嘗試直接在系統系統資料庫中設置 DNS 伺服器:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip[6]\Parameters\Interfaces\[Interface GUID]\NameServer

不幸的是,這些設置不會立即應用。

Netsh 命令似乎完美地完成了我想要的事情,但老實說,我認為如果我可以遠離從我建構的應用程序啟動外部程序會更好。我希望它是獨立的。我想知道是否有辦法做到這一點。也許還應該修改其他一些系統資料庫更改,或者應該由 WMI 觸發某些操作?

NETSH 仍然是您想要做的。您似乎開發了某種應用程序,但更改系統資料庫肯定不是可行的方法。

除此之外 - 我強烈建議您使用 DHCP 和保留,而不是在伺服器/客戶端上硬編碼任何 IP 設置 - 除了那些必須的(DHCP 伺服器、域控制器等)。

DHCP 允許您集中管理這些設置並推廣到 DHCP 客戶端(客戶端/伺服器作業系統),而無需接觸它們。

您唯一的其他選擇是 PowerShell - 但同樣 - 您似乎不想使用“外部”程序,儘管 - NETSH 是 Windows 的一部分,只是它是一個命令行工具(或多或少)。

您沒有過多提及您正在使用的開發平台 - 但是還有另一個機會,例如 .NET FrameWork 提供程序可以讓您列舉和更改網卡的設置,我從未專門研究過,但我可以想像那裡是你能做到這一點的機會..

如果您擔心 NETSH 會失敗 - 好吧 - 您仍然可以執行它,然後仔細檢查系統資料庫是否已應用預期的設置..

引用自:https://serverfault.com/questions/951311