当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > WMI 脚本高手不完全手册

VBScript
Dynamic Activity Window动态活动窗口vbs
可以查询系统用户名sid的vbs
VBScript使用ADSI为IIS批量添加屏蔽或允许访问的IP
WMI IE代理 切换或改变(Use WMI Change IE Proxy)
SendKeys clip.exe 发送中文的代码
利用计划任务和VBS脚本实现自动WEB共享文件夹里的文件
XorEncode的vbs实现代码
利用wsc制作的一个asp后门
ie7 0day当中的shellcode的escape+xor21加密
VBScript 作用 简单说明
IE浏览器增加“复制图像地址”的右键菜单的vbs代码
vbscript LoadPicture函数使用方法与漏洞利用
可自删除 开启3389创建用户粘滞键后门的vbs
CMD和vbs修改 IP地址及DNS的实现代码
vbScript on error resume next容错使用心得
vbscript include的办法实现代码
vbscript 读取xml格式的配置文件
vbScript中WScript.Shell对象的run和exec使用心得分享
VBS 路由重启脚本
vbscript logparser的ISA2004 Web流量报告

VBScript 中的 WMI 脚本高手不完全手册


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 218 ::
收藏到网摘: n/a

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技术就介绍到这里,文章写得有些仓促,难免有问题,请各位多多指点小弟。