Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
InfoOn = ""
InfoOff = ""
numOn = 0
numOff = 0
Set FSource = fso.OpenTextFile("d:\Arhiv\My\Scripts\Vbs\comps.list", 1, True)
Do While FSource.AtEndOfStream <> True
stro = FSource.ReadLine
pos = InStr(stro," ")
strName = Trim(Mid(stro,1,pos-1))
stro = Trim(Mid(stro,pos+1))
pos = InStr(stro," ")
strUser = Trim(Mid(stro,1,pos-1))
stro = Trim(Mid(stro,pos+1))
strComment = Trim(stro)
strCommand = "ping -n 1 -4 " & strName
ReturnCode = WshShell.Run(strCommand, 0, True)
'0 = pingable, 1 = no response
If ReturnCode = 0 Then
numOn = numOn + 1
InfoOn = InfoOn & numOn & ". " & strName & " (" & strComment & ")" & vbCrLf
Else
numOff = numOff + 1
InfoOff = InfoOff & numOff & ". " & strName & " (" & strComment & ")" & vbCrLf
End If
Loop
FSource.Close
WScript.Echo "=== Включены: ===" & vbCrLf & InfoOn & vbCrLf & "=== Отключены: ===" & vbCrLf & InfoOff
И второй вариант - с помощью ассинхронных запросов WMI: pingall_assync.zip |