编程使用WMI 控制连接属性

转载 2004年09月10日 13:28:00
 

using System;
using System.Management;

namespace ArLi.CommonPrj {
 public class ChangeIP {

  /// <summary>
  /// Build of ArLi 2003.6.3
  /// </summary>
  public static readonly System.Version myVersion = new System.Version(1,1);

  private ManagementBaseObject iObj = null;
  private ManagementBaseObject oObj = null;
  private ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
  private readonly ManagementObjectCollection moc;

  /// <summary>
  /// 例:
  /// <code>
  /// ArLi.CommonPrj.ChangeIP o = new ArLi.CommonPrj.ChangeIP();
  /// string[] ipList = new string[]{"192.168.0.253","192.168.0.250"};
  /// string[] subnetList = new string[]{"255.255.255.0","255.255.255.0"};
  /// o.ChangeTo(ipList,subnetList);
  /// </code>
  /// </summary>
  public ChangeIP(){
   moc = mc.GetInstances(); 
  }
  
  /// <summary>控制连接</summary>
  /// <param name="ipAddr">IP地址列表</param>
  /// <param name="subnetMask">对应子网掩码列表</param>
  public void ChangeTo(string[] ipAddr,string[] subnetMask) {
   foreach(ManagementObject mo in moc) {
    if(! (bool) mo["IPEnabled"]) continue;

    iObj = mo.GetMethodParameters( "EnableStatic" );
    iObj["IPAddress"] = ipAddr;
    iObj["SubnetMask"] = subnetMask;
    oObj = mo.InvokeMethod("EnableStatic", iObj, null);
   }
  }

  /// <summary>控制连接</summary>
  /// <param name="ipAddr">IP地址列表</param>
  /// <param name="subnetMask">对应子网掩码列表</param>
  /// <param name="gateways">网关列表</param>
  /// <param name="gatewayCostMetric">网关接口跃点数列表</param>
  public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric) {
   foreach(ManagementObject mo in moc) {
    if(! (bool) mo["IPEnabled"]) continue;

    iObj = mo.GetMethodParameters("EnableStatic");
    iObj["IPAddress"] = ipAddr;
    iObj["SubnetMask"] = subnetMask;
    oObj = mo.InvokeMethod("EnableStatic", iObj, null);

    iObj = mo.GetMethodParameters("SetGateways");
    iObj["DefaultIPGateway"] = gateways;
    iObj["GatewayCostMetric"] = gatewayCostMetric;
    oObj = mo.InvokeMethod("SetGateways", iObj, null);
   }
  }

  /// <summary>控制连接</summary>
  /// <param name="ipAddr">IP地址列表</param>
  /// <param name="subnetMask">对应子网掩码列表</param>
  /// <param name="gateways">网关列表</param>
  /// <param name="gatewayCostMetric">网关接口跃点数列表</param>
  /// <param name="dnsServer">DNS 服务器列表</param>
  public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric, string[] dnsServer) {
   foreach(ManagementObject mo in moc) {
    if(! (bool) mo["IPEnabled"]) continue;

    iObj = mo.GetMethodParameters("EnableStatic");
    iObj["IPAddress"] = ipAddr;
    iObj["SubnetMask"] = subnetMask;
    oObj = mo.InvokeMethod("EnableStatic", iObj, null);

    iObj = mo.GetMethodParameters("SetGateways");
    iObj["DefaultIPGateway"] = gateways;
    iObj["GatewayCostMetric"] = gatewayCostMetric;
    oObj = mo.InvokeMethod("SetGateways", iObj, null);

    iObj = mo.GetMethodParameters("SetDNSServerSearchOrder");
    iObj["DNSServerSearchOrder"] = dnsServer;
    oObj = mo.InvokeMethod("SetDNSServerSearchOrder", iObj, null);
   }
  }

  /// <summary>控制连接,使它使用 DHCP</summary>
  public void EnableDHCP() {
   foreach(ManagementObject mo in moc) {
    if(! (bool) mo["IPEnabled"]) continue;

    if(! (bool)mo["DHCPEnabled"]) {
     iObj = mo.GetMethodParameters("EnableDHCP");
     oObj = mo.InvokeMethod("EnableDHCP", iObj, null);
    }
   }
  }
 }
}

100%纯java调用windows的wmi获取监控数据

转:http://my.oschina.net/noahxiao/blog/73163 纯java主要体现在可以跨平台调用com。所用的是j-Interop,它是100%纯java实现的com的...
  • u013578413
  • u013578413
  • 2014年07月21日 15:32
  • 1343

WMI 远程连接问题解决方法

原文:http://dragon0704.spaces.live.com/blog/cns!732dddd1803acb26!342.entry   由于需要用取得远程计算机的信息,采用了WMI的...
  • hxh129
  • hxh129
  • 2013年04月03日 16:22
  • 1768

Linux环境下如何通过WMI对windows进行监控

从事监控行业已经2年多了,以前忙的时候没时间查linux下如何进行win对windows的监控,前段时间由于需求必须完成,才发现网上挺多这方面的资料,自己测试了下。完全可以搞定,不过也还是有些问题,w...
  • wqiancangq
  • wqiancangq
  • 2017年01月16日 16:11
  • 1272

windows不能显示此连接属性。windows management instrumentation (WMI) 信息可能损坏

Windows Management Instrumentation (WMI)信息可能损坏错误修复 在 查看“本地连接”的属性,并切换到“高级”选项卡后,提示:“Windows不能显示此连接的属性...
  • WQ453237747
  • WQ453237747
  • 2013年12月06日 10:16
  • 1876

如何使用WMI查询显示设备信息编程小程序

  • 2010年03月13日 20:56
  • 2.23MB
  • 下载

如何使用WMI条件查询系统服务编程小程序

  • 2010年03月13日 21:38
  • 2.23MB
  • 下载

基于visual c++之windows核心编程代码分析(52)使用WMI 获取进程启动参数

WMI,是Windows 2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件。WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Informati...
  • yincheng01
  • yincheng01
  • 2012年01月24日 00:39
  • 3705

如何使用WMI查询驱动设备信息编程小程序,

  • 2010年03月13日 21:36
  • 2.23MB
  • 下载

使用j-Interop实现java连接wmi获取windows系统信息的例子

  • 2014年04月25日 15:58
  • 827KB
  • 下载

无法连接到WMI提供程序。你没有权限或者该服务器无法访问。请注意你只能使用SQL SERVER 配置管理器来管理sql server 2005服务器

几天没使用数据库,今天打开
  • ItJavawfc
  • ItJavawfc
  • 2014年05月27日 13:59
  • 1411
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程使用WMI 控制连接属性
举报原因:
原因补充:

(最多只允许输入30个字)