WMI scripting template which prompts you to enter (via StdIn) the names of all the computers you want to run the script against. Computer names should be separated by blanks spaces. For example: atl-ws-01 atl-ws-02 atl-ws-03. This script pings the relevant computer before trying to make a connection. The script requires Windows Script Host 5.6 and must be run under Cscript.exe.

Visual Basic
Edit|Remove
On Error Resume Next

Wscript.StdOut.Write "Please enter the names of the computers you want to connect to: "

strComputers = WScript.StdIn.ReadLine

If strComputers = "" Then
    Wscript.Quit
End If

arrComputers = Split(strComputers, " ")

For Each strComputer in arrComputers

    Set objShell = CreateObject("WScript.Shell")
    strCommand = "%comspec% /c ping -n 3 -w 1000 " & strComputer & ""
    Set objExecObject = objShell.Exec(strCommand)

    Do While Not objExecObject.StdOut.AtEndOfStream
        strText = objExecObject.StdOut.ReadAll()
        If Instr(strText, "Reply") > 0 Then

            ' =====================================================================
            ' Insert your code here
            ' =====================================================================

            Set objWMIService = GetObject _
                ("winmgmts:\\" & strComputer & "\root\cimv2")
            Set colItems = objWMIService.ExecQuery _
                ("Select * From Win32_OperatingSystem")
            For Each objItem in ColItems
                Wscript.Echo strComputer & ": " & objItem.Caption
            Next
    
            ' =====================================================================
            ' End
            ' =====================================================================

        Else
            Wscript.Echo strComputer & " could not be reached."
        End If
    Loop
Next