Как отключить/включить протоколы определенного адаптера с помощью командной строки или редактирования реестра

Как отключить/включить протоколы определенного адаптера с помощью командной строки или редактирования реестра

Вид окна свойств.

Мне нужно придумать способ автоматизировать отключение определенных сетевых протоколов определенных сетевых адаптеров. Я знаю, что могу открыть окно и снять отметки с различных протоколов, таких как «Протокол Интернета версии 6 (TCP/IPv6)» из окна свойств определенного сетевого адаптера, но мне нужно найти способ сделать это через командную строку или через реестр, чтобы я мог автоматизировать этот процесс. Есть идеи? -Спасибо!

решение1

Это легко сделать с помощью PowerShell. Следующие команды лучше всего работают с PowerShell, встроенным в Windows, поскольку на сегодняшний день редакции PowerShell Core не имеют хорошей поддержки этих команд.

ИспользоватьGet-NetAdapterдля вывода списка сетевых адаптеров в вашей системе.

ИспользоватьGet-NetAdapterBinding-Name "MyAdapter" -AllBindingsдля вывода списка привязок к сетевому адаптеру.

ИспользоватьSet-NetAdapterBinding-Name "MyAdapter" -ComponentID ms_tcpip -Enabled $Trueдля включения или отключения привязки по имени ее компонента.

-?Для получения дополнительных параметров обратитесь к связанной документации или выполните команды с этим флагом.

решение2

Я проделал это для некоторых сценариев, которые использую на работе.

В любой момент времени регистрируется несколько адаптеров, некоторые из них петлевые. Основная проблема заключается в определении правильных, на которые вы ориентируетесь, а затем в отфильтровывании остальных. Вам также следует знать, что изменения, внесенные утилитой netsh, могут не распространяться на интерфейс wmi до завершения перезагрузки.

Я бы посоветовал изучить функции-члены WMI Win32_NetworkAdapterConfiguration или использовать netsh.

Вы не ссылаетесь на ОС, я предполагаю, что вы имеете в виду Windows. Я бы предложил Powershell, так как он поставляется в комплекте с Windows 7 и более поздними версиями и может быть установлен на предыдущих системах. Он также позволяет получить доступ к API функции dotnet.

решение3

Я пробовал на сервере 2016 года и мне пришлось изменить строку, предоставленную @M.Dundley; конечно, без его ответа я не смог бы собрать свой.

Далее следует строка, которую я использовал tbimdsaв качестве примера:

disable-NetAdapterbinding -name "MyAdapter" -ComponentID tbimdsa

Я также доказал использование enable-NetAdapterbinding. Должен сказать, что это работает не во всех привязках или свойствах.

Связанный контент