5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:河北
性别:先生
最后登录:2013-04-14
http://hbwazxf.5d.cn/
曾经有一个漂亮女孩追我的机会摆在我的面前,我没有去珍惜,只到现在我已经结婚了,我才后悔不已。人世间最痛苦的事莫过于此,如果上天再给我一个重新来过的机会,我会对那个女孩说几个字:"放弃我吧!"如果非要在这个选择前加一个期限,我希望是"来世再说!" "咋了哥们?"唉!被人煮了……这就是我的BLOG,欢迎大家参观访问,大家交个朋友!QQ:77356614 mail:waxz33#sohu.com
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2005/06/16 | 认识win强大的管理工具——WMI(脚本篇)
类别(电脑维修经验_软件技巧)
|
评论
(0)
|
阅读(100)
|
发表于 11:03
www.hackbase.com
阅读:19914 时间:2005-6-16 1:50:26 来源:邪恶八进制安全小组
WMI大家可能都听说过,就是Windows管理工具,看名字就知道他的功能有多么的强大,他可以管理windows的方方面面,从常见的文件操作到硬件管理,都可以通过WMI来实现。
WMI的语法十分简单,对于所有的命名空间、对象等用法几乎一模一样。
一、连接
WMI不仅可以管理本地计算机,也可以管理员成计算机,所以创建WMI的第一步就是连接计算机
Dim k
k = "Microsoft" '赋予命名空间
Set MyWMIObj = GetObject("winmgmts:\\.\root\"&k) '.代表本机
上面是我常用的代码,很简单,MSDN中给我们列出了完整的方法:
On Error Resume Next
Computer = "MyPC"
user = "MyPC\administrator"
pwd = "Password"
k = "Microsoft" '赋予命名空间
set MyWMIObj = CreateObject("WbemScripting.SWbemLocator")
set ProObj = MyWMIObj.ConnectServer(Computer, "root/" & k, user, pwd)
上面的方法让我们了解到如何来管理远程计算机,这样一来我们就可以写出可以集中管理的程序来。
二、枚举
每一个命名空间下都有很多的对象,每个对象我们都可以把它当作集合来处理。
-------------------------------------
DNS
On Error Resume Next
Computer = "MyPC"
user = "MyPC\administrator"
pwd = "Password"
k = "MicrosoftDNS" '赋予命名空间
set MyWMIObj = CreateObject("WbemScripting.SWbemLocator")
set ProObj = MyWMIObj.ConnectServer(Computer, "root/" & k, user, pwd)
Set Domain = ProObj.ExecQuery("Select * from MicrosoftDNS_Zone") '方法看起来很像SQL语法,没错,但是少了很多功能,比如like等等
For Each d in Domain
response.write d.Name & "<br>"
Next
---------------------------------
IIS
On Error Resume Next
Computer = "MyPC"
user = "MyPC\administrator"
pwd = "Password"
k = "MicrosoftIISv2" '赋予命名空间
set MyWMIObj = CreateObject("WbemScripting.SWbemLocator")
set ProObj = MyWMIObj.ConnectServer(Computer, "root/" & k, user, pwd)
Set IIS = ProObj.ExecQuery("Select * from IIsWebService WHERE AnonymousUserName = Adminstrator") 'AnonymousUserName 为站点中的一个元素
For Each d in IIS
response.write d.Name & "<br>"
Next
---------------------------------
用户和组
On Error Resume Next
Computer = "MyPC"
user = "MyPC\administrator"
pwd = "Password"
k = "cimv2" '赋予命名空间
set MyWMIObj = CreateObject("WbemScripting.SWbemLocator")
set ProObj = MyWMIObj.ConnectServer(Computer, "root/" & k, user, pwd)
Set us = ProObj.ExecQuery("Select * from Win32_Account")
For Each d in us
response.write d.Name & "<br>"
Next
---------------------------------
卷和分区
On Error Resume Next
Computer = "MyPC"
user = "MyPC\administrator"
pwd = "Password"
k = "cimv2" '赋予命名空间
set MyWMIObj = CreateObject("WbemScripting.SWbemLocator")
set ProObj = MyWMIObj.ConnectServer(Computer, "root/" & k, user, pwd)
Set disk = ProObj.ExecQuery("Select * from Win32_DiskPartition")
For Each d in disk
response.write d.Name & "<br>"
Next
以上列举了一些不同类型的命名空间的对象的枚举方法,从上面的方法中我们可以看到用法都是一样的。
三、创建
On Error Resume Next
Computer = "MyPC"
user = "MyPC\administrator"
pwd = "Password"
k = "cimv2" '赋予命名空间
set MyWMIObj = CreateObject("WbemScripting.SWbemLocator")
set ProObj = MyWMIObj.ConnectServer(Computer, "root/" & k, user, pwd)
---------------------------------------------------------------------
Set o = objWMIService.Get("Win32_Account")
o.CreateInstanceFromPropertyData ***,***,***,.....
---------------------------------------------------------------------
上面的代码上半部分与第二节中的一样
下面的为创建的代码 其中 ***,***,***,..... 为对象的元素,可参考MSDN
四、修改
On Error Resume Next
Computer = "MyPC"
user = "MyPC\administrator"
pwd = "Password"
k = "cimv2" '赋予命名空间
set MyWMIObj = CreateObject("WbemScripting.SWbemLocator")
set ProObj = MyWMIObj.ConnectServer(Computer, "root/" & k, user, pwd)
---------------------------------------------------------------------
Set colItems = objWMIService.ExecQuery("Select * from Win32_Account where Name = 'Administrator'")
For Each o In colItems
o.Modify ***,***,***,.....
Next
---------------------------------------------------------------------
上面的代码上半部分与第二节中的一样
下面的为修改的代码,要注意修改时要确定修改的唯一性,所以用到了 where
其中 ***,***,***,..... 为对象的元素,修改时,其元素不同于创建时的元素,应参考MSDN
到此,关于WMI的使用方法已基本介绍完了,通过以上的这些内容,我们可以看到,WMI竟然是如此的简单,功能是那么的强大。当然有关于WMI的并不仅仅是这些,由于本人水平有限所以有很多东西还是未知的,期待大家共同探讨。
六、权限
在使用前我们应该知道WMI只有在Administrators组成员,或者被授权的用户才能使用。
以下来自MS:授权 WMI 用户并设置权限
_one>1、打开 WMI 控制。
2、在控制台树中,右键单击“WMI 控制”,然后单击“属性”。
3、单击“安全”选项卡。
4、选择要授予用户或组访问权限的名称空间,然后单击“安全”。
5、在“安全”对话框中,单击“添加”。
6、在“选择用户、计算机或组”对话框的“查找范围”框中,输入想要添加的对象(用户或组)的名称。单击“检查名称”以验证输入项,然后单击“确定”。您可能必须更改其位置或使用“高级”按钮查询对象。详细信息,请参阅该对话框帮助。
7、在“安全”对话框中的“权限”下,选择允许或拒绝新用户或组的权限。 级别 描述
执行方法 允许运行从 WMI 类别或范例中导出的方法。
全部写入 |允许全部读取、写入和删除对所有 WMI 对象、类别和范例的访问权限。
部分写入 |允许对静态 WMI 对象进行写入访问。
提供程序写入| 允许对提供程序提供的对象进行写入访问。
启用帐户 |允许对 WMI 对象进行读取访问。
远程启用 |允许对名称空间进行远程访问。
读取安全 |允许对 WMI 安全信息进行只读访问。
编辑安全 |允许读取和写入 WMI 安全信息。
后记:由于本人英文水平过低,以至查阅MS文档十分困难,上述有些内容可能有错误,望高手指正。
我发现MS地说明文档总是让人难以理解,所以恳求对MS说明文档熟悉的朋友可以给我指点一下。
0
评论
Comments
日志分类
首页
[651]
生活杂事
[65]
FLASH
[55]
电脑维修经验_软件技巧
[273]
网页制作
[5]
编程宝典
[15]
软件破解及黑客技术
[97]
摄影摄像相关
[73]
个人作品
[17]
LINUX专栏
[46]
健康保典
[2]
玩彩票
[3]
数据恢复
[0]