我即将编写一个简单的networkingconfiguration工具,可以静态设置IP地址等,也可以通过WMI自动设置(DHCP)。
不幸的是,设置地址静态工作只是一次! 所以当你运行下面的testing函数时,一切都很完美(不要忘记// DYNAMIC的断点!)。 但在第二次,当您检查networking适配器的IP地址和子网掩码的控制面板的属性页中的结果保持空! 当然,没有抛出exception,并且方法调用的结果总是为零(0)。 代码在两台不同的Windows 7机器上进行了testing,当然还有pipe理员。
void test() { // find management object ManagementClass networkManagementClass = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection networkManagement = networkManagementClass.GetInstances(); ManagementObject adapter = null; foreach (ManagementObject mo in networkManagement) { if ((bool)mo["IPEnabled"] && (string)mo["Caption"] == "[00000012] Intel(R) 82577LM Gigabit Network Connection") { adapter = mo; break; } } // STATIC var val = adapter.InvokeMethod("EnableStatic",new object[] { new string[] { "192.168.1.99" },new string[] { "255.255.255.0" } }); val = adapter.InvokeMethod("SetGateways",new object[] { new string[] { "192.168.1.254" },new UInt16[] { 1 } }); val = adapter.InvokeMethod("SetDNSServerSearchOrder",new object[] { new string[] { "192.168.1.254" } }); // DYNAMIC adapter.InvokeMethod("SetDNSServerSearchOrder",new object[] { new string[0] }); adapter.InvokeMethod("EnableDHCP",new object[] { }); }
如何获取.Net中Windows文件系统path的所有有效文件夹和文件字符的列表
任何工具来分析wmv文件格式?
如何显示RDLC字段中的本地系统date格式
如何在.NET中确定我的Monitor的真实像素大小?
System.Net.sockets – 定义一个超时? (C#)
Windows似乎失去了.NET应用程序的踪迹
获取计算机上安装的所有驱动程序
为什么一个VS2010的Windows应用程序无法在一台Win7 PC上的WinXP虚拟机(32位和64位)上安装,而不能安装在不同的Win7 PC上?
从.NET的Windows服务启动一个进程
我的C#Windows应用程序如何在不进行轮询的情况下收到networking状态变化的通知?
最后,我想出了一个解决方法(我猜)Windows错误:正确的值填入注册表直接,并在WMI调用之前:
// workaround of windows bug (windows refused to apply static ip in network properties dialog) var settingID = adapter.GetPropertyValue("SettingID"); // adapter = the management object using (var regKey = Registry.LocalMachine.OpenSubKey(@"SYstemCurrentControlSetservicesTcpipParametersInterfaces" + settingID,true)) { regKey.SetValue("EnableDHCP",0); regKey.SetValue("IPAddress",networkState.IPAddress,RegistryValueKind.MultiString); regKey.SetValue("subnetMask",networkState.subnetMask,RegistryValueKind.MultiString); }
对我来说就像一个魅力。 玩的开心 :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。