利用WMI修改计算机网络设置
2007-12-20 18:02
781 查看
获取本机网卡
/**//// <summary>
/// 获取网卡列表
/// </summary>
public ArrayList GetAllNetCards()
...{
ArrayList myary = new ArrayList();
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
foreach (ManagementObject share in searcher.Get())
...{
if ((share["IPAddress"] != null))
...{
myary.Add(share["Description"].ToString());
}
}
return myary;
}
得到网卡信息
/**//// <summary>
/// 得到网卡信息
/// </summary>
/// <param name="description"></param>
public NetWorkSetingStruct GetNetCardConfiguraton(string description)
...{
NetWorkSetingStruct NWSS = new NetWorkSetingStruct();
if (description == null | description.Length == 0)
...{
return NWSS;
}
else
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Description="" + description + """);
foreach (ManagementObject share in searcher.Get())
...{
NWSS.IP = ((string[])share["IPAddress"])[0];
NWSS.SubNet = ((string[])share["IPSubnet"])[0];
NWSS.DefaultGateWay = ((string[])share["DefaultIPGateway"])[0];
NWSS.DHCPEnable = (bool)share["DHCPEnabled"];
int i;
for (i = 0; i <= ((string[])share["DNSServerSearchOrder"]).GetLength(0) - 1; i++)
...{
//txt_DNS.Text += ((string[])share["DNSServerSearchOrder"])[i] + "-";
NWSS.DNS = ((string[])share["DNSServerSearchOrder"])[i];
}
if (i >= 2)
...{
//this.txt_DNS.Foreground = "#FFFFFFFF";
}
else
...{
}
//this.txt_DNS.Text = this.txt_DNS.Text.Remove(this.txt_DNS.Text.Length - 1, 1);
//this.textBox5.Text = share["MACAddress"].ToString();
break;
}
}
return NWSS;
}
得到所有有打印机
/**//// <summary>
/// 得到所有有打印机
/// </summary>
/// <returns></returns>
public ArrayList GetAllPrinter()
...{
ArrayList myary = new ArrayList();
try
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
foreach (ManagementObject share in searcher.Get())
...{
string name = share["Name"].ToString();
myary.Add(name);
}
return myary;
}
catch
...{
throw new ApplicationException("检测到打印机服务[Print Spooler]未启动!");
}
//grv_Printer.DataSource = dt;
}
防火墙关闭开启
//需要引用 using NetFwTypeLib;VISTA下开启防火墙需要有管理员权限,但关闭防火墙还暂时无法实现
/**//// <summary>
/// XP防火墙关闭开启
/// </summary>
/// <param name="enable"></param>
public bool SetFireWall_XP(bool enable)
...{
INetFwMgr NetFwMgr;
INetFwProfile NetFwProfile;
//INetFwPolicy NetFwPolicy2;
try
...{
Type NetFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr");
object NetFwMgrObject = Activator.CreateInstance(NetFwMgrType);
NetFwMgr = (INetFwMgr)NetFwMgrObject;
NetFwProfile = NetFwMgr.LocalPolicy.CurrentProfile;
NetFwProfile.FirewallEnabled = enable;
return true;
}
catch (Exception e)
...{
throw new ApplicationException("无法设置防火墙." + e.Message);
return false;
}
}
得到IE代理
/**//// <summary>
/// 得到所有代理
/// </summary>
/// <returns></returns>
public ProxyStruct GetAllProxy()
...{
ProxyStruct PS = new ProxyStruct();
try
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Proxy");
foreach (ManagementObject share in searcher.Get())
...{
PS.ProxyIP = share["ProxyServer"].ToString();
PS.ProxyPort = share["ProxyPortNumber"].ToString();
}
}
catch (Exception ex)
...{
throw new ApplicationException("无法获取代理信息." + ex.Message);
}
return PS;
}
获取主页
/**//// <summary>
/// 得到主页
/// </summary>
/// <returns></returns>
public string GetHomePage()
...{
string startPageURL;
RegistryKey hklm = Registry.CurrentUser;
RegistryKey software = hklm.OpenSubKey("Software", false);
RegistryKey Microsoft = software.OpenSubKey("Microsoft", false);
RegistryKey InternetExplorer = Microsoft.OpenSubKey("Internet Explorer", false);
RegistryKey Main = InternetExplorer.OpenSubKey("Main");
startPageURL = Main.GetValue("Start Page").ToString();
return startPageURL;
}
设置主页
/**//// <summary>
/// 设置主页
/// </summary>
/// <param name="startPageURL"></param>
public void SetHomePage(string startPageURL)
...{
if (startPageURL != "")
...{
RegistryKey hklm = Registry.LocalMachine;
RegistryKey software = hklm.OpenSubKey("Software", false);
RegistryKey Microsoft = software.OpenSubKey("Microsoft", false);
RegistryKey InternetExplorer = Microsoft.OpenSubKey("Internet Explorer", false);
RegistryKey Main = InternetExplorer.OpenSubKey("Main", true);
Main.SetValue("Start Page", startPageURL);
hklm.Close();
software.Close();
Microsoft.Close();
InternetExplorer.Close();
Main.Close();
RegistryKey hkcu = Registry.CurrentUser;
RegistryKey software2 = hkcu.OpenSubKey("Software", false);
RegistryKey Microsoft2 = software2.OpenSubKey("Microsoft", false);
RegistryKey InternetExplorer2 = Microsoft2.OpenSubKey("Internet Explorer", false);
RegistryKey Main2 = InternetExplorer2.OpenSubKey("Main", true);
Main2.SetValue("Start Page", startPageURL);
hkcu.Close();
software2.Close();
Microsoft2.Close();
InternetExplorer2.Close();
Main2.Close();
}
}
设置IE代理
public void SetProxy_XP(ProxyStruct PS)
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Proxy");
foreach (ManagementObject share in searcher.Get())
...{
object[] obj = ...{ PS.ProxyIP, PS.ProxyPort };
share.InvokeMethod("SetProxySetting", obj);
//MessageBox.Show(" 设置成功!");
//MessageBox.Show(share.GetText(TextFormat.Mof));
}
}
public void SetNoProxy()
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Proxy");
foreach (ManagementObject share in searcher.Get())
...{
share.InvokeMethod("SetProxySetting", null);
//MessageBox.Show(" 设置成功!");
//MessageBox.Show(share.GetText(TextFormat.Mof));
}
}
手动设置网卡
/**//// <summary>
/// 手动设置网卡
/// </summary>
/// <param name="netCardName">网卡名称</param>
/// <param name="ip">IP地址</param>
/// <param name="subnet">子网掩码</param>
/// <param name="gateway">网关</param>
/// <param name="DNS">DNS</param>
public bool SetNetWork(string netCardName, string ip, string subnet, string gateway, string DNS)
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Description="" + netCardName + """);
long iResult = 0;
// 判断是否修改成功。如果成功,后面的三个方法返回值都是0,注意返回的值是 Uint32 类型。
foreach (ManagementObject share in searcher.Get())
...{
//Console.WriteLine(share.GetText(TextFormat.Mof));
if ((share["IPAddress"] != null))
...{
//set address
string[] ipAddresses = ...{ ip };
// IP 地址
string[] ipSubnetmask = ...{ subnet };
//掩码
object[] objpara = ...{ ipAddresses, ipSubnetmask };
object res = share.InvokeMethod("EnableStatic", objpara);
iResult += Convert.ToInt64(res);
string[] ipGateWay = ...{ gateway };
//网关
UInt16[] GatewayCostMetric = ...{ UInt16.Parse("1") };
object[] objpara1 = ...{ ipGateWay, GatewayCostMetric };
iResult += Convert.ToInt64(share.InvokeMethod("SetGateways", objpara1));
//set Dns Server Serach Order
// 多个dns 中间以减号分开
//if (DNS.IndexOf("-") > 0)
//{
// string[] dnsServers = DNS.Split('-');
// object[] objpara2 = { dnsServers };
// iResult += Convert.ToInt32(share.InvokeMethod("SetDNSServerSearchOrder", objpara2));
//}
//else
//{
string[] dnsServers = ...{ DNS };
object[] objpara2 = ...{ dnsServers };
iResult += Convert.ToInt64(share.InvokeMethod("SetDNSServerSearchOrder", objpara2));
//}
}
}
if (iResult == 0)
...{
return true;
}
else
...{
return false;
// MessageBox.Show("IP修改失败,检查输入的格式和您是否有权限");
}
}
设置默认打印机
/**//// <summary>
/// 设置默认打印机
/// </summary>
/// <param name="printerName"></param>
public void SetDefaultPrinter(string printerName)
...{
try
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
foreach (ManagementObject share in searcher.Get())
...{
if (share["Name"].ToString() == printerName)
...{
share.InvokeMethod("SetDefaultPrinter", null);
}
//MessageBox.Show(share.GetText(TextFormat.Mof));
}
}
catch
...{
throw new ApplicationException("无法设置为默认打印机.");
}
}
获取默认打印机
/**//// <summary>
/// 获取默认打印机
/// </summary>
/// <returns></returns>
public string GetDefaultPrinter()
...{
string printerName = "";
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
foreach (ManagementObject share in searcher.Get())
...{
if (share["Default"].ToString() == "True")
...{
printerName = share["Name"].ToString();
}
//MessageBox.Show(share.GetText(TextFormat.Mof));
}
return printerName;
}
动态获取DHCP
/**//// <summary>
/// 动态取DHCPEnabled
/// </summary>
public void SetDHCPEnable(bool isXP)
...{
ManagementBaseObject iObj = null;
ManagementBaseObject oObj = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc;
moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
...{
if (!(bool)mo["IPEnabled"]) continue;
if (!(bool)mo["DHCPEnabled"])
...{
if (isXP)
...{
//修改DNS改为自动获取
RegistryKey hklm = Registry.LocalMachine;
RegistryKey SYSTEM = hklm.OpenSubKey("SYSTEM", false);
RegistryKey CurrentControlSet = SYSTEM.OpenSubKey("CurrentControlSet", false);
RegistryKey Services = CurrentControlSet.OpenSubKey("Services", false);
RegistryKey Tcpip = Services.OpenSubKey("Tcpip", true);
RegistryKey Parameters = Tcpip.OpenSubKey("Parameters", true);
RegistryKey Adapters = Parameters.OpenSubKey("Adapters", true);
RegistryKey Interfaces = Parameters.OpenSubKey("Interfaces");
string[] subkeys = Adapters.GetSubKeyNames();
foreach (string str in subkeys)
...{
if (str.StartsWith("{"))
...{
RegistryKey curradpt = Interfaces.OpenSubKey(str, true);
string val = curradpt.GetValue("NameServer").ToString();
curradpt.SetValue("NameServer", "");
}
}
}
iObj = mo.GetMethodParameters("EnableDHCP");
oObj = mo.InvokeMethod("EnableDHCP", iObj, null);
//iObj = mo.GetMethodParameters("SetDynamicDNSRegistration");
//oObj = mo.InvokeMethod("SetDynamicDNSRegistration", iObj, null);
//iObj = mo.GetMethodParameters("RenewDHCPLeaseAll");
//oObj = mo.InvokeMethod("RenewDHCPLeaseAll", iObj, null);
}
else
...{
//iObj = mo.GetMethodParameters("ReleaseDHCPLeaseAll");
//oObj = mo.InvokeMethod("ReleaseDHCPLeaseAll", iObj, null);
//iObj = mo.GetMethodParameters("RenewDHCPLeaseAll");
//oObj = mo.InvokeMethod("RenewDHCPLeaseAll", iObj, null);
//iObj = mo.GetMethodParameters("RenewDHCPLease");
//oObj = mo.InvokeMethod("RenewDHCPLease", iObj, null);
}
}
}
代码太乱了,呵呵~VISTA下动态获取IP时会有问题,是微软的一个BUG,现在还没有发布补丁,可以设置成功,但在网卡IPV4中看却显示不正常(子网掩码与网关不正确),但在IPCONFIG中显示正常并可以成功访问网络.
在VISTA下防火墙无法关闭,注册表与INetFwMgr都无法关闭,不知道各位有什么好的办法.其它打印机与主页都可以正常修改.
IE代理服务器的WMI类在VISTA下已经删除,在MSDN上未找到其替代的类,暂时无法修改.
/**//// <summary>
/// 获取网卡列表
/// </summary>
public ArrayList GetAllNetCards()
...{
ArrayList myary = new ArrayList();
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
foreach (ManagementObject share in searcher.Get())
...{
if ((share["IPAddress"] != null))
...{
myary.Add(share["Description"].ToString());
}
}
return myary;
}
得到网卡信息
/**//// <summary>
/// 得到网卡信息
/// </summary>
/// <param name="description"></param>
public NetWorkSetingStruct GetNetCardConfiguraton(string description)
...{
NetWorkSetingStruct NWSS = new NetWorkSetingStruct();
if (description == null | description.Length == 0)
...{
return NWSS;
}
else
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Description="" + description + """);
foreach (ManagementObject share in searcher.Get())
...{
NWSS.IP = ((string[])share["IPAddress"])[0];
NWSS.SubNet = ((string[])share["IPSubnet"])[0];
NWSS.DefaultGateWay = ((string[])share["DefaultIPGateway"])[0];
NWSS.DHCPEnable = (bool)share["DHCPEnabled"];
int i;
for (i = 0; i <= ((string[])share["DNSServerSearchOrder"]).GetLength(0) - 1; i++)
...{
//txt_DNS.Text += ((string[])share["DNSServerSearchOrder"])[i] + "-";
NWSS.DNS = ((string[])share["DNSServerSearchOrder"])[i];
}
if (i >= 2)
...{
//this.txt_DNS.Foreground = "#FFFFFFFF";
}
else
...{
}
//this.txt_DNS.Text = this.txt_DNS.Text.Remove(this.txt_DNS.Text.Length - 1, 1);
//this.textBox5.Text = share["MACAddress"].ToString();
break;
}
}
return NWSS;
}
得到所有有打印机
/**//// <summary>
/// 得到所有有打印机
/// </summary>
/// <returns></returns>
public ArrayList GetAllPrinter()
...{
ArrayList myary = new ArrayList();
try
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
foreach (ManagementObject share in searcher.Get())
...{
string name = share["Name"].ToString();
myary.Add(name);
}
return myary;
}
catch
...{
throw new ApplicationException("检测到打印机服务[Print Spooler]未启动!");
}
//grv_Printer.DataSource = dt;
}
防火墙关闭开启
//需要引用 using NetFwTypeLib;VISTA下开启防火墙需要有管理员权限,但关闭防火墙还暂时无法实现
/**//// <summary>
/// XP防火墙关闭开启
/// </summary>
/// <param name="enable"></param>
public bool SetFireWall_XP(bool enable)
...{
INetFwMgr NetFwMgr;
INetFwProfile NetFwProfile;
//INetFwPolicy NetFwPolicy2;
try
...{
Type NetFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr");
object NetFwMgrObject = Activator.CreateInstance(NetFwMgrType);
NetFwMgr = (INetFwMgr)NetFwMgrObject;
NetFwProfile = NetFwMgr.LocalPolicy.CurrentProfile;
NetFwProfile.FirewallEnabled = enable;
return true;
}
catch (Exception e)
...{
throw new ApplicationException("无法设置防火墙." + e.Message);
return false;
}
}
得到IE代理
/**//// <summary>
/// 得到所有代理
/// </summary>
/// <returns></returns>
public ProxyStruct GetAllProxy()
...{
ProxyStruct PS = new ProxyStruct();
try
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Proxy");
foreach (ManagementObject share in searcher.Get())
...{
PS.ProxyIP = share["ProxyServer"].ToString();
PS.ProxyPort = share["ProxyPortNumber"].ToString();
}
}
catch (Exception ex)
...{
throw new ApplicationException("无法获取代理信息." + ex.Message);
}
return PS;
}
获取主页
/**//// <summary>
/// 得到主页
/// </summary>
/// <returns></returns>
public string GetHomePage()
...{
string startPageURL;
RegistryKey hklm = Registry.CurrentUser;
RegistryKey software = hklm.OpenSubKey("Software", false);
RegistryKey Microsoft = software.OpenSubKey("Microsoft", false);
RegistryKey InternetExplorer = Microsoft.OpenSubKey("Internet Explorer", false);
RegistryKey Main = InternetExplorer.OpenSubKey("Main");
startPageURL = Main.GetValue("Start Page").ToString();
return startPageURL;
}
设置主页
/**//// <summary>
/// 设置主页
/// </summary>
/// <param name="startPageURL"></param>
public void SetHomePage(string startPageURL)
...{
if (startPageURL != "")
...{
RegistryKey hklm = Registry.LocalMachine;
RegistryKey software = hklm.OpenSubKey("Software", false);
RegistryKey Microsoft = software.OpenSubKey("Microsoft", false);
RegistryKey InternetExplorer = Microsoft.OpenSubKey("Internet Explorer", false);
RegistryKey Main = InternetExplorer.OpenSubKey("Main", true);
Main.SetValue("Start Page", startPageURL);
hklm.Close();
software.Close();
Microsoft.Close();
InternetExplorer.Close();
Main.Close();
RegistryKey hkcu = Registry.CurrentUser;
RegistryKey software2 = hkcu.OpenSubKey("Software", false);
RegistryKey Microsoft2 = software2.OpenSubKey("Microsoft", false);
RegistryKey InternetExplorer2 = Microsoft2.OpenSubKey("Internet Explorer", false);
RegistryKey Main2 = InternetExplorer2.OpenSubKey("Main", true);
Main2.SetValue("Start Page", startPageURL);
hkcu.Close();
software2.Close();
Microsoft2.Close();
InternetExplorer2.Close();
Main2.Close();
}
}
设置IE代理
public void SetProxy_XP(ProxyStruct PS)
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Proxy");
foreach (ManagementObject share in searcher.Get())
...{
object[] obj = ...{ PS.ProxyIP, PS.ProxyPort };
share.InvokeMethod("SetProxySetting", obj);
//MessageBox.Show(" 设置成功!");
//MessageBox.Show(share.GetText(TextFormat.Mof));
}
}
public void SetNoProxy()
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Proxy");
foreach (ManagementObject share in searcher.Get())
...{
share.InvokeMethod("SetProxySetting", null);
//MessageBox.Show(" 设置成功!");
//MessageBox.Show(share.GetText(TextFormat.Mof));
}
}
手动设置网卡
/**//// <summary>
/// 手动设置网卡
/// </summary>
/// <param name="netCardName">网卡名称</param>
/// <param name="ip">IP地址</param>
/// <param name="subnet">子网掩码</param>
/// <param name="gateway">网关</param>
/// <param name="DNS">DNS</param>
public bool SetNetWork(string netCardName, string ip, string subnet, string gateway, string DNS)
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Description="" + netCardName + """);
long iResult = 0;
// 判断是否修改成功。如果成功,后面的三个方法返回值都是0,注意返回的值是 Uint32 类型。
foreach (ManagementObject share in searcher.Get())
...{
//Console.WriteLine(share.GetText(TextFormat.Mof));
if ((share["IPAddress"] != null))
...{
//set address
string[] ipAddresses = ...{ ip };
// IP 地址
string[] ipSubnetmask = ...{ subnet };
//掩码
object[] objpara = ...{ ipAddresses, ipSubnetmask };
object res = share.InvokeMethod("EnableStatic", objpara);
iResult += Convert.ToInt64(res);
string[] ipGateWay = ...{ gateway };
//网关
UInt16[] GatewayCostMetric = ...{ UInt16.Parse("1") };
object[] objpara1 = ...{ ipGateWay, GatewayCostMetric };
iResult += Convert.ToInt64(share.InvokeMethod("SetGateways", objpara1));
//set Dns Server Serach Order
// 多个dns 中间以减号分开
//if (DNS.IndexOf("-") > 0)
//{
// string[] dnsServers = DNS.Split('-');
// object[] objpara2 = { dnsServers };
// iResult += Convert.ToInt32(share.InvokeMethod("SetDNSServerSearchOrder", objpara2));
//}
//else
//{
string[] dnsServers = ...{ DNS };
object[] objpara2 = ...{ dnsServers };
iResult += Convert.ToInt64(share.InvokeMethod("SetDNSServerSearchOrder", objpara2));
//}
}
}
if (iResult == 0)
...{
return true;
}
else
...{
return false;
// MessageBox.Show("IP修改失败,检查输入的格式和您是否有权限");
}
}
设置默认打印机
/**//// <summary>
/// 设置默认打印机
/// </summary>
/// <param name="printerName"></param>
public void SetDefaultPrinter(string printerName)
...{
try
...{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
foreach (ManagementObject share in searcher.Get())
...{
if (share["Name"].ToString() == printerName)
...{
share.InvokeMethod("SetDefaultPrinter", null);
}
//MessageBox.Show(share.GetText(TextFormat.Mof));
}
}
catch
...{
throw new ApplicationException("无法设置为默认打印机.");
}
}
获取默认打印机
/**//// <summary>
/// 获取默认打印机
/// </summary>
/// <returns></returns>
public string GetDefaultPrinter()
...{
string printerName = "";
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
foreach (ManagementObject share in searcher.Get())
...{
if (share["Default"].ToString() == "True")
...{
printerName = share["Name"].ToString();
}
//MessageBox.Show(share.GetText(TextFormat.Mof));
}
return printerName;
}
动态获取DHCP
/**//// <summary>
/// 动态取DHCPEnabled
/// </summary>
public void SetDHCPEnable(bool isXP)
...{
ManagementBaseObject iObj = null;
ManagementBaseObject oObj = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc;
moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
...{
if (!(bool)mo["IPEnabled"]) continue;
if (!(bool)mo["DHCPEnabled"])
...{
if (isXP)
...{
//修改DNS改为自动获取
RegistryKey hklm = Registry.LocalMachine;
RegistryKey SYSTEM = hklm.OpenSubKey("SYSTEM", false);
RegistryKey CurrentControlSet = SYSTEM.OpenSubKey("CurrentControlSet", false);
RegistryKey Services = CurrentControlSet.OpenSubKey("Services", false);
RegistryKey Tcpip = Services.OpenSubKey("Tcpip", true);
RegistryKey Parameters = Tcpip.OpenSubKey("Parameters", true);
RegistryKey Adapters = Parameters.OpenSubKey("Adapters", true);
RegistryKey Interfaces = Parameters.OpenSubKey("Interfaces");
string[] subkeys = Adapters.GetSubKeyNames();
foreach (string str in subkeys)
...{
if (str.StartsWith("{"))
...{
RegistryKey curradpt = Interfaces.OpenSubKey(str, true);
string val = curradpt.GetValue("NameServer").ToString();
curradpt.SetValue("NameServer", "");
}
}
}
iObj = mo.GetMethodParameters("EnableDHCP");
oObj = mo.InvokeMethod("EnableDHCP", iObj, null);
//iObj = mo.GetMethodParameters("SetDynamicDNSRegistration");
//oObj = mo.InvokeMethod("SetDynamicDNSRegistration", iObj, null);
//iObj = mo.GetMethodParameters("RenewDHCPLeaseAll");
//oObj = mo.InvokeMethod("RenewDHCPLeaseAll", iObj, null);
}
else
...{
//iObj = mo.GetMethodParameters("ReleaseDHCPLeaseAll");
//oObj = mo.InvokeMethod("ReleaseDHCPLeaseAll", iObj, null);
//iObj = mo.GetMethodParameters("RenewDHCPLeaseAll");
//oObj = mo.InvokeMethod("RenewDHCPLeaseAll", iObj, null);
//iObj = mo.GetMethodParameters("RenewDHCPLease");
//oObj = mo.InvokeMethod("RenewDHCPLease", iObj, null);
}
}
}
代码太乱了,呵呵~VISTA下动态获取IP时会有问题,是微软的一个BUG,现在还没有发布补丁,可以设置成功,但在网卡IPV4中看却显示不正常(子网掩码与网关不正确),但在IPCONFIG中显示正常并可以成功访问网络.
在VISTA下防火墙无法关闭,注册表与INetFwMgr都无法关闭,不知道各位有什么好的办法.其它打印机与主页都可以正常修改.
IE代理服务器的WMI类在VISTA下已经删除,在MSDN上未找到其替代的类,暂时无法修改.
相关文章推荐
- 利用 WMI 修改计算机的网络设置
- 利用 WMI 修改计算机的网络设置
- 利用 WMI 修改计算机的网络设置
- 利用 WMI 修改计算机的网络设置
- 利用 WMI 修改计算机的网络设置
- 利用 WMI 修改计算机的网络设置
- 利用 WMI 修改计算机的网络设置
- 利用WMI获取和更新网络设置(VBS脚本)
- 【计算机网络常见面试题】利用IP地址和子网掩码求网络号和主机号
- CentOS 网络设置修改
- 利用AFN实时监测网络状态以及设置请求超时时间
- CentOS 5.5 里面怎么修改IP地址DNS服务器等网络设置?
- 利用VBA从网络获取时间来校准计算机时间
- 利用VMware虚拟机安装centos7,关于网络问题设置
- 利用WMI修改本机Gateway,DNS
- Fiddler学习_模拟网络限速+设置接口404+地址替换+修改返回数据
- 利用Windows重定向器实现对网络计算机的读写
- CentOS 网络设置修改 指定IP地址 DNS 网关(转)
- CentOS 网络设置的修改
- windows7用于网络的保存在该计算机上的设置与网络要求不匹配?