WMI技术学习(4)

WMI是面向对象设计的,windows结构或windows管理设备术语就显容易,我们可以借助微软熟悉名字空间、类、实例和它们之间的联合的复杂的层次结构。

 

这章主要介绍一些工具,通过工具去认识什么是WMI技术。

 

3.1 访问WMI
首先我们谈谈访问WMI的方法:直接方法:1、使用程序设计语言。2、基于COM/DCOM使用脚本语言(比如VBScript、JScript或VBA)

,通过脚本API与CIM对象管理器通信。间接方法:1、带ActiveX控制的IE。2、IE中包含超链接的HTML页。3、通过WMI ODBC适配器(

WBEM ODBC驱动器)的ODBC连接和WQL查询。这种方法对于任何与ODBC有关的应用程序(比如Microsoft Word等)来说是可用的。4、

WMI ADSI扩展,他们通过Windows2000域控制器上的活动目录LDAP获取的信息访问WMI。5、用于模式和实例处理的被管理对象格式(MOF)和mofcomp.exe。

 

3.2 WMI软件开发包
首先请记住我们的软件开发包工具WMI SDK
下载地址为:http://msdn.microsoft.com/downloads/sdka/wmi/download.asp
WMI SDK工具4个主要的工具是:
WMI对象浏览器
WMI CIM Studio
WMI 事件注册工具
WMI 事件浏览器
前三个工具基本上是Internet Explorer主机环境中运行的HTML页面,它们含有ActiveX控制和VBScript脚本内容,第4个是一个独立的执行文件。一旦你启动这些工具中的任何一个,将需要确定你想连接的名字空间(默认是/root/CIMV2),也可以访问bubble计算机上的root/default名字空间,可以建入//bubble/root/default,也可以使用如下格式//计算机/root/名字空间/名字空间.
表现形式例如:Win32_ComputerSystem.Name = "//你的计算机名",它的表现形式是Class.Key = "value"
下面主要将通过win2000自身的测试程序可以访问具体的WMI,请注意我只介绍这一种方式,因为他是最容易也是最快实现学习WMI的方式,嘿嘿
直接在运行里输入“wbemtest.ext”你就可以看到一个登录界面,此时你只序理解
root/CIMV2
root/DEFAULT
root/director
root/SECURITY
root/WMI
通过上面的空间命名,我们可以找到我们想要的东西,比如,我们连接root/CIMV2,然后直接点击登录,就可以等进去了
然后我们在点击“枚举实例”,在输入框中输入Win32_bios,我们再通过MOF显示,就的到了如下实例全部定义了,呵呵。
instance of Win32_BIOS
{
 BiosCharacteristics = {7, 9, 10, 11, 12, 14, 15, 16, 17, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34,

40};
 Caption = "Award Plug and Play BIOS Extension v1.0A";
 CurrentLanguage = "en|US|iso8859-1";
 Description = "Award Plug and Play BIOS Extension v1.0A";
 InstallableLanguages = 1;
 ListOfLanguages = {"en|US|iso8859-1"};
 Manufacturer = "Award Software, Inc.";
 Name = "Award Plug and Play BIOS Extension v1.0A";
 PrimaryBIOS = TRUE;
 ReleaseDate = "20030314******.******+***";
 SerialNumber = "SYS-1234567890";
 SMBIOSBIOSVersion = "ASUS P4B266-C ACPI BIOS Revision 1006";
 SMBIOSMajorVersion = 2;
 SMBIOSMinorVersion = 3;
 SMBIOSPresent = TRUE;
 SoftwareElementID = "Award Plug and Play BIOS Extension v1.0A";
 SoftwareElementState = 3;
 Status = "OK";
 TargetOperatingSystem = 0;
 Version = "Award Medallion BIOS v6.0";
};
或着我们也可以选择WQL来进行查询,但是命令就是要复杂一些了,呵呵,同样在连接到刚才的命名空间下点击“查询”
我们就可以使用WQL了,然后在输入框里直接输入“select * from win32_service”得到如下的东西
就是我们计算机全部的系统服务的列表,呵呵,然后任意查询下,就可以得到win32_service的用法了
instance of Win32_Service
{
 AcceptPause = FALSE;
 AcceptStop = FALSE;
 Caption = "Alerter";
 CheckPoint = 0;
 CreationClassName = "Win32_Service";
 Description = "Alerter";
 DesktopInteract = FALSE;
 DisplayName = "Alerter";
 ErrorControl = "Normal";
 ExitCode = 1077;
 Name = "Alerter";
 PathName = "C://WINNT//System32//services.exe";
 ProcessId = 0;
 ServiceSpecificExitCode = 0;
 ServiceType = "Share Process";
 Started = FALSE;
 StartMode = "Manual";
 StartName = "LocalSystem";
 State = "Stopped";
 Status = "OK";
 SystemCreationClassName = "Win32_ComputerSystem";
 SystemName = "BUBBLE";
 TagId = 0;
 WaitHint = 0;
};
以上就是我们在win2000上直接访问WMI的过程和一些实例的介绍,呵呵。
今天就到这里了,还有下一章主要讲的是WMI做为一个COM对象模型,其中有各种不同的属性和方法可以通过脚本访问,说白了就是使用脚本访问我们可爱的WMI。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值