晨风资讯网
新闻资讯网络冲浪网页设计网络编程图形图像数据库网络媒体服务器网络安全网站运营软件教程黑客认证Wap技术
教程搜索
教程搜索:
  首页 > 网络安全 > 基础知识 > 正文  

认识win强大的管理工具——WMI
日期:2006-1-21 8:59:47 来源:网络 作者:无名 浏览:

以下内容均为自己理解的,如有错误之处还请大家指出。

  我的技术面很窄,所以以下内容中的代码均为ASP+VBScript。


正文:
----------------------------------------------------------------------------------------------

    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



    以上列举了一些不同类型的命名空间的对象的枚举方法,从上面的方法中我们可以看到用法都是一样的。

本新闻共2

本教程共2页,当前在第1页  1  2  


上一篇: 解析网络防护层配置以及物理安全性 下一篇:

Windows 2000操作系统光盘探秘

返回列表 打印此页 加入收藏 资讯论坛 关闭窗口 点击复制本页地址,发送给QQ/MSN好友
关于我们 - 联系我们 - 版权声明 - 帮助(?) - 广告服务 - 友情链接 - 服务项目 - 人才招聘
2003-2008 版权所有 © 晨风资讯网 未经授权禁止复制或建立镜像
CopyRight 2003-2008 www.Net118.com,All Rights Reserved.Design By ChenFeng Network Studio