Отключить IPV6 на определенном сетевом адаптере через PowerShell, используя объект Com в Windows Server 2008 R2? - PullRequest
3 голосов
/ 24 марта 2012

Мне нужно написать скрипт для некоторых сборок Windows Server 2008 R2, желательно в PowerShell. Мне нужно отключить или снять флажок IPV6 на определенном NIC (каждый раз один и тот же NIC). В настоящее время я должен установить его вручную. Я не хочу полностью отключать IPV6 для всего сервера, другие вещи могут использовать это в будущем. Есть ли какой-либо объект, на который я могу ссылаться в команде PowerShell с указанием моей сетевой карты «Сетевое подключение Intel (R) PRO / 1000 MT» »и отключить IPV6? К сожалению, групповая политика не вариант, говорит начальник. Я попытался найти подходящий объект WMI через «PowerShell Scriptomatic», но не смог найти разницу между включенным параметром и отключенным на Intel NIC. Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 13 июля 2012

В Microsoft есть программа командной строки nvspbind (https://gallery.technet.microsoft.com/Hyper-V-Network-VSP-Bind-cf937850),, которая может отключить ipv6 на определенном интерфейсе. Кажется, что это идентично снятию флажка IPv6 в диалоговом окне настроек адаптера.ваша программа.

Аргументы командной строки для отключения IPv6 на определенном интерфейсе:

nvspbind -d {GUID} ms_tcpip6
1 голос
/ 25 марта 2012

Прежде чем удалять IPV6, лучше прочитать следующие статьи Microsoft:

Как отключить IP версии 6 (IPv6)

Каковы рекомендации Microsoft по отключению IPv6?

В итоге вы можете отключить IPV6 на всех интерфейсах, используя (подробное объяснение здесь ):

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters]
“DisabledComponents”=dword:ffffffff

Отредактировано

Согласно комментарию @David Brabant к desable IPV6 только на одном адаптере, вы можете привязать или отменить привязку с помощью ключа реестра:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip6\Linkage]
"Bind"=RegmultiSZ

формы:

\Device\{DBB82A20-A485-4CB6-AD31-EF14B91F5EFB}

Вы можете построить эту строку с помощью:

# Public Name NetworkCard Name
$networkCardName = "Connexion au réseau local 1"

# Get Device GUID
$guid=(gwmi -query "select * from win32_networkadapter where netconnectionid= '$networkCardName'").guid
0 голосов
/ 24 марта 2012

Я использую простые .bat файлы с командой "netsh".Вы можете использовать «netsh» с Powershell, если хотите.

...