认识win强大的管理工具.docx
《认识win强大的管理工具.docx》由会员分享,可在线阅读,更多相关《认识win强大的管理工具.docx(5页珍藏版)》请在冰豆网上搜索。
![认识win强大的管理工具.docx](https://file1.bdocx.com/fileroot1/2022-10/9/40d5b731-23fc-4614-9eeb-d7eaecd0bb29/40d5b731-23fc-4614-9eeb-d7eaecd0bb291.gif)
认识win强大的管理工具——WMI(脚本篇)
----------------------------------------------------------------------------------------------
WMI大家可能都听说过,就是Windows管理工具,看名字就知道他的功能有多么的强大,他可以管理windows的方方面面,从常见的文件操作到硬件管理,都可以通过WMI来实现。
WMI的语法十分简单,对于所有的命名空间、对象等用法几乎一模一样。
一、连接
WMI不仅可以管理本地计算机,也可以管理员成计算机,所以创建WMI的第一步就是连接计算机
Dimk
k="Microsoft"'赋予命名空间
SetMyWMIObj=GetObject("winmgmts:
\\.\root\"&k)'.代表本机
上面是我常用的代码,很简单,MSDN中给我们列出了完整的方法:
OnErrorResumeNext
Computer="MyPC"
user="MyPC\administrator"
pwd="Password"
k="Microsoft"'赋予命名空间
setMyWMIObj=CreateObject("WbemScripting.SWbemLocator")
setProObj=MyWMIObj.ConnectServer(Computer,"root/"&k,user,pwd)
上面的方法让我们了解到如何来管理远程计算机,这样一来我们就可以写出可以集中管理的程序来。
二、枚举
每一个命名空间下都有很多的对象,每个对象我们都可以把它当作集合来处理。
-------------------------------------
DNS
OnErrorResumeNext
Computer="MyPC"
user="MyPC\administrator"
pwd="Password"
k="MicrosoftDNS"'赋予命名空间
setMyWMIObj=CreateObject("WbemScripting.SWbemLocator")
setProObj=MyWMIObj.ConnectServer(Computer,"root/"&k,user,pwd)
SetDomain=ProObj.ExecQuery("Select*fromMicrosoftDNS_Zone")'方法看起来很像SQL语法,没错,但是少了很多功能,比如like等等
ForEachdinDomain
response.writed.Name&"
"
Next
---------------------------------
IIS
OnErrorResumeNext
Computer="MyPC"
user="MyPC\administrator"
pwd="Password"
k="MicrosoftIISv2"'赋予命名空间
setMyWMIObj=CreateObject("WbemScripting.SWbemLocator")
setProObj=MyWMIObj.ConnectServer(Computer,"root/"&k,user,pwd)
SetIIS=ProObj.ExecQuery("Select*fromIIsWebServiceWHEREAnonymousUserName=Adminstrator")'AnonymousUserName为站点中的一个元素
ForEachdinIIS
response.writed.Name&"
"
Next
---------------------------------
用户和组
OnErrorResumeNext
Computer="MyPC"
user="MyPC\administrator"
pwd="Password"
k="cimv2"'赋予命名空间
setMyWMIObj=CreateObject("WbemScripting.SWbemLocator")
setProObj=MyWMIObj.ConnectServer(Computer,"root/"&k,user,pwd)
Setus=ProObj.ExecQuery("Select*fromWin32_Account")
ForEachdinus
response.writed.Name&"
"
Next
---------------------------------
卷和分区
OnErrorResumeNext
Computer="MyPC"
user="MyPC\administrator"
pwd="Password"
k="cimv2"'赋予命名空间
setMyWMIObj=CreateObject("WbemScripting.SWbemLocator")
setProObj=MyWMIObj.ConnectServer(Computer,"root/"&k,user,pwd)
Setdisk=ProObj.ExecQuery("Select*fromWin32_DiskPartition")
ForEachdindisk
response.writed.Name&"
"
Next
以上列举了一些不同类型的命名空间的对象的枚举方法,从上面的方法中我们可以看到用法都是一样的。
三、创建
OnErrorResumeNext
Computer="MyPC"
user="MyPC\administrator"
pwd="Password"
k="cimv2"'赋予命名空间
setMyWMIObj=CreateObject("WbemScripting.SWbemLocator")
setProObj=MyWMIObj.ConnectServer(Computer,"root/"&k,user,pwd)
---------------------------------------------------------------------
Seto=objWMIService.Get("Win32_Account")
o.CreateInstanceFromPropertyData***,***,***,.....
---------------------------------------------------------------------
上面的代码上半部分与第二节中的一样
下面的为创建的代码其中***,***,***,.....为对象的元素,可参考MSDN
四、修改
OnErrorResumeNext
Computer="MyPC"
user="MyPC\administrator"
pwd="Password"
k="cimv2"'赋予命名空间
setMyWMIObj=CreateObject("WbemScripting.SWbemLocator")
setProObj=MyWMIObj.ConnectServer(Computer,"root/"&k,user,pwd)
---------------------------------------------------------------------
SetcolItems=objWMIService.ExecQuery("Select*fromWin32_AccountwhereName='Administrator'")
ForEachoIncolItems
o.Modify***,***,***,.....
Next
---------------------------------------------------------------------
上面的代码上半部分与第二节中的一样
下面的为修改的代码,要注意修改时要确定修改的唯一性,所以用到了where
其中***,***,***,.....为对象的元素,修改时,其元素不同于创建时的元素,应参考MSDN
到此,关于WMI的使用方法已基本介绍完了,通过以上的这些内容,我们可以看到,WMI竟然是如此的简单,功能是那么的强大。
当然有关于WMI的并不仅仅是这些,由于本人水平有限所以有很多东西还是未知的,期待大家共同探讨。
六、权限
在使用前我们应该知道WMI只有在Administrators组成员,或者被授权的用户才能使用。
以下来自MS:
授权WMI用户并设置权限
1、打开WMI控制。
2、在控制台树中,右键单击“WMI控制”,然后单击“属性”。
3、单击“安全”选项卡。
4、选择要授予用户或组访问权限的名称空间,然后单击“安全”。
5、在“安全”对话框中,单击“添加”。
6、在“选择用户、计算机或组”对话框的“查找范围”框中,输入想要添加的对象(用户或组)的名称。
单击“检查名称”以验证输入项,然后单击“确定”。
您可能必须更改其位置或使用“高级”按钮查询对象。
详细信息,请参阅该对话框帮助。
7、在“安全”对话框中的“权限”下,选择允许或拒绝新用户或组的权限。
级别描述
执行方法允许运行从WMI类别或范例中导出的方法。
全部写入|允许全部读取、写入和删除对所有WMI对象、类别和范例的访问权限。
部分写入|允许对静态WMI对象进行写入访问。
提供程序写入|允许对提供程序提供的对象进行写入访问。
启用帐户|允许对WMI对象进行读取访问。
远程启用|允许对名称空间进行远程访问。
读取安全|允许对WMI安全信息进行只读访问。
编辑安全|允许读取和写入WMI安全信息。