Моя проблема похожа на ту, которая описана в https://serverfault.com/questions/257118/how-to-disable-ipv6-on-a-particular-network-interface-using-server-core - только в Windows 7. Поначалу ответы казались полезными, но не вполне удовлетворительными для меня. Я думаю, что чего-то не хватает.
Я хочу отсоединить IPv6 от сетевых адаптеров vmware программного обеспечения vmware Player, так как это вызывает проблемы с некоторыми из наших продуктов. Отключение IPv6 для всей системы - это то, чего я не смею делать. Я хочу выполнить привязку IPv6 к конкретному адаптеру при установке нашего продукта на ПК клиента, поэтому просто отключить свойство щелчком мыши не удастся.
Я читаю GUID сетевых адаптеров, проверяя подключи HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
. Если я нахожу подключ vmnet, вероятно, путем поиска подходящего ComponentId (например, «* vmnetadapter1»), я читаю значение NetCfgInstanceId
чтобы получить GUID адаптера.
Затем я удаляю строки с этим GUID из HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Linkage
-values Bind
, Export
и Route
.
Ответы на вышеупомянутый вопрос говорили только о ключе Bind
, но я сравнил реестр до и после снятия отметки с записи протокола IPv6 в настройках адаптера в пользовательском интерфейсе и обнаружил, что другие значения также изменились. Я также заметил, что в подразделе vmnet, о котором я упоминал ранее, изменилось значение UpperBind
- строка Tcpip6
была удалена. Я тоже так сделал.
Я надеялся, что, изменив эти 4 значения реестра, в следующий раз, когда я открою настройки адаптера, я обнаружу, что запись протокола IPv6 не проверена. Я не. Я даже пытался создать ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\NetCfgLockHolder
перед моими изменениями и впоследствии удалить его - точно так же, как это происходит, когда я снимаю отметку с записи в пользовательском интерфейсе. Все еще не работает. Перезапуск Windows тоже ничего не изменил.
Другое значение реестра, которое изменяется при снятии флажка вручную, - это HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\Config
. Но это значение REG_BINARY для меня непостижимо, поэтому я не знаю, стоит ли мне менять это значение, если бы я мог.
Что мне не хватает? Это один странный ключ, который я должен был изменить в любом случае? Нужно ли заставлять систему перечитывать реестр как-нибудь?
Или неправильный подход к реестру? Я не зашел слишком далеко с подходом PowerShell Disable-NetworkadapterBinding
, потому что Win7 не предоставляет эту функцию. "Неофициальный" инструмент Microsoft «Hyper-V Network VSP Bind (nvspbind)» фактически снял этот флажок, но его Лицензия запрещает публикацию и «Вы можете устанавливать и использовать (...) для своего использования только с Windows Server 2008 Hyper- V ... »(нет Win7).
Если я написал что-то неясное, пожалуйста, прокомментируйте, и я постараюсь улучшить это. Спасибо @ BlueCompute за упоминание о том, что это не привязывает, а не отключает; это приводит к лучшим результатам поиска.