【发布时间】:2016-12-07 13:21:05
【问题描述】:
如何以编程方式为给定接口启用 IPv6?可以是 netsh、WMI 或任何可以从 C# 程序调用的东西。相当于点击界面属性中的复选框。
【问题讨论】:
如何以编程方式为给定接口启用 IPv6?可以是 netsh、WMI 或任何可以从 C# 程序调用的东西。相当于点击界面属性中的复选框。
【问题讨论】:
这工作(Windows 8+):
static void SetIPv6State(Guid interfaceId, bool state)
{
var scope = new ManagementScope("\\\\.\\ROOT\\StandardCimv2");
var query = new ObjectQuery("SELECT * FROM MSFT_NetAdapterBindingSettingData");
var methodName = state ? "Enable" : "Disable";
using (var searcher = new ManagementObjectSearcher(scope, query))
using (var bindings = searcher.Get())
{
var binding = bindings.Cast<ManagementObject>().Single(obj => (string)obj["InstanceID"] == interfaceId.ToString("B").ToUpper() + "::ms_tcpip6");
var parameters = binding.GetMethodParameters(methodName);
binding.InvokeMethod(methodName, parameters, new InvokeMethodOptions());
}
}
Windows 7 需要 C++ 代码。
【讨论】: