Ich glaube, ich habe es herausgefunden. Mit ADSI Edit können Sie Eigenschaften für ein Objekt (z. B. einen Benutzer) anzeigen, aber standardmäßig wurden "konstruierte" Attribute herausgefiltert. Mit der Schaltfläche Filter unten rechts im Eigenschaftenbildschirm konnte ich diese zusätzlichen Attribute anzeigen.
Der "msDS-PrincipalName" scheint "[netbios domain name] \ [sAMAccountName]" als Wert zu haben.
Wenn ich in AD-Benutzer und -Computer gehe und den "Benutzeranmeldenamen" von "[email protected]" in "[email protected]" ändere, wirkt sich dies auf das Attribut "userPrincipalName" aus, nicht jedoch auf das Attribut "msDS-" PrincipalName "-Attribut. Dies ist in meinem Fall gut, da mein anderes System (SharePoint) diese Änderung ebenfalls nicht erkennt.
Wenn ich in AD-Benutzer und -Computer gehe und den "Benutzernamen (vor Windows 2000)" von "KIRKDEV \ gwashington" in "KIRKDEV \ g2washington" ändere (beachten Sie, dass ich den ersten Teil nicht ändern kann), hat dies keine Auswirkungen auf Attribut "userPrincipalName", wirkt sich jedoch auf das Attribut "msDS-PrincipalName" aus. Dies ist genau das, was ich möchte, da mein anderes System (SharePoint) diese Änderung erkennt.
Randnotiz: Ich sagte, dass SharePoint die Änderung erkennt, dies jedoch nur, wenn sich der Benutzer noch nie zuvor bei dieser SharePoint-Websitesammlung angemeldet hat. Sobald sich der Benutzer bei der SharePoint-Websitesammlung angemeldet hat, wird das Feld tp_Login in der UserInfo-Tabelle mit dem Wert "msDS-PrincipalName" festgelegt, und dies scheint sich nicht zu ändern. Daher muss ich möglicherweise einen Weg finden, um eine Änderung zu erzwingen, oder einfach sagen, dass dieses Szenario nicht unterstützt wird.
Um Ihre letzte Frage zu beantworten, sollten Sie in der Lage sein, den NetBios-Namen manuell zu überprüfen, indem Sie den Abschnitt Konfiguration und dann Verzeichnispartitionen in ADSIEdit überprüfen:
Dies hat beides
name
undnetBIOSName
Eigenschaften. Ansonsten müsste man es wohl von einem fqdn / DN bekommen, wie Squillman vorschlägt.quelle
Für eine Bewerbung? Microsoft macht dies in .NET ziemlich einfach. Auf diese Weise sollten Sie eine Liste der Domänen-Netbios-Namen erhalten, mit denen Sie eine Liste der benutzerdefinierten Objekte mit den Domänen-DN / DNS / Netbios-Namen oder Querverweisen auf Wörterbücher erstellen können.
Was bestimmt, ob ein Attribut im globalen Katalog verfügbar ist, ist (noch ein weiteres) Attribut namens isMemberOfPartialAttributeSet. Mit Microsoft SysInternals AD Explorer können Sie den Schema-Container in einer Domäne durchsuchen und nach jedem Objekt mit dem isMemberOfPartialAttributeSet = true suchen, um alle Attribute anzuzeigen, die für eine GC-Abfrage verfügbar sind.
quelle
Sie müssen es entweder aus dem
dn
(DistinguishedName) oder denAdsDSPath
Attributen analysieren . Domänennamenentitäten werden"DC="
in diesen Attributen vorangestellt .DC=
Ganz links wird Ihr NetBios-Domainname enthalten.Beispielsweise:
cn=myuser,ou=users,dc=mydomain,dc=mycompany,dc=com
mydomain
ist der Netbios-Domainname.EDIT:
Wie Brian Desmond betont, ist dies nicht unbedingt der maßgebliche Weg, um den tatsächlichen Netbios-Namen zu finden, es ist nur ein Zufall, dass sie normalerweise korrelieren. Siehe die Antwort von BoyMars für den maßgeblichen Weg.
quelle
dsquery computer OU=OU,OU=You,OU=Need,DC=local.domain -o rdn
Sie das, was Sie möchten, mit dem NetBIOS-Namen in Anführungszeichen. Da es relativ ist, müssen Sie nicht den vollständigen Pfad erhalten. Ich bin mir nicht sicher, ob dies dem OP helfen wird. Er fragte nach LDAP, daher ist dies keine reine LDAP-Antwort.Wenn Sie den Benutzerprinzipalnamen oder den DN haben, können Sie die ActiveDS COM-Bibliothek verwenden, um die Werte zu übersetzen. Unten finden Sie ein Beispiel für die Übersetzung von UserPrincipalName in NT4 (NetBios).
quelle