WMI scripting template that runs the script against each computer whose name was entered as a command-line argument (individual computer names must be separated by blank spaces). This script prompts you to enter a user name and password to be used when connecting to the remote computers; it also pings the relevant computer before trying to make a connection. To run the script, type the script name followed by the names of the computers you want to run the script against. For example: my_script.vbs atl-ws-01 atl-ws-2 atl-ws-03.

Visual Basic
Edit|Remove
On Error Resume Next

Const WbemAuthenticationLevelPktPrivacy = 6

If Wscript.Arguments.Count = 0 Then
    Wscript.Echo "You must enter at least one computer name when starting this script."
    Wscript.Quit
End If

strCredentials = InputBox _
    ("Please enter the user name, a blank space, and then the password:", _
        "Enter User Credentials")

If strCredentials = "" Then
    Wscript.Quit
End If

arrCredentials = Split(strCredentials," ")
strUser = arrCredentials(0)
strPassword = arrCredentials(1)
strNamespace = "root\cimv2"

For Each strComputer in Wscript.Arguments

    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

            Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
            Set objWMIService = objwbemLocator.ConnectServer _
                (strComputer, strNamespace, strUser, strPassword)
            objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy


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

            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