问题 1:WMI 是什么,它能帮我做什么?
Windows 管理规范(Windows Management Instrumentation)是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。WMI 通过编程和脚本语言为日常管理提供了一条连续一致的途径。例如,用户可以:
• | 在远程计算机器上启动一个进程。 |
• | 设定一个在特定日期和时间运行的进程。 |
• | 远程启动计算机。 |
五四青年节祝福语简短• | 获得本地或远程计算机的已安装程序列表。 |
• | 查询本地或远程计算机的 Windows 事件日志。 |
抗战片电视剧 |
WMI 中的“Instrumentation”特指 WMI 可以获得关于计算机内部状态的信息,这与汽车仪表盘获得并显示引擎的状态信息非常类似。WMI 对磁盘、进程、和其他 Windows 系统对象进行
建模,从而实现“指示”功能。这些计算机系统对象采用类来建立模型,例如 Win32_LogicalDisk 或 Win32_Process; 如您所料,Win32_LogicalDisk 类用于建立在计算机上安装的逻辑磁盘的模型,Win32_Process 类用于建立正在计算机上运行的任何进程的模型。这些类基于一个名为通用信息模型(Common Information Model,CIM)的可扩展架构。CIM 架构是分布式管理任务组(Distributed Management Task Force)的一个公开标准( ).
WMI 的功能还包括事件触发、远程调用、查询、查看、架构的用户扩展、指示等等。
想进一步了解 WMI,请访问msdn.microsoft/library/default.asp 并搜索关键词“About WMI”。
返回页首
问题 2: WMI 适用于那些平台?
WMI 适用于所有最新版本的 Windows。WMI 附带在 Windows Me、Windows 2000、Windows XP 和 Windows Server 2003 之中。
对于 Windows 98 和 Windows NT 4.0,可以访问www.microsoft/downloads. 并搜索“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,而不是 Windows NT4 或 Windows 98 附带的 WSH。您可以从以下地址下载 WSH www.microsoft/downloads. WSH 的最新版本—— 包括在 Windows XP 和 Windows Server 2003 之中——是 WSH 5.6。 |
返回页首
问题 3:如果 WMI 向外界暴露特定的功能,我如何才能知道?
MSDN 是了解 WMI 及其功能的详细参考信息的最佳场所;请参考以下地址获取 WMI 参考信息:msdn.microsoft/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_reference.asp. WMI 参考中包含了关于 WMI 标准安装中大多数类、对象和 API 的信息。注意:不属于操作系统一部分的 WMI 提供者可能会创建既没有记录在 MSDN,也没有记录在平台 SDK 中的类。
一旦熟悉了信息的分类方式,用户就可以方便地搜索自己想要的类,并确定自己想要的功能是否存在。 请注意:为了完成一个特定的任务,您可能需要使用多个类。例如,假定您想要获得一台计算机的基本系统信息。 尽管可以使用 Win32_OperatingSystem 类来获得可用内存的相关信息,但如果同时需要获得关于计算机可用磁盘的信息,您必须使用第二个类 Win32_LogicalDisk。请看问题为什么我的脚本可以在某个版本的 Windows 上运行,但在另外一个版本的 Windows 上却不能运行? 想要知道 WMI 可以做什么、不可以做什么?
CIM Studio 是一种工具,用户可以通过它浏览 Windows 2000 或更高版本平台上的 WMI
类。想要进一步了解这个工具,以及其中包含的内容(CIM Studio 中包含一系列由 安装的工具),请访问 www.microsoft 并搜索关键字“WMI tools”。您也可以运行微软不提供支持的 工具——安装 WMI 的时候自动被安装——来浏览 WMI 数据。
在 Windows XP 或 Windows Server 2003 上,用户可以使用以下脚本搜索类名中包含特定关键字的类。 请将该脚本保存为一个名为 Search.vbs 的文本文件然后运行,并指定想要搜索的关键字。例如,想要搜索名称中包含 “service”的类,
请在命令提示行运行以下命令:
请在命令提示行运行以下命令:
cscript search.vbs service
' Script for finding a class in WMI Repository
Set args = wscript.arguments
If args.Count <= 0 Then
Wscript.Echo "Tool to search for a matching class in the WMI Repository. "
Wscript.Echo "USAGE: <keywordToSearch> [<namespaceToSearchIn>]"
Wscript.Echo "Example1: Cscript search.vbs service"
Wscript.Echo "Example2: Cscript search.vbs video root\cimv2"
Else
' If no Namespace is specified then the Default is the ROOT namespace
rootNamespace = "\\.\ROOT"
keyword = args(0)
If args.Count > 1 Then
火车放票时间 rootNamespace = args(1)
End If
EnumNameSpace rootNamespace
Wscript.Echo vbNewLine
End if
' Subroutine to recurse through the namespaces
Sub EnumNameSpace(parentNamespaceName)
Set objService = GetObject("winmgmts:" & parentNamespaceName)
Set collMatchingClasses = objService.Execquery _
("Select * From meta_class Where __class " & _
"Like '%" & keyword & "%'")
If (unt > 0) Then
Wscript.Echo vbNewLine
Wscript.Echo vbNewLine
Wscript.Echo "Matching Classes Under Namespace: " & parentNamespaceName
For Each matchingClass in collMatchingClasses
Wscript.Echo " " & matchingClass.Path_.CLASS
Next
End if
Set collSubNamespaces = objService.Execquery _
("select * from __namespace")
欧阳夏丹走光For Each subNameSpace in collSubNamespaces
EnumNameSpace subNameSpace.path_.namespace + _
"\" + subNameSpace.Name
Next
End Sub
该脚本只能运行在 Windows XP 或 Server 2003 之上,因为作为 WMI 查询语言一部分的 LIKE 运算符只能用于这两个平台。
返回页首
问题 4:如果 WMI 没有提供我想要的功能,我应该怎么办?
配置windows update失败用户迟早会发现 WMI 无法完成有些自己想要的任务或者无法高效地完成。 在这种情况下,您应该首先检查操作系统提供的其他脚本技术是否可以提供该功能。 例如,ADSI(Active Directory Service Interfaces)可以帮助用户管理 Active Directory;CDO(Collaboration Data Objects)提供了在脚本中发送的功能。如果 Windows 操作系统没有提供合适的脚本接口,也许某些第三方的软件可以提供您所需要的功能。
如果确实没有这样的脚本接口,理论上讲您可以编写一个 WMI 提供者来提供相应的功能。不过,不能用脚本语言来编写 WMI;而必需使用 C++ 或 C#。关于这方面的更多信息,请参阅 MSDN 的“Using WMI”(使用 WMI)部分,其中一些主题介绍了如何编写典型的 WMI 提供者。如果您想要使用 .NET Framework 来编写提供者,请在 MSDN 库中搜索“Managing Applications Using WMI”(使用 WMI 管理应用程序)。
许多其他公司在市场上销售能够扩展 WMI 功能的管理软件。您可以在 Internet 上搜索第三
方工具。也可以在新闻组提问以获取信息。请看问题在哪里可以到使用 WMI 的示例脚本?
发布评论