`

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 Explorer v2.0.0.zip

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

    WMI_Test.zip

    简单介绍了WMI COM的使用, 该文档主要是在本地采集WMI数据,其实可以做到远程采集。分布式的。等等这些都已经实现。

    WMI Explorer下载 WMI Explorer v2.0.0

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

    CIMplant:WMImplant的C#端口,它使用CIM或WMI查询远程系统

    介绍 CIMplant是一个C#重写和扩展上的 。 它使您可以收集有关远程系统的数据,执行命令,提取数据等。 该工具允许使用Windows Management Instrumentation 或通用接口模型; Windows Management Infrastructure 更...

    局域网管理工具(Recton)v3.0最新绿色中文版

    局域网管理工具(Recton)是一款能够帮助大家通过局域网实现各种功能服务,支持远程开关机、远程命令等功能,有需要的朋友可以下载试试,操作简单实用。 软件介绍: 只要你有一远程主机的管理员密码,并且远程主机的...

    Windows PowerShell应用手册

     附录包括powershell语言快速参考和对管理员来说有用的.net、wmi和com对象的介绍。那些管理microsoft exchange 2007和系统中心operations manager(以前的mom)的管理员会发现有专门介绍相关内容的章节。...

    WQL语言简介和WQL测试工具wbemtest.exe使用方法详细介绍

    WQL就是WMI中的查询语言,WQL的全称是WMI Query Language,简称为WQL,翻译成中文好像可以成为Windows管理规范查询语言。熟悉SQL语言的朋友会感觉它和SQL非常相似。 WQL其实非常简单,它有如下特点: 1、每个WQL语句...

    PowerShell操作Excel、CSV详细介绍

    使用powershell来管理WMI和COM更简单。  用微软官方的话概括powershell就是:  Windows PowerShell:trade_mark: 是一种基于任务的命令行 shell 和脚本语言,专门用于管理系统。 Windows PowerShell:trade_mark: ...

    js 窗口抖动示例

    想必大家对窗口抖动一词并不陌生吧,其实原理很简单,下面为大家简单介绍下js中时如何实现的,喜欢的朋友可以参考下

    python获取本地计算机名字的方法

    主要介绍了python获取本地计算机名字的方法,涉及Python获取本地计算机信息的相关技巧,非常简单实用,需要的朋友可以参考下

    VBS读取注册表的两种方法

    有时候我们需要用vbs来操作注册表,一般情况下有两种方法,一种是通过wshshell对象的regread,另外一种是使用WMI操作注册表,下面简单的介绍下

    FTP服务器程序

    1、介绍: 1) 常见网络端口 2、内容: 1) 常见网络端口  端口:21  服务:ftp  说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的...

    Windows Script Host 2脚本开发人员指南PDF+源码

    我想,覆盖广泛的WSH在书中介绍了如何使用脚本来自动备份文件,映射网络驱动器和打印机,并显示用户对话框等任务。但是,我无法找到任何有关WSH的文件,并与Windows 98附带的帮助文件并不包括脚本编程。 Windows ...

    vc++ 开发实例源码包

    内部包含:mp3播放器Lrc歌词同步源程序代码分析、mp3播放器+支持歌词同步显示哦、简单音乐播放器。 mfc 解码 视频音频解码部分。 MFC_MultiSender_OVER 文件传送,多文件(超大文件)传送功能的实现,含文档。 ...

    vc++ 应用源码包_1

    实例简单,有用户登录、传输文件、视频、画质调节、禁音检测、回音消除、自动增益、噪音抑制、视频控制等、 VC++搜索指定文件夹中的文件 VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要...

    vc++ 应用源码包_2

    实例简单,有用户登录、传输文件、视频、画质调节、禁音检测、回音消除、自动增益、噪音抑制、视频控制等、 VC++搜索指定文件夹中的文件 VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要...

    vc++ 应用源码包_6

    实例简单,有用户登录、传输文件、视频、画质调节、禁音检测、回音消除、自动增益、噪音抑制、视频控制等、 VC++搜索指定文件夹中的文件 VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要...

    vc++ 应用源码包_5

    实例简单,有用户登录、传输文件、视频、画质调节、禁音检测、回音消除、自动增益、噪音抑制、视频控制等、 VC++搜索指定文件夹中的文件 VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要...

    vc++ 应用源码包_3

    实例简单,有用户登录、传输文件、视频、画质调节、禁音检测、回音消除、自动增益、噪音抑制、视频控制等、 VC++搜索指定文件夹中的文件 VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要...

    asp.net知识库

    Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把...

Global site tag (gtag.js) - Google Analytics