一、利用WMI获取 远程计算机硬盘数据,先引入"System.Management.dll"文件。

   /// <summary>
        /// 获取存储服务器硬盘信息。
        /// </summary>
        /// <returns></returns>
        public Dictionary<string, string> GetDiskInfo()
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            double free = 0;
            double used = 0;
            double total = 0;
            string name = string.Empty;
            //1024*1024*1024
            long GB = 1024 * 1024 * 1024;
            //设定生成的WMI所需的所有设置
            System.Management.ConnectionOptions Conn = new ConnectionOptions();
            //设定用于WMI连接操作的用户名
            Conn.Username = "Administrator";
            //设定用户的口令
            Conn.Password = "password";

string IPaddress = "172.16.5.214";  //远程存储的IP
            //设定用于执行WMI操作的范围
            System.Management.ManagementScope Ms = new ManagementScope("\\\\" + IPaddress + "\\root\\cimv2", Conn);
            try
            {
                //连接到实际操作的WMI范围
                Ms.Connect();
                //设定通过WMI要查询的内容
                ObjectQuery Query = new ObjectQuery("select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3");
                //ObjectQuery Query = new ObjectQuery("select * from Win32_LogicalDisk where deviceid='C:'");
                
                //WQL语句,设定的WMI查询内容和WMI的操作范围,检索WMI对象集合
                ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Ms, Query);

       //----ManagementObjectSearcher managerSearch = new ManagementObjectSearcher(wqlObjectQuery);//获取本地磁盘--------
                //异步调用WMI查询
                ManagementObjectCollection ReturnCollection = Searcher.Get();
                //通过对产生的WMI的实例集合进行检索,获得硬盘信息
                foreach (ManagementObject Return in ReturnCollection)
                {
                    //注意盘符要有:号
                    string deviceid = "D:";
                    if (Return["Name"].ToString() == deviceid)
                    {
                        name = "磁盘名称:" + Return["Name"].ToString();
                        //硬盘的可用空间
                        free = Convert.ToDouble(Return["FreeSpace"]) / GB;
                        //硬盘的已用空间
                        used = (Convert.ToDouble(Return["Size"]) - Convert.ToDouble(Return["FreeSpace"])) / GB;
                        //硬盘的总空间
                        total = Convert.ToDouble(Return["Size"]) / GB;
                    }
                   
                }
            }
            catch (Exception ee)
            {
                log.Error(ee.StackTrace);
                log.Error(ee.Message);
            }
            dic.Add("Name",name.ToString());
            dic.Add("Size", total.ToString("F1"));
            dic.Add("Used", used.ToString("F1"));
            dic.Add("FreeSpace", free.ToString("F1"));

return dic;
        }

二、获得远程计算机的其他数据

//网络        Query = new System.Management.ObjectQuery("Select IODataBytesPerSec from Win32_PerfRawData_PerfProc_Process");

//CPU        Query = new System.Management.ObjectQuery("select LoadPercentage from Win32_Processor ");

//总内存     Query = new System.Management.ObjectQuery("Select TotalVisibleMemorySize from Win32_OperatingSystem");

//可用内存  Query = new System.Management.ObjectQuery("Select FreePhysicalMemory from Win32_OperatingSystem");

C#利用WMI获取 远程计算机硬盘数据的更多相关文章

  1. Windows系统中使用WMI获取远程服务器的信息

    使用WMI获取远程服务器的状态 我做的项目里边主要包含两个内容: (1)对发布在服务器上的服务(IIS服务.WCF服务)是否可以正常访问: (2)获取服务器上的部分指标:如CPU.内存.磁盘空间信息等 ...

  2. 006. C#使用WMI操作远程计算机

    1. 使用WMI CIM studio 查看\root\CIMV2 所有可使用的表/字段(类/属性) , 点击下载 WMI CIM studio 2. 安装完成后打开VMI CIM studio

  3. 利用ajax获取网页表单数据,并存储到数据库之一(使用JDBC)

    所谓JDBC就是利用java与数据库相连接的技术,从数据库获取既有的信息或者把网页上的信息存储到数据库. 这里简单的介绍公司的一个小项目中的一部分,由于代码较多,所以用图片形式进行展示.源码请查看源码 ...

  4. 用wxpy管理微信公众号,并利用微信获取自己的开源数据。

    之前了解到itchat 乃至于 wxpy时 是利用tuling聊天机器人的接口.调用接口并保存双方的问答结果可以作为自己的问答词库的一个数据库累计.这些数据可以用于自己训练. 而最近希望获取一些语音资 ...

  5. 利用ajax获取网页表单数据,并存储到数据库之二(使用SSH)

    上篇介绍了如何使用JDBC链接ORACLE数据库实现对数据库的增删改查,本例是使用框架SSH来对数据库的数据进行操作. 首先说框架,现在流行的框架很多,如Struts.Hibernate.Spring ...

  6. WMI 连接远程计算机并进行局域网进程扫描

    On Error Resume Next Dim myArray(231) myArray(0)="smss.exe"myArray(1)="csrss.exe" ...

  7. [翻译]利用C#获取终端服务(Terminal Services)会话的闲置时间

    [翻译]利用C#获取终端服务(Terminal Services)会话的闲置时间 作者:Tuuzed(土仔)   发表于:2008年2月29日版权声明:可以任意转载,转载时请务必以超链接形式标明文章原 ...

  8. ftp获取远程Pdf文件

    此程序需要安装ftp服务器,安装adobe reader(我这里使用的adobe reader9.0) 1.部署ftp服务器 将ftp的权限设置为允许匿名访问,部署完成 2.安装adobe reade ...

  9. Linux中Curl命令couldn't connect to host解决方案 php操作Curl(http,https)无法获取远程数据解决方案

    本人在做百度账户第三方登录接口,获取百度token,利用php操作curl post方式发送请求token,出现couldn't connect to host错误.经过调试测试,最后终于成功.回头写 ...

随机推荐

  1. 系列文章--WCF后传学习文章

    WCF后传系列(10):消息处理功能核心 摘要: WCF是一个通信框架,同时也可以将它看成是一个消息处理或者传递的基础框架,它可以接收消息.对消息做处理,或者根据客户端给定的数据构造消息并将消息发送到 ...

  2. 调用 SSPI 失败,请参见内部异常 解决方法

    2017-11-12 12:49:53:706] OnServerConnectionAvailable error : System.Security.Authentication.Authenti ...

  3. Base64加密算法

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RFC2049,上面有MIME的详细规范. Ba ...

  4. Mysql 拿指定经纬度与数据库多条经纬度进行距离计算 (转)

    公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2* ...

  5. 基于ThinkPHP的开发笔记3-登录功能(转)

    1.前台登录用的form ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <for ...

  6. dpkg安装工具

    dpkg --info "软件包名" --列出软件包解包后的包名称. dpkg -l --列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa) ...

  7. ubuntu crontab 不执行的解决方法

    在脚本文件的第二行添加下面一句即可 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 下面是分析解决问题的步骤: 1. ...

  8. java的错误代码。。。。

    总结:从键盘输入一组数,输出其最大值,这段代码是错的,因为每次都错在这里,所以自己还是没有理解~~~~ import java.util.Scanner; //键盘输入一组数据,并输出最小值 //从键 ...

  9. java中输入3个数,从大到小的输出。。。。

    总结:我暂时不能理解,C语言时讲过,java里就不理解了 package com.a; import java.sql.Date; import java.util.Scanner; //输入三个数, ...

  10. PHP5.3.8连接Sql Server SQLSRV30

    PHP5.3连接SQL Server就不能用php_mssql.dll了. 网上下载了好多都不行,因为它的版本是5.2的,不能再PHP5.3中使用. 后来听说微软专门为PHP出了自己的dll. 叫做M ...