Administrator Passwort mit SID ändern
Hallo Zusammen,
erstmal ich bin neu hier. Ich hoffe das ich alle Regeln eingehalten habe. Und zwar ich suche ein Script welches das lokale Administrator Passwort ändert. Hört sich simple an aber da der lokale Administrator in jedem Land anders heißt muss man die SID zur Hilfe zu nehmen. Nach stundenlangen Googlen und durchlesen unzähliger Forenbeiträge habe ich ein Großteil des Scripts zusammenschustern können. Aber ich scheitere immer an einem Punkt - ich hoffe ihr könnt mir helfen.
Hier der Code:
...
Set WshNetwork = WScript.CreateObject("WScript.Network")
strComputer = WshNetwork.ComputerName
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAccounts = objWMIService.ExecQuery _
("Select * From Win32_UserAccount Where LocalAccount = TRUE")
For Each objAccount in colAccounts
If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
Wscript.Echo objAccount1.Name
End If
Next
Set objUser = GetObject("WinNT://" & strComputer & ???)
objUser.SetPassword "newpasswort" ' <--- this will be the new admin password.
objUser.SetInfo
Mein Problem habe ich rot makiert, und zwar müsste statt "Wscript.Echo objAccount.Name" das Objekt in eine Variable "umgewandelt" werden damit ich es bei den ??? einsetzen und damit weiterarbeiten kann. Oder gibt es da noch eine andere Möglichkeit? Ich hoffe irgendjemand kann mir helfen!!!
Gruß Lukas
erstmal ich bin neu hier. Ich hoffe das ich alle Regeln eingehalten habe. Und zwar ich suche ein Script welches das lokale Administrator Passwort ändert. Hört sich simple an aber da der lokale Administrator in jedem Land anders heißt muss man die SID zur Hilfe zu nehmen. Nach stundenlangen Googlen und durchlesen unzähliger Forenbeiträge habe ich ein Großteil des Scripts zusammenschustern können. Aber ich scheitere immer an einem Punkt - ich hoffe ihr könnt mir helfen.
Hier der Code:
...
Set WshNetwork = WScript.CreateObject("WScript.Network")
strComputer = WshNetwork.ComputerName
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAccounts = objWMIService.ExecQuery _
("Select * From Win32_UserAccount Where LocalAccount = TRUE")
For Each objAccount in colAccounts
If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
Wscript.Echo objAccount1.Name
End If
Next
Set objUser = GetObject("WinNT://" & strComputer & ???)
objUser.SetPassword "newpasswort" ' <--- this will be the new admin password.
objUser.SetInfo
Mein Problem habe ich rot makiert, und zwar müsste statt "Wscript.Echo objAccount.Name" das Objekt in eine Variable "umgewandelt" werden damit ich es bei den ??? einsetzen und damit weiterarbeiten kann. Oder gibt es da noch eine andere Möglichkeit? Ich hoffe irgendjemand kann mir helfen!!!
Gruß Lukas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 108599
Url: https://administrator.de/forum/administrator-passwort-mit-sid-aendern-108599.html
Ausgedruckt am: 29.04.2025 um 23:04 Uhr
5 Kommentare
Neuester Kommentar
Moin Luke61,
willkommen im Forum.
Dein Schnipsel um die restlichen Puzzleteile ergänzt könnte so ungefähr aussehen.
Die beiden Setze-neues-Passwort-Zeilen habe ich erstmal auskommentiert ... brauchst Du ja zum Testen nicht.
Grüße
Biber
willkommen im Forum.
Dein Schnipsel um die restlichen Puzzleteile ergänzt könnte so ungefähr aussehen.
Set WshNetwork = CreateObject("WScript.Network")
strComputer = WshNetwork.ComputerName
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAccounts = objWMIService.ExecQuery _
("Select * From Win32_UserAccount Where LocalAccount = TRUE")
For Each objAccount in colAccounts
If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
strLocalAdminsName = objAccount.Name
Wscript.Echo "Der lokale Administrator mit SID S-1-5-..-500 heiss t" & strLocalAdminsName
Set objUser = GetObject("WinNT://" & strComputer & "/" & strLocalAdminsName, user")
' #uncomment objUser.SetPassword "newpasswort" ' <--- this will be the new admin password.
' #uncomment objUser.SetInfo
End If
Next
Die beiden Setze-neues-Passwort-Zeilen habe ich erstmal auskommentiert ... brauchst Du ja zum Testen nicht.
Grüße
Biber
Moin Luke61,
sorry, so konnte és auch nicht funktionieren...
STREICHE: .
Set objUser = GetObject("WinNT:" & strComputer & "/" & strLocalAdminsName & ", user")
Ob die beiden mach-mir-dat-Passwort-Anweisungen innerhalb/außerhalb der FOR-EACH-Anweisung sind oder gar in eine kleine Funktion gekapselt werden ist rein philosophisch/ästhetisch zu entscheiden.
Es gibt ja genau eine Wellknown-SID mit dieser Endziffer -500, die den lokalen Adnim auszeichnet.
Ob der nun "Administrator" oder "Hugo" gerufen wird dagegen ist sprach- und computerabhängig.
Grüße
Biber
sorry, so konnte és auch nicht funktionieren...
STREICHE: .
Set objUser = GetObject("WinNT:" & strComputer & "/" & strLocalAdminsName, user")
SETZE:Set objUser = GetObject("WinNT:" & strComputer & "/" & strLocalAdminsName & ", user")
Ob die beiden mach-mir-dat-Passwort-Anweisungen innerhalb/außerhalb der FOR-EACH-Anweisung sind oder gar in eine kleine Funktion gekapselt werden ist rein philosophisch/ästhetisch zu entscheiden.
Es gibt ja genau eine Wellknown-SID mit dieser Endziffer -500, die den lokalen Adnim auszeichnet.
Ob der nun "Administrator" oder "Hugo" gerufen wird dagegen ist sprach- und computerabhängig.
Grüße
Biber