ADSI 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

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

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

            strComputer = "WinNT://" & strComputer

            Set objDSO = GetObject("WinNT:")
            Set objComputer = objDSO.OpenDSObject _
                (strComputer, strUser, strPassword, _
                    ADS_SECURE_AUTHENTICATION AND ADS_USE_ENCRYPTION)
    
            ' =====================================================================
            ' Insert your code here
            ' =====================================================================

            objComputer.Filter = Array("User")
            For Each objUser in objComputer
                Wscript.Echo objUser.Name
            Next
    
            ' =====================================================================
            ' End
            ' =====================================================================

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