Freigeben über


Erstellen eines Benutzers

Um einen Benutzer in Active Directory Domain Services zu erstellen, erstellen Sie ein Benutzerobjekt im Domänencontainer der Domäne, in der Sie den Benutzer platzieren möchten. Benutzer können im Stammverzeichnis der Domäne, innerhalb einer Organisationseinheit oder innerhalb eines Containers erstellt werden.

Wenn Sie ein Benutzerobjekt erstellen, müssen Sie auch die in der folgenden Tabelle aufgeführten Attribute festlegen, um das Objekt als juristischen Benutzer festzulegen, der von Active Directory Domain Services und dem Windows-Sicherheit System erkannt wird.

attribute BESCHREIBUNG
Cn Gibt den Namen des Benutzerobjekts im Verzeichnis an. Dies ist der relative Distinguished Name (RDN) des Objekts.
Samaccountname Gibt eine Zeichenfolge an, bei der es sich um den Namen handelt, der zur Unterstützung von Clients und Servern aus einer früheren Version von Windows verwendet wird. Der sAMAccountName sollte weniger als 20 Zeichen lang sein, um Clients aus einer früheren Version von Windows zu unterstützen.
Der sAMAccountName muss für alle Sicherheitsprinzipalobjekte innerhalb der Domäne eindeutig sein. Sie sollten eine Abfrage für die Domäne ausführen, um zu überprüfen, ob sAMAccountName innerhalb der Domäne eindeutig ist.
sAMAccountName ist ein optionales Attribut. Der Server erstellt einen zufälligen sAMAccountName-Wert , wenn keiner angegeben ist.

Sie können auch andere Attribute festlegen. Die folgenden Benutzerattribute werden mit Standardwerten festgelegt, wenn Sie sie zum Zeitpunkt der Erstellung nicht explizit festlegen.

attribute BESCHREIBUNG
accountExpires Gibt an, wann das Konto abläuft. Der Standardwert ist TIMEQ_FOREVER, was angibt, dass das Konto nie abläuft.
Ntsecuritydescriptor Ein Sicherheitsdeskriptor wird basierend auf bestimmten Regeln erstellt. Weitere Informationen finden Sie unter Festlegen von Sicherheitsbeschreibungen für neue Verzeichnisobjekte.
objectCategory Gibt die Benutzerkategorie an. Der Standardwert ist "Person".
name Gibt den Benutzernamen an. Der Standardwert ist der für cn festgelegte Wert.
pwdLastSet Gibt an, wann der Benutzer das Kennwort zuletzt festgelegt hat. Der Standardwert ist null, was angibt, dass der Benutzer das Kennwort bei der nächsten Anmeldung ändern muss.
userAccountControl Enthält Werte, die mehrere Anmelde- und Kontofeatures für den Benutzer bestimmen.
Standardmäßig sind die folgenden Flags festgelegt:
  • UF_ACCOUNTDISABLE : Das Konto ist deaktiviert.
  • UF_PASSWD_NOTREQD : Es ist kein Kennwort erforderlich.
  • UF_NORMAL_ACCOUNT : Standardkontotyp, der einen typischen Benutzer darstellt.
Memberof Gibt die Gruppe(n) an, in der der Benutzer ein direktes Mitglied ist. Der Standardwert ist "Domänenbenutzer".

Ein Benutzer wird erstellt, indem eine Bindung an den gewünschten Container und dann eine der folgenden Methoden verwendet wird. Die Attribute cn und sAMAccountName müssen festgelegt werden, bevor der Benutzer an den Server committet wird.

Methode BESCHREIBUNG
IADsContainer.Create Das cn-Attribut stammt aus dem bstrRelativeName-Parameter . Der neue Benutzer muss durch Aufrufen von IADs.SetInfo committet werden, andernfalls wird das Objekt nicht erstellt. Weitere Informationen finden Sie unter Beispielcode zum Erstellen eines Benutzers.
IDirectoryObject::CreateDSObject Das cn-Attribut stammt aus dem pszRDNName-Parameter . Der neue Benutzer wird committet, wenn CreateDSObject aufgerufen wird. Weitere Informationen finden Sie unter Beispielcode zum Erstellen eines Benutzers.
DirectoryEntries.Add Das cn-Attribut stammt aus dem name-Parameter . Das neue Benutzerobjekt muss durch Aufrufen von DirectoryEntry.CommitChanges commitchanges committet werden, andernfalls wird das Objekt nicht erstellt. Weitere Informationen finden Sie unter Hinzufügen von Verzeichnisobjekten.

Der neue Benutzer muss auf den Server committet werden, bevor andere Attribute als cn und sAMAccountName geändert werden können. Dies liegt daran, dass das Benutzerkonto erst vorhanden ist, wenn der Benutzer einen Commit ausgeführt hat. Wenn ein Attribut für ein Objekt abgerufen oder geändert wird, das auf dem Server nicht vorhanden ist, tritt ein Fehler auf. Dies schließt den Aufruf der IADsUser.SetPassword-Methode ein. Beispielsweise wird beim Erstellen eines Benutzers mit IADsContainer.Create die folgende Sequenz befolgt:

  1. Rufen Sie IADsContainer.Create auf, um den Benutzer im lokalen Cache mit dem angegebenen cn zu erstellen.
  2. Legen Sie das sAMAccountName-Attribut mit der IADs.Put-Methode auf den gewünschten Wert fest.
  3. Ändern Sie nun andere Attribute, z. B. userAccountControl. Diese Einschränkung gilt auch für die ADSI-Eigenschaften, z . B. IADsUser.AccountDisabled, und Methoden wie IADsUser.SetPassword.
  4. Rufen Sie IADs.SetInfo auf, um den neuen Benutzer auf den Server zu committen.

Wenn ein neues Benutzerkonto erstellt wird, ist es standardmäßig deaktiviert. Das Konto muss manuell oder programmgesteuert aktiviert werden. Um ein Benutzerkonto programmgesteuert zu aktivieren, entfernen Sie das flag ADS_UF_ACCOUNTDISABLE aus dem userAccountControl-Attribut .

Wenn ein neues Benutzerkonto erstellt wird, wird für das Attribut userAccountControl für das Konto automatisch das Flag UF_PASSWD_NOTREQD festgelegt, das angibt, dass für das Konto kein Kennwort erforderlich ist. Wenn die Sicherheitsrichtlinien der Domäne, in der das Konto erstellt wird, ein Kennwort für alle Benutzerkonten erfordern, muss das flag UF_PASSWD_NOTREQD aus dem userAccountControl-Attribut für das Konto entfernt werden.

Beispielcode zum Erstellen eines Benutzers