VBS script to connect via IPC and return "correct" or "failed" password

I need to run a script that will tell me:
1 is the computer on and responding to IPC queries?
2 "is this username/password' I'm using valid?


Why?
I can get serials from computer that are on and I have the password to, the rest fail (of course)
The script I want to write will tell me if I'm looking for a turned off computer or do I need to find the correct password?


BTW: I don't need this really written *for* me, just need the code snippets and/or Google search terms to help me find what I'm missing:
Is this computer responding? (do I need to find its last logon, has it logged in)
Is my password wrong?  (error code and what the heck to do with one)

On Error Resume Next
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("excel")
 
'file output
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\Documents and Settings\All Users\Desktop\SERIALS.CSV", True)
 
 
Computers = Array("comp1","comp2")
For Each Computer in Computers
winmgmt1 = "winmgmts:{impersonationLevel=impersonate}!//"& Computer &""
'WScript.Echo winmgmt1
Set SNSet = nothing
Set SNSet = GetObject( winmgmt1 ).InstancesOf ("Win32_BIOS")
for each SN in SNSet
REM	MsgBox "The serial number for the specified computer is: " & Computer & SN.SerialNumber
REM    WshShell.Sendkeys (Computer)
REM    WshShell.Sendkeys ("{tab}")
REM    WshShell.Sendkeys (SN.SerialNumber)
REM    WshShell.Sendkeys ("{ENTER}")
 
' Output
a.Writeline (Computer)&","& (SN.SerialNumber)
Next
Next

Open in new window

TechniMemphisAsked:
Who is Participating?
 
RobSampsonConnect With a Mentor Commented:
Hi, try this. For requirement a) I've added a Ping function.
For requirement b) I've added an error check on the WMI connection....

Regards,

Rob.
On Error Resume Next
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("excel")
 
'file output
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\Documents and Settings\All Users\Desktop\SERIALS.CSV", True)
 
Computers = Array("comp1","comp2")
For Each Computer In Computers
	If Ping(Computer) = True Then
		On Error Resume Next
		winmgmt1 = "winmgmts:{impersonationLevel=impersonate}!//"& Computer &""
		If Err.Number <> 0 Then
			MsgBox "Error connecting to " & Computer & VbCrLf & "Error: " & Err.Number & VbCrLf "Description: " & Err.Description
			Err.Clear
		Else
			Err.Clear
			On Error GoTo 0
			'WScript.Echo winmgmt1
			Set SNSet = Nothing
			Set SNSet = GetObject( winmgmt1 ).InstancesOf ("Win32_BIOS")
			For Each SN In SNSet
				REM	MsgBox "The serial number for the specified computer is: " & Computer & SN.SerialNumber
				REM    WshShell.Sendkeys (Computer)
				REM    WshShell.Sendkeys ("{tab}")
				REM    WshShell.Sendkeys (SN.SerialNumber)
				REM    WshShell.Sendkeys ("{ENTER}")
 
				' Output
				a.Writeline (Computer)&","& (SN.SerialNumber)
			Next
		End If
	Else
		MsgBox Computer & " failed to respond to ping."
	End If
Next
 
Function Ping(strComputer)
	Dim objShell, boolCode
	Set objShell = CreateObject("WScript.Shell")
	boolCode = objShell.Run("Ping -n 1 -w 300 " & strComputer, 0, True)
	If boolCode = 0 Then
		Ping = True
	Else
		Ping = False
	End If
End Function

Open in new window

0
 
TechniMemphisAuthor Commented:
Absolutely perfect!!
Made a couple changes for my situation and it worked like a charm!
Thank you!
Chad

0
 
RobSampsonCommented:
No problem. Thanks for the grade.

Regards,

Rob.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.