6989
Goto Top

Benutzerverwaltung ohne Domäne per VB-Script

Wie geht das nur ?

Hallo,
ich quäle mich seit Tagen mit einem Script zur Benutzereinrichtung herum und komme nicht weiter. Vielleicht kann mir jemand helfen.
Es gelingt mir nicht, den Eintrag 'Benutzer muß Kennwort bei nächster Anmeldung ändern' zu aktivieren.
Danke
Jens

Content-ID: 4389

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

Ausgedruckt am: 15.11.2024 um 07:11 Uhr

Fizban
Fizban 29.11.2004 um 22:48:23 Uhr
Goto Top
Hallo Jens,

könntest Du das Script vielleicht posten? Interresiert vielleicht auch andere wie das geht.

Gruß

Nils
6989
6989 30.11.2004 um 02:40:52 Uhr
Goto Top
Hallo Nils,
hier gerne ein Ausschnitt.
Dem Problem bin ich etwas näher gekommen. Wenn man beim Anlegen kein Passwort setzt, ist das Ändern bei erster Anmeldung default.
Aber wie man beides, also Passwort und Ändern bei erster Anmeldung setzen kann, ???

Const Computername = "."
SET Computer= GetObject("WinNT://"&Computername&",computer")
Computer.Filter = Array("user")

UserName = "testuser"
Password = "testuser"
FullName = "Test User"
Description = "Das ist ein Test."

CreateUser = True
For Each UserObject In Computer
If UCASE(UserObject.name) = UCASE(UserName) Then
CreateUser = False
End If
Next

If CreateUser Then
Set User = Computer.Create("user", UserName)
' User.SetPassword Password
User.Description = Description
User.Fullname = Fullname
User.SetInfo
wsh.echo UserName & " angelegt."
Else
wsh.echo UserName & " existiert bereits."
End If
Fizban
Fizban 30.11.2004 um 12:02:39 Uhr
Goto Top
Hi Jens,

ich denke das Du versucht hast das Ändern bei erster Anmeldung gleich mit beim erstellen des Benutzers zu setzen. Das geht aber nicht. Man kann die Eigenschaften eines Benutzers nicht ändern, der noch gar nicht existiert.

Versuchs doch mal so:

If CreateUser Then
Set User = Computer.Create("user", UserName)
User.SetPassword Password
User.Description = Description
User.Fullname = Fullname
User.SetInfo
User.Put "pwdLastSet", 0
User.SetInfo
wsh.echo UserName & " angelegt."
Else
wsh.echo UserName & " existiert bereits."
End If

Gruß

Nils
6989
6989 30.11.2004 um 16:12:52 Uhr
Goto Top
Hallo Nils,
danke, aber das habe ich alles schon versucht.
User.Put "pwdLastSet", 0
scheint mir nur für LDAP: zu funktionieren.
Ich benutze WinNT: , da ich kein ActiveDirectory habe, da habe ich bisher nur sowas wie
User.UserFlags = ADS_UF_PASSWD_CANT_CHANGE
gefunden.
Mit diesen Flags muß ich mal noch etwas rumspielen, evt. geht's damit, aber so richtig im Griff hab' ich die Dinger noch nicht.
Gruß
Jens
Fizban
Fizban 30.11.2004 um 17:40:49 Uhr
Goto Top
Hi,

ich hab mal ein paar UserFlags zusammen gesammelt:

Const UF_SCRIPT = &H1
Const UF_ACCOUNTDISABLE = &H2
Const UF_HOMEDIR_REQUIRED = &H8
Const UF_LOCKOUT = &H10
Const UF_PASSWD_NOTREQD = &H20
Const UF_PASSWD_CANT_CHANGE = &H40
Const UF_TEMP_DUPLICATE_ACCOUNT = &H100
Const UF_NORMAL_ACCOUNT = &H200
Const UF_INTERDOMAIN_TRUST_ACCOUNT = &H800
Const UF_WORKSTATION_TRUST_ACCOUNT = &H1000
Const UF_SERVER_TRUST_ACCOUNT = &H2000
Const UF_DONT_EXPIRE_PASSWD = &H10000
Const UF_MNS_LOGON_ACCOUNT = &H20000

Hoffe das hilft Dir weiter.

Nebenbei fällt mir folgendes ein:

User.put "PasswordExpired", 0


Gruß
Nils
6989
6989 30.11.2004 um 17:48:44 Uhr
Goto Top
Danke Nils,
das hilft auf jeden Fall. Muß ich morgen mal durchprobieren.