Ich versuche, programmatisch einen neuen Active Directory-Benutzer zu erstellen, der das Attribut sAMAccountName mit einem Wert größer als 20 Zeichen setzt.
Beim Aufruf von DirectoryEntry.CommitChanges () erhalte ich den Fehler:
00000523: SysErr: DSID-031A0FB6, Problem 22 (ungültiges Argument), Daten 0
Wenn ich versuche, einen neuen Benutzer zu erstellen, der den sAMAccountName kleiner als 20 Zeichen einstellt, funktioniert alles.
Bevor jemand sagt, dass die Grenze des sAMAccountName 20 Zeichen ist, möchte ich darauf hinweisen, dass alles funktioniert, wenn ich versuche, den gleichen Benutzer mit dem sAMAccountName mehr als 20 Zeichen mit dem Windows-Tool "Active Directory-Benutzer und -Computer" zu erstellen . Ich kann den neuen Eintrag in AD mit dem LDP-Tool sehen und der Eintrag hat den sAMAccountName mit mehr als 20 Zeichen.
Warum kann ich den Benutzer nicht programmatisch mit .NET erstellen?
Unten ist der Code, den ich verwende:
%Vor%Die Standardeinschränkung für dieses Feld beträgt laut diesem Artikel weniger als 20 Zeichen: Ссылка Ich habe nicht versucht, einen Benutzer mit einem 20mAbs sAMAccountName zu erstellen, aber vielleicht ist es mit der Novell LDAP-Bibliothek möglich. Ich musste es verwenden, weil wir auch andere LDAP-Dienste unterstützen mussten. Ссылка
Ich habe auch diese Posts gefunden: Ссылка
Wie von @stylefish erklärt, ist zur Microsoft-Dokumentation eine Funktion. Du kannst vielleicht etwas mehr als 20 Zeichen dorthin setzen, aber ich bin mir ziemlich sicher, dass 20 erste Charaktere in den Wald kommen müssen.
Wenn Sie mehr Zeichen für die Benutzeranmeldung verwenden möchten, müssen Sie die userPrincipalName (in der Form login @ Dns-Domain). Im W2K3-Schema ist die Länge dieses Attributs auf 1023 Zeichen begrenzt. Sie können ein Digest MD5 berechnen, um den entsprechenden samAccountName zu berechnen.
Tags und Links .net c# active-directory vb.net