xcaschox
Goto Top

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!"

Content-ID: 189065

Url: https://administrator.de/contentid/189065

Ausgedruckt am: 26.11.2024 um 03:11 Uhr

Penny.Cilin
Penny.Cilin 03.08.2012 um 11:27:06 Uhr
Goto Top
Halli Hallo Hallöle,

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.
XcaschoX
XcaschoX 03.08.2012 um 11:30:06 Uhr
Goto Top
Hi Penny,
den simpler Einzeiler auf der Commandshell kenne ich,
aber ich würde das ganze eben gerne automatisiert in einer Batch oder per VB machen.

Gruss C.
Penny.Cilin
Penny.Cilin 03.08.2012 um 11:39:59 Uhr
Goto Top
Ja und, Du kannst doch den simplen Einzeiler in eine Batch verpacken. Dun musst nur die Platzhalter entsprechend anpassen, evtl. mit set /p <variable> und dann ab die Post.

Ob in dem Skript nun VB-Code, Powershell, oder Commands drin stehen ist doch egal. Hauptsache es tut was es soll.


Gruss Penny.
XcaschoX
XcaschoX 03.08.2012 um 11:44:14 Uhr
Goto Top
Aber wie ist das mit dem erstellen und umbenennen der User und die Sache mit dem Passwort?
Sorry bin nicht so fit im batch bzw. script erstellen. Habe das obige Script hier gefunden. face-smile

Gruss C.
Penny.Cilin
Penny.Cilin 03.08.2012 um 12:44:38 Uhr
Goto Top
Also das Passwort kann man setzen mit
 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.
Carsten84
Carsten84 03.08.2012 um 14:16:39 Uhr
Goto Top
Punkt 3 kannst du auch mit einer GPO erschlagen....
XcaschoX
XcaschoX 03.08.2012 um 15:05:29 Uhr
Goto Top
Hallo C Sebald,
ich weiß. Aber wie schon gesagt, Script wäre mir lieber. Und dann ist ja auch noch die Passwort Geschichte.

Trotzdem Danke.

C.
DerWoWusste
DerWoWusste 03.08.2012 um 16:15:25 Uhr
Goto Top
Hi.

Erzähl mal, wie das Skript gestartet werden soll, damit klar wird
A) warum das Kennwort ein Problem darstellt
B) warum das Skript den GPOs vorgezogen wird (GPOs machen das in Sekunden und sicher - sowohl 1,2 als auch 3).

PS: net group und net localgroup sind etwas Verschiedenes.
XcaschoX
XcaschoX 03.08.2012 aktualisiert um 17:22:49 Uhr
Goto Top
Hi,
also das ganze ist ein Prozess mit mehreren Schritten und einer davon ist eben das erstellen und umbenennen der User mit PW ändern und dann das hinzufügen der Gruppen.

zu a) weil das PW im Skript oder der Batch in Klarschrift seht......

vielleicht noch etwas zum Hintergrund.
Unsere Superuser (in verschiedenen Ländern) gehen uns bei der Installation von neuer Hardware zur Hand. Diese wissen aber nur das "Support" User Passwort und nicht das PW vom Administrator (dann Master), daher sollte das natürlich nicht in einem Scrip stehen.....

Wir sind hier noch am Anfang mit AD, GPO´s, Installationsabläufe, etc, da wir von Novell umstellen und dort vieles über ZEN geregelt wurde müssen wir einiges umplanen. Bestimmt gibt es für mein Problem eine einfache Lösung mit GPO´s aber die müssen wir erst noch für uns finden......

Gruß
C.