- notageek.it di Mirko Iodice - http://www.notageek.it -

Change Local Administrator Password On All Computers In A List

una guida [1] sull’uso di questo VBS

Questo script permette di resettare/cambiare la password dell’account "Administrator" locale di tutti i computer specificati in un elenco.

Richiede in input soltanto un semplice file di testo (computers.txt) contenente i nomi (o gli indirizzi IP) dei PC sui quali effettuare il reset della password di "Administrator"; è possibile generare velocemente tale elenco utilizzando lo script “List All Computers And Users Within An OU And SubOUs [2]“.
Come output vengono generati due files: "errors.txt" e "changepwd.txt". Il primo riporta gli errori di connessione e grazie al loro numero/descrizione sarà possibile distinguere i computer spenti o inesistenti da quelli che hanno negato l'accesso alle vostre credenziali utente, il secondo invece costituisce il risultato dell'esecuzione ed ha appunto lo scopo di mettere in evidenza i client sui quali invece il cambio password è avvenuto con successo.

Gestisce in maniera completamente autonoma le operazioni di scrittura dei risultati su file di testo, potete perciò eseguirlo indifferentemente con entrambi i motori WSH ("wscript.exe" oppure "cscript.exe") senza quindi dovervi preoccupare di reindirizzarne manualmente l'output.

La password che verrà impostata impostata è l'unica informazione da modificare nel codice sorgente, la trovate a riga 17: objAdmin.SetPassword "P@ssw0rd".

Set oFS = CreateObject("Scripting.FileSystemObject")
Set oTS = oFS.OpenTextFile("computers.txt")
Set oTSOut = oFS.CreateTextFile("errors.txt")
Set ResultsFile = oFS.CreateTextFile("changedpwd.txt")
TotErr = 0

'go through the text file
Do Until oTS.AtEndOfStream
	'get next computer
	strComputer = oTS.ReadLine
	On Error Resume Next
	Set objAdmin = GetObject("WinNT://" & strComputer & "/Administrator,user")
	If Err <> 0 Then
		TotErr = TotErr + 1
		oTSOut.WriteLine "Error on " & strComputer & ":" & Err.Number & ", " & Err.Description
	Else
		objAdmin.SetPassword "P@ssw0rd"
		objAdmin.SetInfo
		If Err <> 0 Then
			TotErr = TotErr + 1
 			oTSOut.WriteLine "Error on " & strComputer & ":" & Err.Number & ", " & Err.Description
		Else
			ResultsFile.WriteLine("Administrator password changed on " & strComputer)
		End If
	End If
Loop

oTS.Close
oTSOut.Close
ResultsFile.Close

If TotErr = 0 Then
	msgbox "Task completed with " & TotErr & " errors"
Else
	msgbox "Task completed with " & TotErr & " errors" & Chr(10) & Chr(13) & "Please check the error log"
End If