如何透過命令列或註冊表編輯停用/啟用特定適配器的協議

如何透過命令列或註冊表編輯停用/啟用特定適配器的協議

屬性視窗的視圖。

我需要找到一種方法來自動停用特定網路適配器的某些網路協定。我知道我可以打開視窗並從特定網路適配器的屬性視窗中取消選中各種協議,例如“Internet 協議版本 6 (TCP/IPv6)”,但我需要找到一種方法通過命令行或通過註冊表,以便我可以自動化該流程。有任何想法嗎? -謝謝!

答案1

使用 PowerShell 可以輕鬆完成此操作。以下指令最適合與 Windows 內建的 PowerShell 搭配使用,因為迄今為止 PowerShell Core 版本對這些指令還沒有很好的支援。

使用Get-NetAdapter列出系統上的網路介面卡。

使用Get-NetAdapterBinding-Name "MyAdapter" -AllBindings列出網路適配器上的綁定。

使用Set-NetAdapterBinding-Name "MyAdapter" -ComponentID ms_tcpip -Enabled $True透過元件名稱啟用或停用綁定。

請參閱連結的文檔或使用-?標誌運行命令以取得更多選項。

答案2

我已經對我在工作中使用的一些腳本執行了此操作。

任何時候都有一些適配器註冊,一些環回。主要問題是檢測您的目標正確的目標,然後過濾掉其餘的。您還應該注意,在重新啟動完成之前,實用程式 netsh 所做的變更可能不會傳播到 wmi 介面。

我建議查看 Win32_NetworkAdapterConfiguration 的 WMI 成員函數或使用 netsh。

你沒有提到作業系統,我假設你指的是Windows。我建議使用 Powershell,因為它與 Windows 7 及更高版本捆綁在一起,並且可以安裝在先前的系統上。它還允許存取 dotnet 函數 api。

答案3

我在 2016 年的伺服器上嘗試,我必須修改 @M.Dundley 提供的行;當然,如果沒有他的回答,我就無法建造我的。

如下所示,我使用了tbimdsa以下範例:

disable-NetAdapterbinding -name "MyAdapter" -ComponentID tbimdsa

我也證明了使用enable-NetAdapterbinding.我必須告訴您,它並不適用於所有綁定或屬性。

相關內容