User Account erstellen, User umbenennen, Passwort setzten...
Hallo,
ich weiß dass sind gleich viele Dinge auf einmal. Aber ich würde das eben gerne in einem Scrip lösen, wenn möglich.
Also jetzt nochmal langsam....
1) Ich möchte einen lokalen Benutzer erstellen und das Passwort setzten.
2) Dann möchte ich den lokalen Administrator umbenennen und das Passwort ebenfalls ändern.
3) und dann soll noch ein AD-Gruppe der Gruppe der lokalen Administratoren hinzugefügt werden.
1 und 2 funktionieren soweit ganz gut, aber ich weiß natürlich, dass es ein Sicherheitsrisiko ist, ein Passwort in ein VBS zu schreiben. Hier wäre ich über eine Tipp froh, ob es soetwas wie ne PW Abfrage gibt.....
mit Punkt 3 habe ich leider so mein Problem, es will irgendwie nicht klappen.
Schon jetzt danke für lesen und für evtl Tipps und Lösungen.
Carsten
Hier mal mein Script:
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
strUser = "Support"
strPass = "XXXXXXX"
sOldUser = "Administrator"
sNewUser = "Master"
Set WshNetwork = WScript.CreateObject("WScript.Network")
' create Support User
strComputer = WshNetwork.ComputerName
Set colAccounts = GetObject("WinNT:" & strComputer & "")
Set objUser = colAccounts.Create("user", strUser)
objUser.SetPassword strPass
objUser.SetInfo
Set objGroup = GetObject("WinNT:" & strComputer & "/Administrators,group")
Set objUser = GetObject("WinNT:" & strComputer & "/" & strUser & ",user")
objGroup.Add(objUser.ADsPath)
objUserFlags = objUser.Get("UserFlags")
objPasswordExpirationFlag = objUserFlags OR ADS_UF_DONT_EXPIRE_PASSWD
objUser.Put "userFlags", objPasswordExpirationFlag
objUser.SetInfo
' rename Administrator into Master
sComputerName = "." ' use "." for local computer
Set colUsers = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& sComputerName & "\root\cimv2").ExecQuery _
("select Name from Win32_UserAccount where name = '" & sOldUser & "'")
If colUsers.Count > 0 Then
For Each oUser In colUsers
iRC = oUser.Rename(sNewUser)
If iRC = 0 Then
WScript.Echo "User renamed"
Else
WScript.Echo "Rename method returned ERROR # " & iRC
End if
Next
Else
WScript.Echo "No user found"
End If
'Passwort von Master (lokaler Admin) ändern
Set objUser = GetObject("WinNT:" & strComputer & "/Master, user")
objUser.SetPassword "XXXXXXX"
objUser.SetInfo
'Gruppe der lokalen Admingruppe hinzufügen
Set objUser = GetObject("WinNT://" & strComputer & "Domain\Gruppe, Administratoren")
Set oShell = WScript.CreateObject("WScript.Shell")
WScript.Echo "Done!"
ich weiß dass sind gleich viele Dinge auf einmal. Aber ich würde das eben gerne in einem Scrip lösen, wenn möglich.
Also jetzt nochmal langsam....
1) Ich möchte einen lokalen Benutzer erstellen und das Passwort setzten.
2) Dann möchte ich den lokalen Administrator umbenennen und das Passwort ebenfalls ändern.
3) und dann soll noch ein AD-Gruppe der Gruppe der lokalen Administratoren hinzugefügt werden.
1 und 2 funktionieren soweit ganz gut, aber ich weiß natürlich, dass es ein Sicherheitsrisiko ist, ein Passwort in ein VBS zu schreiben. Hier wäre ich über eine Tipp froh, ob es soetwas wie ne PW Abfrage gibt.....
mit Punkt 3 habe ich leider so mein Problem, es will irgendwie nicht klappen.
Schon jetzt danke für lesen und für evtl Tipps und Lösungen.
Carsten
Hier mal mein Script:
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
strUser = "Support"
strPass = "XXXXXXX"
sOldUser = "Administrator"
sNewUser = "Master"
Set WshNetwork = WScript.CreateObject("WScript.Network")
' create Support User
strComputer = WshNetwork.ComputerName
Set colAccounts = GetObject("WinNT:" & strComputer & "")
Set objUser = colAccounts.Create("user", strUser)
objUser.SetPassword strPass
objUser.SetInfo
Set objGroup = GetObject("WinNT:" & strComputer & "/Administrators,group")
Set objUser = GetObject("WinNT:" & strComputer & "/" & strUser & ",user")
objGroup.Add(objUser.ADsPath)
objUserFlags = objUser.Get("UserFlags")
objPasswordExpirationFlag = objUserFlags OR ADS_UF_DONT_EXPIRE_PASSWD
objUser.Put "userFlags", objPasswordExpirationFlag
objUser.SetInfo
' rename Administrator into Master
sComputerName = "." ' use "." for local computer
Set colUsers = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& sComputerName & "\root\cimv2").ExecQuery _
("select Name from Win32_UserAccount where name = '" & sOldUser & "'")
If colUsers.Count > 0 Then
For Each oUser In colUsers
iRC = oUser.Rename(sNewUser)
If iRC = 0 Then
WScript.Echo "User renamed"
Else
WScript.Echo "Rename method returned ERROR # " & iRC
End if
Next
Else
WScript.Echo "No user found"
End If
'Passwort von Master (lokaler Admin) ändern
Set objUser = GetObject("WinNT:" & strComputer & "/Master, user")
objUser.SetPassword "XXXXXXX"
objUser.SetInfo
'Gruppe der lokalen Admingruppe hinzufügen
Set objUser = GetObject("WinNT://" & strComputer & "Domain\Gruppe, Administratoren")
Set oShell = WScript.CreateObject("WScript.Shell")
WScript.Echo "Done!"
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189065
Url: https://administrator.de/contentid/189065
Ausgedruckt am: 26.11.2024 um 03:11 Uhr
9 Kommentare
Neuester Kommentar
Halli Hallo Hallöle,
zu Punkt 3: Dies tut ein simpler Einzeiler auf der Commandshell:
Gruss Penny
P.S. Auch die anderen beiden Punkte könnte man mit einem Batch erledigen, man kann es auch mittels VB-Skript oder Powershell machen.
zu Punkt 3: Dies tut ein simpler Einzeiler auf der Commandshell:
net group <administratorengruppenname> /ADD <hinzufügende gruppe> /DOMAIN
Gruss Penny
P.S. Auch die anderen beiden Punkte könnte man mit einem Batch erledigen, man kann es auch mittels VB-Skript oder Powershell machen.
Also das Passwort kann man setzen mit
Wobei benutzername und passwort die platzhalter sind, und sinngemäß ersetzt werden müssen.
Der Parameter /DOMAIN benötigst du, wenn es sich um eine Domäne handelt.
Dieser befehl erstellt auch ein Benutzerkonto und vergibt auch gleich das Passwort.
Schau Dir mal den Befehl net help user an.
Man schon sehr viel via Commandline und Batches machen. Unter anderem Bastla und einige weitere haben da schon sehr viel geholfen. Schau mal hier rein.
Hier findest Du einiges, was Du verwenden kannst.
Gruss Penny.
net user <benutzername> <password> /DOMAIN
Wobei benutzername und passwort die platzhalter sind, und sinngemäß ersetzt werden müssen.
Der Parameter /DOMAIN benötigst du, wenn es sich um eine Domäne handelt.
Dieser befehl erstellt auch ein Benutzerkonto und vergibt auch gleich das Passwort.
Schau Dir mal den Befehl net help user an.
Man schon sehr viel via Commandline und Batches machen. Unter anderem Bastla und einige weitere haben da schon sehr viel geholfen. Schau mal hier rein.
Hier findest Du einiges, was Du verwenden kannst.
Gruss Penny.