使用WMI得到计算机的信息

WMI是一项行业推荐规范,旨在为访问企业环境中的管理信息而开发一种标准化技术。该信息包括系统内存的状态、当前安装的客户应用程序清单,以及有关客户端状态的其他数据。
WMI是可伸缩的系统管理结构,该规范采用一个统一、基于标准且可扩展的面向对象接口。它提供与系统管理员信息和基础WMI API交互的标准方法,主要由系统管理应用程序开发人员和系统管理员用来访问和操作系统管理信息。
WMI可用来生成组织和管理系统信息的工具,使系统管理人员能够更密切的监视系统活动。
WMI提供了一套内置在Microsoft Windows操作系统中的丰富的系统管理服务,现在有大量的应用程序、服务和设备用其为信息技术操作和产品支持组织提供全方位的管理功能。基于WMI的管理系统的使用带来了更可靠的计算环境和更高的系统可靠性,从而节省了企业的开销。
WMI提供的大量的规范为许多高端应用程序,例如Microsoft Exchange、Microsoft SQL Server和Microsoft Internet信息服务(IIS)等实现如下管理任务。
1. 监视应用程序的运行情况
2.  检测瓶颈或故障
3.  管理和配置应用程序
4.  查询应用程序数据(使用对象关系的遍历和查询)
5.  执行无缝的本地或远程管理操作
 
下面我们通过一个例子来说明WMI的强大功能。以vb6为列:
引用”Microsoft WMI Scripting V1.1 Library”
代码如下:
Option Explicit
Dim WithEvents Sink As SWbemSink
Dim j As Integer
'功能:利用wmi组件得到计算机的信息,每一个小功能分开写,便于大家查阅
 
Private Sub cmdDone_Click()
Dim oWMINameSpace As SWbemServices
Dim oLogicalDiskSet As SWbemObjectSet
Dim oLogicalDisk As SWbemObject
 
Dim ObjSet As Variant
Dim sDrive As String
Dim sValue As String
Dim dblSize As Double
Dim Obj As Variant
 
Dim lIndex As Long
 
Set oWMINameSpace = GetObject("winmgmts:")
 
'得到驱动器的信息
On Error Resume Next
Set ObjSet = oWMINameSpace.InstancesOf("Win32_DiskDrive")
 
For Each Obj In ObjSet
  List5.AddItem Obj.Caption & " - " & BytesToMegabytes(Obj.Size) & " GB"
Next
 
 
'得到每一个驱动器的详细信息
On Error GoTo ErrorHandler
'Set oWMINameSpace = GetObject("winmgmts:")
Set oLogicalDiskSet = oWMINameSpace.InstancesOf("Win32_LogicalDisk")
For Each oLogicalDisk In oLogicalDiskSet
    On Error Resume Next
  
    sDrive = oLogicalDisk.deviceid
   
    ListView1.ListItems.Add , , sDrive
    lIndex = ListView1.ListItems.Count
   
    sValue = oLogicalDisk.Description & ""
    ListView1.ListItems(lIndex).SubItems(1) = sValue
 
    sValue = oLogicalDisk.FileSystem & ""
    ListView1.ListItems(lIndex).SubItems(2) = sValue
   
    sValue = oLogicalDisk.VolumeName & ""
    ListView1.ListItems(lIndex).SubItems(3) = sValue
   
    sValue = oLogicalDisk.VolumeSerialNumber & ""
    ListView1.ListItems(lIndex).SubItems(4) = sValue
   
    sValue = oLogicalDisk.Size & ""
    If IsNumeric(sValue) Then
        dblSize = BytesToMegabytes(CDbl(sValue))
        sValue = CStr(dblSize) & " MB"
    End If
   
    ListView1.ListItems(lIndex).SubItems(5) = sValue
Next
   
 
 
CleanUp:
Set oLogicalDisk = Nothing
Set oLogicalDiskSet = Nothing
Set oWMINameSpace = Nothing
Exit Sub
 
ErrorHandler:
MsgBox "" & Err.Description
 
GoTo CleanUp
 
End Sub
 
Private Sub Command1_Click()
Unload Me
End Sub
 
Private Function BytesToMegabytes(Bytes As Double) As Double
  Dim dblAns As Double
  dblAns = (Bytes / 1024) / 1024
  BytesToMegabytes = Format(dblAns, "###,###,##0.00")
End Function
 
Private Sub Command2_Click()
Dim oWMINameSpace As SWbemServices
Dim SystemSet As Variant
Dim System As Variant
Dim ObjSet As Variant
Dim Obj As Variant
 
 
Set oWMINameSpace = GetObject("winmgmts:")
'操作系统
Set SystemSet = oWMINameSpace.InstancesOf("Win32_OperatingSystem")
 
For Each System In SystemSet
    List1.AddItem System.Caption
    List1.AddItem System.Manufacturer
    List1.AddItem System.BuildType & “”  ‘Win9x下好像取不出来
    List1.AddItem System.Version
    List1.AddItem System.SerialNumber
Next
'cpu
Set ObjSet = oWMINameSpace.InstancesOf("Win32_Processor")
 
For Each Obj In ObjSet
    List2.AddItem Obj.Caption
    List2.AddItem Obj.currentclockspeed & " Mhz"
Next
 
End Sub
 
Private Sub Command3_Click()
Dim oWMINameSpace As SWbemServices
Dim ObjSet As Variant
Dim Obj As Variant
Dim Adapter As Variant
 
'内存
Set oWMINameSpace = GetObject("winmgmts:")
Set ObjSet = oWMINameSpace.InstancesOf("Win32_PhysicalMemory")
Dim i As String
 
For Each Obj In ObjSet
    List3.AddItem BytesToMegabytes(Obj.capacity) & " MB" & " Chip"
Next
 
'网卡
Set Sink = New SWbemSink
   
Set Adapter = GetObject("winmgmts:")
Adapter.InstancesOfAsync Sink, "Win32_NetworkAdapter"
 
End Sub
 
Private Sub Form_Load()
j = 0
End Sub
 
Private Sub Sink_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)
 
Dim Adapter As Variant
‘得到所有的适配器信息
Set Adapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & j & "")
 
List4.AddItem Adapter.Description
 
If IsNull(Adapter.MACAddress) Then
    List4.AddItem "No MAC Address"
    List4.AddItem ""
Else
    List4.AddItem "Mac: " & Adapter.MACAddress
    List4.AddItem ""
End If
 
j = j + 1
End Sub
 
当执行后,出现如下所示:
 
是不是感到了WMI功能的强大。(完)
注明:Windows2000/XP已经安装了WMI。Win98默认不支持,需要安装WMI For Win9x驱动。下载地址:
http://www.microsoft.com/downloads/details.aspx?FamilyID=98a4c5ba-337b-4e92-8c18-a63847760ea5&DisplayLang=en

使用WMI得到计算机的信息相关推荐

  1. PowerShell WMI 收集有关计算机的信息

    收集有关计算机的信息 Get-WmiObject -Query "Select * from ClassName" 命令可以在Winodws/2003的PowerShell 2.0 ...

  2. PowerShell 收集计算机相关信息

    收集有关计算机的信息 Get-WmiObject 是用于执行常规系统管理任务的最重要的 cmdlet.所有关键的子系统设置都是通过 WMI 公开的.此外,WMI 将数据视为有一个或多个项目的集合中的对 ...

  3. C++通过WMI获取硬件配置信息

    C++通过WMI获取硬件配置信息 WMI即Windows管理规范.通过它可以访问.配置.管理和监视几乎所有的Windows资源. WMI提供程序在WMI和托管资源之间扮演着中间方的角色.提供程序代表使 ...

  4. 基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection

    基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection 获取P ...

  5. 香港理工大学计算机专业课程,香港理工大学 19年入学 计算机硕士信息一览

    原标题:香港理工大学 19年入学 计算机硕士信息一览 香港理工大学,简称"理大"(The Hong KongPolytechnic University,缩写"PolyU ...

  6. datatable 汇总_【2019 版】中国石油大学(北京)计算机考研信息、资料汇总

    院校简介 中国石油大学(北京)(China University ofPetroleum,Beijing)简称中石大(CUP),创建于1953年,由中华人民共和国教育部直属,位列国家首批"2 ...

  7. 计算机中的信息表示 ppt模板,计算机中信息的表示.ppt

    <计算机中信息的表示.ppt>由会员分享,可在线阅读,更多相关<计算机中信息的表示.ppt(37页珍藏版)>请在人人文库网上搜索. 1.在计算机中的信息的显示中,计算机处理的信 ...

  8. ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现

    ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现 目录 利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现 实现结果 实现代码 利用某数据集计算 ...

  9. 计算机三级信息安全技术考什么2019,2019计算机三级信息安全技术精品练习8

    2019计算机三级信息安全技术精品练习8 2019-06-19 16:37:49来源:计算机等级考试网分享 导读:还不知道全国计算机等级考试时间吗?2019年考试共举行4次,下一次考试时间为9月份,距 ...

最新文章

  1. python selenium - web自动化环境搭建
  2. 湖南科技学院计算机科学与技术分数,湖南科技学院计算机科学与技术专业2016年在河南理科高考录取最低分数线...
  3. documentum中的Fulltext search的文章收集
  4. C语言试题五十六之计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。
  5. Layui的一点小理解(上)
  6. 谷歌 Chrome 同步功能可滥用于 C2 通信及数据提取
  7. ios textview间距_iOS开发之UITextView,设置textView的行间距及placeholder
  8. 项目开发中遇到的问题,原因,解决思路
  9. javascript自定义alert弹窗
  10. 如何从12306网站下载自己喜欢的手机铃声
  11. 通过企业微信SCRM营销系统,完成百万私域用户引流
  12. 越狱装源未能连接到服务器,科普cydia无法加载源地址插件安装错误解决方法及Cydia怎么备份shsh...
  13. 信息学奥赛一本通网站
  14. mathquill web公式编辑器 总结 、实列、 源码
  15. window.open打开txt文件
  16. Linux kernel ‘aac_send_raw_srb’函数输入验证漏洞
  17. cpu空载50度_让电脑拥有一个“冷静”空间:九州风神玄冰50+堡垒240水冷套
  18. 数学建模学习(41):单因素方差分析
  19. 3天实现暴力涨粉500+的引流话术整理!
  20. 非参数统计中的核平滑方法/Kernel smoother

热门文章

  1. Dubbo之@Reference 和 ReferenceBean
  2. [ObjectARX系列]
  3. 理解水仙花数(看这一篇就够了)
  4. matlab画图:坐标轴、刻度、label
  5. Teacher-Forcing, Student-Forcing, Schedual sampling , Teacher-Recommended and Professor-Forcing训练策略
  6. 每天进步一点点——常用SQL技巧
  7. JRebel热部署插件手动触发
  8. 莫等闲、白了少年头,空悲切
  9. 开源计算机电子书_开源工具来准备您的电子书以供出版
  10. c语言编写勒让德多项式递归输出,高精度!