您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp.net >> 正文

深入挖掘Windows脚本技术

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-30 我要参与讨论

  rver(ip,"root\default",user,pass).get("stdregprov")
HKLM=&h80000002
out=oreg.setdwordvalue(HKLM,"SOFTWARE\Microsoft\TelnetServer\1.0","NTLM",ntlm)
out=oreg.setdwordvalue(HKLM,"SOFTWARE\Microsoft\TelnetServer\1.0","TelnetPort",port)

现在是不是简单多了?

接着是对telnet服务状态的控制。

set objswbemservices=objlocator.connectserver(ipaddress,"root\cimv2",username,password)
set colinstances=objswbemservices.execquery("select * from win32_service where name='tlntsvr'")

这次连接的是root\cimv2名字空间。然后采用wql(sql for WMI)搜索tlntsvr服务。熟悉sql语法的一看就知道是在做什么了。这样得到的是一组Win32_Service实例,虽然where语句决定了该组总是只有一个成员。
为简单起见,假设只要切换服务状态。

for each objinstance in colinstances
if objinstance.started=true then '根据started属性判断服务是否已经启动'
intstatus=objinstance.stopservice() '是,调用stopservice停止服务'
else
intstatus=objinstance.startservice() '否,调用startservice启动服务'
end if
next

关键的代码就是这些了,其余都是处理输入输出和容错的代码。
总结一下过程:
1,连接服务器和合适的名字空间。
2,用get或execquery方法获得所需对象的一个或一组实例。
3,读写对象的属性,调用对象的方法。

那么,如何知道要连接哪个名字空间,获得哪些对象呢?《WMI技术指南》[3]中分类列出了大量常用的对象。可惜它没有相应的电子书,你只有到书店里找它了。你也可以用WMITools里WMI CIM Studio这个工具的搜索功能,很容易就能找想要的对象。找到对象后,WMI CIM Studio能列出其属性和方法,然后到MSDN里找具体的帮助。而应用举例,除了我写的7个RS系列脚本,还有参考资料[4]。

需要特别说明的是,在参考资料[4]中,连接服务器和名字空间用的是类似如下的语法:

Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"&strComputer&"\root\cimv2:Win32_Process")

详细的语法在《WMI技术指南》和MSDN中有介绍,但我们不关心它,因为这种办法没有用户名和密码参数。 因此,只有在当前用户在目标系统(含本地)有登陆权限的情况下才能使用。而connectserver如果要本地使用,第一个参数可以是127.0

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

在google里搜索更多深入挖掘Windows脚本技术

Google
Web www.51ec.org
  • 上一篇信息学院:

  • 下一篇信息学院:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    我来说两句 对此文章发表了评论
      昵 称: *必填    ·注册用户·
      评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
    评 论
    内 容

     
    评论列表 (最新 评论仅限网友观点!)

    供求信息




    | 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明