Board logo

标题: [问题求助] VBS脚本怎样批量ping的电脑名称? [打印本页]

作者: anbo2012    时间: 2012-6-11 20:53     标题: VBS脚本怎样批量ping的电脑名称?

[分享] 批量PING计算机,返回不通的计算机列表
  1. lists = "SERVER;PENYAN;Caiwu;andysky"
  2. aMachines = split(lists,";")
  3. For Each machine in aMachines
  4.     Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
  5.         ExecQuery("select * from Win32_PingStatus where address = '"& machine & "'")
  6.     For Each objStatus in objPing
  7.         If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then ss = ss &vbcr&  machine
  8.     Next
  9. Next
  10. WScript.Echo("以下计算机PING不通:" & ss )
复制代码
其中lists = "SERVER;ENYAN;LIU-XIELI;andysky"表示四台电脑的名字,你可以将你的局域网中所有电脑名输入进去,执行后将罗列出所有PING不通的电脑名字

以上Ping实例,查出来是ping不通的电脑名称,那如果改成ping通的,应该怎么修改VBS里的内容啊,谢谢,研究了下弄不好,谢谢!
如果批量查出得结果,可以导出为EXCEl格式或者txt格式就好了!!因为查出来的很多,没法比对,因为我要知道是那些电脑没关机,核对起来太麻烦!!谢谢!非常感谢!!
作者: broly    时间: 2012-6-12 16:56

  1. lists = "SERVER;PENYAN;Caiwu;andysky"
  2. aMachines = split(lists,";")
  3. For Each machine in aMachines
  4.     Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
  5.         ExecQuery("select * from Win32_PingStatus where address = '"& machine & "'")
  6.     For Each objStatus in objPing
  7.         If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
  8.           s1 = s1 &vbcr&  machine
  9.         Else
  10.           s2 = s2 &vbcr&  machine
  11.         End If
  12.     Next
  13. Next
  14. Set fso=CreateObject("Scripting.Filesystemobject")
  15. Set f=fso.CreateTextFile("d:\ping_log",True)
  16. f.Write "ping通:"&vbCrLf&s2
  17. f.close
  18. WScript.Echo("保存为d:\ping_log.txt")
复制代码

作者: anbo2012    时间: 2012-6-12 22:13

非常感谢版主,谢谢!我先试试看,谢谢!




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2