我需要编写一些Windows Server 2008 R2版本的脚本,最好是在PowerShell中。我需要在特定NIC(每次都使用相同的NIC)上禁用或取消选中IPV6。目前,我必须手动设置它。我不想完全禁用整个服务器的IPV6,以后可能会使用其他东西。我可以在PowerShell命令中引用一个对象来指定我的NIC“Intel(R)PRO / 1000 MT网络连接”并禁用IPV6吗?不幸的是,老板说组策略不是一个选择。我已尝试通过“PowerShell Scriptomatic”找到合适的WMI对象,但未能找到Intel NIC上已启用设置与已禁用设置之间的区别。提前谢谢。
答案 0 :(得分:5)
Microsoft有一个命令行程序nvspbind(https://gallery.technet.microsoft.com/Hyper-V-Network-VSP-Bind-cf937850),可以在特定接口上禁用ipv6。它似乎与在适配器设置对话框中取消选中IPv6框相同。您可以从脚本或程序启动此程序。
在特定接口上禁用IPv6的命令行参数是:
nvspbind -d {GUID} ms_tcpip6
答案 1 :(得分:1)
首先在删除IPV6之前,请阅读这些Microsoft文章:
How to disable IP version 6 (IPv6)
What are Microsoft's recommendations about disabling IPv6?
总之,您可以使用(详细说明here)在所有接口上禁用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
答案 2 :(得分:-2)
我使用简单的.bat文件和“netsh”命令。如果您愿意,您当然可以将“netsh”与Powershell一起使用。