利用WMI获取系统信息

上传人:1768****007 文档编号:239737353 上传时间:2022-01-14 格式:DOCX 页数:19 大小:37.25KB
返回 下载 相关 举报
利用WMI获取系统信息_第1页
第1页 / 共19页
利用WMI获取系统信息_第2页
第2页 / 共19页
利用WMI获取系统信息_第3页
第3页 / 共19页
利用WMI获取系统信息_第4页
第4页 / 共19页
利用WMI获取系统信息_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《利用WMI获取系统信息》由会员分享,可在线阅读,更多相关《利用WMI获取系统信息(19页珍藏版)》请在金锄头文库上搜索。

1、利用WMI获取系统信息用 利用 WMI 获得系统信息WMI(Windows Management Instrumentation)技术是微软供应的 Windows 下的系统管理工具。通过该工具可以在本地或者管理客户端系统中几乎一切的信息。许多专业的网络管理工具都是基于 WMI 开发的。该工具在 Win2000 以及WinNT 下是标准工具,在 Win9X 下是扩展安装选项。本文将介绍如何通过 VB 编程来访问 WMI 对象的编程。首先来看一个简洁的通过 WMI 获得系统信息的范例,这个范例通过 WMI 对象获得系统中运行的的进程:Function Enum1()As String Dim WM

2、I Set WMI=GetObject("WinMgmts:")Set objs=WMI.InstancesOf("Win32_Process")For Each obj In objs Enum1=Enum1+obj.Description+Chr(13)+Chr(10)Next End Function 在上面的代码中,首先通过 GetObject("WinMgmts:")获得 WMI 对象,在 WMI 对象下有许多的子项,在这里我们通过 WMI.InstancesOf("Win32_Process")获得系统

3、中全部的进程列表子项。下面看一个完整的访问 WMI 对象的范例,这个范例获得计算机的信息。建立一个新工程,在 Form1 中添加一个 TextBox 控件以及一个CommandButton 控件,在 CommandButton 的 Click 事务中写入以下的代码:Private Sub Command1_Click()Dim s,System,item Dim iAs Integer Set System=GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem")For Each item In

4、 SystemList1.AddItem item.cputype s="Computer Info"&vbCrLf s=s&"*"&vbCrLf s=s&"计算机名称:"&item.name&vbCrLf s=s&"状态:"&item.Status&vbCrLf s=s&"类型:"&item.SystemType&vbCrLf s=s&"生产厂家:"&item.M

5、anufacturer&vbCrLf s=s&"型号:"&item.Model&vbCrLf s=s&"内存:"&item.totalPhysicalMemory24000&"mb"&vbCrLf s=s&"域:"&item.domain&vbCrLfs=s&"工作组"&item.Workgroup&vbCrLf获得工作组和域的选项不能同时用 s=s&"当前用户:&q

6、uot;&item.username&vbCrLf s=s&"启动状态"&item.BootupState&vbCrLf s=s&"该计算机属于"&item.PrimaryOwnerName&vbCrLf s=s&"系统类型"&item.CreationClassName&vbCrLf s=s&"计算机类类型"&item.Description&vbCrLf For i=0 To 1这里假设安装了两个系统

7、s=s&Chr(5)&"启动选项"&i&":"&item.SystemStartupOptions(i)_&vbCrLf Next iNext Text1.Text=s End Sub 运行程序,点击 Command1,在 textBox 中就可以显示计算机的信息。在上面的代码中,程序通过GetObject("winmgmts:")获得 WMI 对象,然后获得下面的Win32_ComputerSystem 子项并通过访问 Win32_ComputerSystem 对象中的分项获得系统中的

8、信息。须要说明的是,并不是全部的系统都支持 WMI,在有些系统中无法显示生产厂家等信息。现在的计算机以及网络组成非常困难。例如系统硬件方面就有主板、硬盘、网卡.。软件方面有操作系统、系统中安装的软件、正在运行的进程等等。网络方面有域、工作组等等。利用 WMI 可以访问上面的全部信息,但是假如向上面一样的利用分项来访问的话会很麻烦。为此,WMI 供应了一种类似 SQL 语句的查询语句,可以通过查询语句获得 WMI 对象下的子项。下面是一个遍历系统中安装的网卡并返回网卡 MAC 地址的代码:Private Function MACAddress()As String Set objs=GetObj

9、ect("winmgmts:").ExecQuery(_"SELECT MACAddress"&_"FROM Win32_NetworkAdapter"&_"WHERE"&_"(MACAddress Is Not NULL)"&_"AND(Manufacturer"&_"Microsoft)")For Each obj In objs MACAddress=obj.MACAddress Exit For Next o

10、bj End Function 上面的代码获得 WMI 对象,然后运行 ExecQuery 执行一个 WMI 查询语句获得安装的网卡并返回网卡的 MAC 地址。WMI 还支持事务处理,让程序可以处理系统事务,例如程序运行、关闭,可移动驱动器的插入、取出等。下面是一个可以对系统中运行程序进行监控的程序。首先建立一个新工程,然后点击菜单的project|references 项,在 references 列表中选中 Microsoft WMI Scripting Library 将 WMI 对象库加入工程中。然后在 Form1 中加入一个 ListBox 控件,然后在 Form1 中加入以下代码:

11、Option Explicit Dim Locator As SWbemLocator Dim Services As SWbemServices Dim WithEvents StatusSink As SWbemSink Private Sub KillEvents()StatusSink.Cancel Set StatusSink=Nothing End Sub Private Sub Form_Load()Dim Query As String Set StatusSink=New SWbemSink Set Locator=CreateObject("WbemScripti

12、ng.SWbemLocator")Set Services=Locator.ConnectServer()Query="SELECT*FROM _InstanceCreationEvent"Query=Query+"WITHIN 1"Query=Query+"WHERE TargetInstance ISAWin32_Process"Services.ExecNotificationQueryAsync StatusSink,Query End Sub Private Sub StatusSink_OnObjectReady

13、(ByVal StatusEvent As SWbemObject,_ ByVal EventContext AsSWbemNamedValueSet)Dim arr Dim strQue As String Dim iAs Integer List1.Clear arr=Split(StatusEvent.GetObjectText_,Chr(10)For i=LBound(arr)To UBound(arr)List1.AddItem arr(i)Next iEnd Sub Priv ate Sub StatusSink_OnCompleted(ByVal HResult As WbemE

14、rrorEnum,_ ByVal ErrorObject As SWbemObject,_ ByVal EventContext As SWbemNamedValueSet)If HResult wbemErrCallCancelled Then错误处理 End If End Sub 在上面的程序中定义了一个 SWbemSink 对象 StatusSink,然后建立一个 SWbemServices 对象 Server,并将 StatusSink 连接到 Server 对象上。这样就可以通过 StatusSink 监控程序的运行。运行程序,然后随意运行一个程序,在 Form1 的 ListBox

15、 中就可以列出运行的程序的信息。WMI 脚本高手不完全手册2022-10-08 12:02:39要成为 WMI 脚本高手当要相识一下什么叫 WMI 啦,下面将介绍一下有关WMI 的东西。Windows 管理规范(Windows Management Instrumentation)是一项核心的 Windows 管理技术;用户可以运用 WMI 管理本地和远程计算机。WMI 通过编程和脚本语言为日常管理供应了一条连续一样的途径。用户可以:1.在远程计算机器上启动一个进程。2.设定一个在特定日期和时间运行的进程。3.远程启动计算机。4.获得本地或远程计算机的已安装程序列表。5.查询本地或远程计算机的

16、 Windows 事务日志。而 WMI 适用的运得环境也是有些限制的,WMI适用于全部最新版本的 Windows。WMI 附带在 Windows Me、Windows 2000、Windows XP 和 Windows Server 2003 之中。对于 Windows 98 和 Windows NT 4.0,可以访问并搜寻"Windows Management Instrumentation(WMI)CORE 1.5(Windows 95/98/NT 4.0)"。留意:在 Windows NT 4.0 上安装并运行 WMI 之前,须要首先安装 Service Pack 4 或更高版本。WMI 须要的其他软件包括:1.Microsoft Internet Explorer 5.0 或更高版本。2.Windows script Host(WSH)。Windows 2000、Windows XP、Windows Server 2003、和 Windows Me 附带的 WSH,而不是 Window

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号