Мне нужно придумать способ автоматизировать отключение определенных сетевых протоколов определенных сетевых адаптеров. Я знаю, что могу открыть окно и снять отметки с различных протоколов, таких как «Протокол Интернета версии 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
. Должен сказать, что это работает не во всех привязках или свойствах.