WMI scripting template which prompts you to enter (via StdIn) the names of all the computers you want to run the script against. This script prompts you to enter a user name and password to be used when connecting to the remote computer; the script uses ScriptPW.dll to mask the password so that it does not appear on screen. The script also 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. The script runs only on Windows XP and Windows Server 2003, because those are the only two operating systems that support ScriptPW.

Visual Basic
Edit|Remove
On Error Resume Next

Const WbemAuthenticationLevelPktPrivacy = 6

Wscript.StdOut.Write "Please enter the user name: "
strUser = WScript.StdIn.ReadLine

Set objPassword = CreateObject("ScriptPW.Password") 
WScript.StdOut.Write "Please enter your password:" 

strPassword = objPassword.GetPassword() 

Wscript.Echo
strNamespace = "root\cimv2"

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

            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