`

WMI简单介绍

阅读更多
要成为WMI脚本高手当要认识一下什么叫WMI啦,下面将介绍一下有关WMI的东西。
Windows 管理规范(Windows Management Instrumentation)是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。WMI 通过编程和脚本语言为日常管理提供了一条连续一致的途径。用户可以:
1.在远程计算机器上启动一个进程。
2.设定一个在特定日期和时间运行的进程。
3.远程启动计算机。
4.获得本地或远程计算机的已安装程序列表。
5.查询本地或远程计算机的 Windows 事件日志。
而WMI适用的运得环境也是有些限制的,WMI 适用于所有最新版本的 Windows。WMI 附带在 Windows Me、Windows 2000、Windows XP 和 Windows Server 2003 之中。
对于 Windows 98 和 Windows NT 4.0,可以访问http://www.microsoft.com/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 http://www.microsoft.com/downloads. WSH 的最新版本—— 包括在 Windows XP 和 Windows Server 2003 之中——是 WSH 5.6。
要使 WMI脚本可以正常的运行,Windows里的WMI 服务(winmgmt)保证是运行的,这样才可以实现WMI里的更多功能。
好了,关于 WMI的一些基本的信息资料就说到这,要想看更多的可以到MicroSoft网站的MSDN找。下面就简单的讲一下WMI脚本编写的基本要素,看看下面的代码:
//这个脚本是查看系统启动的引导配置参数,下面我们来看看关于WMI脚本编写的架构。
On Error Resume Next
//下面这行是比较重要的,它定义了主机的变量,可以是本机或远程主机,域上的机等,参数英文的“.”是表示本机,要想实现其它机的可以填上其它机的主机名或IP。
strComputer = "."
//下面这行是通过GetObject得到主机的WMI对象管理空间 “\root\cimv2”,如果是本机的是通过NT(Authentication)认证的,所以可以不用用户名和密码,而对于非本机或非域机的就要再加多几条参数,
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
//执行WMI数据对象的查询
//至于连接远程的要用下面的语句
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer(strComputer, "root\cimv2", "administrator", "a")
Set colItems = objWMIService.ExecQuery("Select * from Win32_BootConfiguration",,48)



//利用数组列出相关
For Each objItem in colItems
Wscript.Echo "BootDirectory: " & objItem.BootDirectory
Next
从上面的例子可以看出写一个WMI的要求:
1.得到主机的WMI对像管理空间
2.执行WMI数据对象的查询
3.利用数组列出相关
学习编写的架构并不难,只要练多几次就行了,但是学习WMI的第一个难题就是它的子集对象,因为我们并不知道它的子集对象是什么,这样写起程序来就会力不从心了。要一下子知道这样子集的对象也是不难的,只要在 MicroSoft的MSDN找找会有不少,但是这样找下去的话可能要找很久或资料不够全,是不是有些难呢?其实MicroSoft公司的网站上有一个叫 “Scriptomatic”的工具,才100多K,解压后你们发觉真正有用的是那个才12k的“scriptomatic.hta”文件,双击打开后你会发觉是一个子集的数据列表,且还有例子呢。


以上就是查询“Win32_BIOS”里的子集参数,是不是很易实现WMI脚本的编写呢?
朋友们,可曾记得大半年前是不是有一个这样的漏洞:就是一个GUEST用户权限可以用WMI的脚本实现加账号的例子,其实就是一个WMI 命名空间的安全性出现问题。下面我们打开计算机上的MMC看看如何设置WMI的安全权限。
在运行菜单上打“MMC”,然后在“文件”菜单上选“添加/删除管理单元”,然后在“独立”的选项卡(默认)上按“添加”,之后来到“添加独立管理单元”列表。
然后就一路按“添加”、“确定”就可以了。返回到MMC的主介面上,然后右击“WMI”单元选“属性”。
在WMI控件属性对话框中单击安全选项卡。
一个名为Root,前面带加号(+)的文件夹将会出现。如果必要,展开这个树状结构,定位到想要设置权限的命名空间。
单击安全设置按钮。一组用户和权限显示出来。如果用户在这个列表中,请按照需要修改权限。如果用户不再这个列表中,请单击 添加 按钮,然后从账户所在的位置(本地计算机、域等等)添加用户。
小提示:
为了查看和设置 NameSpace 安全性,用户必需拥有读取安全设置 和 编辑安全设置 权限。系统管理员默认具备这些权限,并可以按照需要将权限赋予其他用户如果一个用户需要远程访问命名空间,必须为其选中远程启用权限。
默认情况下,针对一个命名空间设置的用户权限只对该命名空间有效。如果希望用户可以访问该命名空间和其下所有子命名空间,或者只能访问子命名空间,请单击高级按钮。单击编辑并在出现的对话框中指定允许访问的范围。这样就可以防止此类事情的发生,但是透过此类的WMI命名空间的安全设置,也可以成为黑手会配置后门的地方,所以在架建一个安全的系


分享到:
评论

相关推荐

    wmi技术指南 pdf

    **Windows Management ...以上就是对WMI技术的详细介绍,从基本概念到实际应用,以及如何通过不同的编程语言和工具来访问和利用WMI。希望这个指南能帮助你更好地理解和利用WMI进行系统管理和自动化任务。

    window高级编程之WMI编程应用

    具体使用方法会在后面的章节详细介绍。 2. **编写WMI脚本**:利用VBScript、JScript等脚本语言编写自动化任务。 3. **编写应用程序**:通过C++ API、.NET框架等编程接口,开发专门的应用程序来获取和管理Windows操作...

    易语言利用WMI取主板温度

    本文将详细介绍如何使用易语言通过Windows Management Instrumentation(WMI)技术来获取主板温度。 WMI是微软提供的一个系统管理工具,它允许应用程序访问和管理Windows系统中的硬件、软件和系统信息。通过WMI,...

    Visual Basic编程访问WMI对象

    这是一个简单的例子,演示如何使用WMI来获取系统中所有正在运行的进程名: ```vb Function EnumProcesses() As String Dim WMI As Object Set WMI = GetObject("WinMgmts:") Dim objs As Object Set objs = ...

    如何使用WMI查询处理器信息

    本文将详细介绍如何利用WMI查询处理器信息,这对于系统管理和性能监控至关重要。 首先,我们需要理解WMI的基本概念。WMI是微软提供的一种基于行业标准WBEM(Web-Based Enterprise Management)的系统管理框架。它为...

    简单VC++调用命令行重建WMI DB

    本文将详细介绍如何使用VC++编写一个简单的程序来调用命令行工具来重建WMI数据库,并涉及重启服务、删除文件以及刷新防火墙记录等相关操作。 首先,我们要知道如何在命令行中执行重建WMI数据库的操作。这通常涉及到...

    WMI Explorer v2.0.0.zip

    WMI Explorer是一款非常好并且很实用的网络检测软件,简单小巧。WMI资源浏览器可以查看WMI信息,WMI软件开发的好助手WMI是Windows管理规范的英文缩写。 WMI Explorer功能介绍 查看WMI管理类的全套,对象和它们的...

    WMI读取硬件信息+例程

    本文将详细介绍如何在VC++环境下使用WMI读取硬件信息,并提供一个基础的实现例程。 首先,我们需要了解WMI的基本概念。WMI是基于WBEM(Web-Based Enterprise Management)标准的,它提供了一个统一的接口,使得管理...

    利用WMI查询计算机中的各类信息(软硬件、系统用户)

    本文将详细介绍如何利用WMI查询计算机中的软硬件和系统用户信息。首先,我们需要理解WMI的基础知识。WMI的核心是其命名空间,每个命名空间都包含一组相关的类,这些类代表了特定领域的管理信息。例如,`Win32`命名...

    wmi手册(英文)

    由于WMI手册是英文版,所以它将深入介绍如何使用VBScript编写脚本来与WMI接口进行交互,例如查询系统信息、监控事件、执行操作系统级别的任务等。 **WMI的基本概念** 1. **WMI提供者**:这些是实现WMI接口的具体...

    vb下的WMI訪問

    本文将详细介绍如何在 VB 环境下使用 WMI 进行系统管理。 #### WMI 概述 WMI 提供了一种统一的方式来访问 Windows 平台上的管理数据。这些数据包括但不限于硬件信息、操作系统状态、服务状态等。WMI 基于 COM...

    WMI Explorer下载 WMI Explorer v2.0.0

    WMI Explorer是一款非常好并且很实用的网络检测软件,简单小巧。WMI资源浏览器可以查看WMI信息,WMI软件开发的好助手WMI是Windows管理规范的英文缩写。WMI Explorer功能介绍:查看WMI管理类的

    精选_编程使用WMI_源码打包

    下面以Python为例,介绍如何使用`pywin32`库操作WMI。 #### 安装库 首先,确保安装了`pywin32`库,可以使用pip进行安装: ```bash pip install pywin32 ``` #### 连接WMI服务 在Python中,我们可以创建一个连接...

    WMI 脚本入门

    - **书籍**: 有许多专业书籍专门介绍WMI的使用,例如《System Administration Scripting Guide》这本书,它是Microsoft Windows Server 2003资源工具箱的一部分。 #### 十、结语 通过本文的介绍,我们可以了解到WMI...

    VB使用WMI编程(零号).doc

    【VB使用WMI编程(零号).doc】的文档中,主要介绍了如何使用VB(Visual Basic)结合WMI(Windows Management Instrumentation)进行系统管理编程。WMI是微软在Windows 2000及后续操作系统中内置的核心管理技术,它...

    WMI Sample -- Read BIOS Info from Vb6

    下面将详细介绍如何在VB6中利用WMI读取BIOS信息以及相关的知识点。 首先,理解WMI的基本概念至关重要。WMI是微软的一种管理和操作环境,它允许开发者通过脚本或编程语言来查询、配置和管理Windows系统。WMI基于WBEM...

    如何使用WMI查询处理器信息编程小程序,

    总结来说,本教程介绍了如何使用C++.NET和WMI在Visual Studio .NET环境下编写一个查询处理器信息的小程序。通过学习和实践这些知识,你将能够利用WMI的强大功能,轻松获取和管理Windows系统的信息。记得在实际编程时...

    Python库 | pywmi-0.7.9.tar.gz

    下面是一个简单的例子,展示如何使用`pywmi`获取远程计算机的CPU利用率: ```python import pywmi # 连接到远程计算机 wmi = pywmi.WMI('remote_host', user='username', password='password') # 查询性能计数器...

    Windows Management Instruction的介绍及应用

    **Windows Management Instruction(WMI)**是微软提供的一种管理和配置Windows操作...通过WMI介绍及简单应用.doc这样的文档,你可以深入学习如何利用WMI进行各种实际操作,进一步提高对Windows系统的管理和控制能力。

    python使用wmi模块获取windows下硬盘信息的方法

    在IT领域中,经常需要对服务器或工作站的硬件状态进行监控,特别是在Windows环境下,Python提供了一种简单有效的方式——通过`wMI`(Windows Management Instrumentation)模块来获取系统硬件信息。本篇文章将详细...

Global site tag (gtag.js) - Google Analytics