Servus, Fabian hier. Legt man unter Windows Server 2003 oder Windows Server 2008 neue Benutzer über die „Active Directory Benutzer und Computer“ MMC an, so kann man lediglich 28 Zeichen für den Vornamen als auch für den Nachnamen vergeben. Laut Schema stehen jedoch für diese beiden Attribute „givenName“ (=Vorname) und „sn“ (=Nachname) tatsächlich 64 Zeichen als Unicode String zur Verfügung.

Stellt sich also die Frage, warum diese 64 Unicode Zeichen über die MMC nicht eingegeben werden dürfen.

Die Beschränkung auf jeweils 28 Zeichen ergibt sich im Grunde nicht aus den beiden Attributen selbst; vielmehr geht es um die Gesamtbeschränkung des Anzeigenamens (Attribut: „displayName“) eines Benutzers. Dieser ergibt sich nämlich aus dem Vornamen + die Initialen + den Nachnamen + 2 Leerzeichen. Die Initialen haben als Attribut „initials“ einen 6 Zeichen langen Unicode String zur Verfügung. Das macht laut Adam Ries insgesamt also: 28 (Vorname) + Leerzeichen + 6 (Initialen) + Leerzeichen + 28 (Nachnamen) = 64 Zeichen.

Soweit so gut – nur warum hat der Anzeigenamen in der MMC eine Beschränkung auf 64 Zeichen? Das dazugehörige Attribut „displayName“ hat laut Schema doch Platz für einen 256 Zeichen Unicode String:

Die Erklärung dafür ergibt sich aus der Tatsache, daß bei der Erstellung eines Benutzers über die „Active Directory Benutzer und Computer“ MMC der Anzeigename (Attribut: „displayName“) gleich dem Common Name (Attribut: „cn“) gesetzt wird. Und genau dieser Common Name hat laut Schema eine Beschränkung auf 64 Zeichen. Hintergrund hierfür ist die Interoperabilität von Applikationen, denn es kann Probleme geben, wenn dieser Common Name größer als 64 Zeichen ist. Die entsprechenden RFCs (siehe zum Beispiel http://www.ietf.org/rfc/rfc2256.txt?number=2256) liefern keine minimale oder maximale Länge für dieses Attribut, daher mußte ein Wert gewählt werden, der nach Möglichkeit bei LDAP-Applikationen keine Probleme hervorruft. Somit wurde der "cn" auf 64 Zeichen festgelegt.

Um keine „Verwirrung“ anzurichten, wird also der Anzeigename per Design der MMC gleich dem Common Name "erzwungen" - zumindest, solange man die AD Benutzer und Computer MMC verwendet. So kommt es im Normalfall zu keinen Problemen bei Abfragen oder ähnlichem, die theoretisch bei der Rückgabe vom Anzeigenamen einen anderen Wert zurückgeliefert bekommen als beim Common Name, sollte der Anzeigename die 64 Zeichen übersteigen. 

Legt man Benutzer z.B. über VB-Scripts etc. oder etwa „dsadd user“ an, greift diese Beschränkung nicht - man muß hier beispielsweise den Vornamen, den Nachnamen und den Distinguished Name (DN) mit angeben, welcher zwangsweise den Common Name (CN) beinhaltet. Hierbei können bis zu 64 Zeichen für den Vornamen (Attribut: „givenName“) und 64 Zeichen für den Nachnamen (Attribut: „sn“) vergeben werden. Der Anzeigename (Attribut: „displayName“) kann bis zu 256 Zeichen fassen, während dessen der Common Name (Attribut: „cn“) weiterhin auf 64 Zeichen beschränkt bleibt. Nur sollte man sich aus den genannten Gründen dann gut überlegen, ob man die bewußt gesetzte Beschränkung willentlich übergehen und einen anderen Anzeigenamen als den Common Name vergeben möchte.

Übrigens ist es nach dem Anlegen eines Benutzers problemlos möglich, bei dem nun schon bestehenden Benutzer den Vornamen oder Nachnamen auch über die MMC auf größer als 28 Zeichen zu ändern – es können jetzt die laut Schema vorhandenen 64 Zeichen verwendet werden. Zu diesem Zeitpunkt wird nämlich weder der Anzeigename noch der Common Name mehr durch die Änderung des Vornamens geändert – somit greift nun auch die Beschränkung auf 28 Zeichen nicht.

Viele Grüße
Fabian