emeriks
Goto Top

VB.Net - DirectoryEntry - Unterschiede bei Abfragen über objectGUID und distinguishedName

Hi,
wenn ich zwei System.DirectoryServices.DirectoryEntries für ein und das selbe Benutzerobjekt einmal über die objectGUID und einmal über einmal über den distinguishedName abfrage, dann bekomme ich jeweils unterschiedlich viele Eigenschaften zurückgeliefert.

Dim µDE1 As New DirectoryEntry("LDAP://<GUID=........-c193-42ec-924a-d2dc........>")  
Dim µDE2 As New DirectoryEntry("LDAP://CN=ABCDEFG,OU=Technik,DC=MyDomain,DC=local")  
MsgBox(µDE1.Properties.Count & vbTab & µDE2.Properties.Count)

In meinem Beispiel werden für µDE1 80 und für µDE2 98 Properties geliefert.
Ich kann das für beliebige, andere Benutzerobjekte reproduzieren.

a) Ist das normal?
b) Kann mir jemand den Zusammenhang erklären?

E.

Content-ID: 259662

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

Ausgedruckt am: 24.11.2024 um 17:11 Uhr

colinardo
colinardo 13.01.2015 aktualisiert um 11:43:20 Uhr
Goto Top
Hallo emeriks,
in der DirectorySearcher Klasse sollte man die Eigenschaften welche vom Objekt abgerufen werden sollen angeben oder ein "*" definieren damit alle Eigenschaften des Objekts zurückgegeben werden.
http://msdn.microsoft.com/de-de/library/3cty7e56%28v=vs.110%29.aspx

Grüße Uwe
emeriks
emeriks 13.01.2015 um 11:47:21 Uhr
Goto Top
Hi colinardo,
bei DirectorySearcher ja ist klar. Aber warum sollte ich über den Searcher gehen, wenn ich doch die objectGUID habe? Da ist es doch einfacher das dann direkt über den DirectoryEntry zu machen, oder?

Ich gehe ja jetzt schon den Umweg, dass ich mir als erstes über die objectGUID den DN abfrage, um dann mit dem DN nochmal ein DirectoryEntry abzufragen. Geht. Aber eben ein - wie ich meine - dämlicher Zwiwchenschritt.

Dim µDE1 As New DirectoryEntry("LDAP://<GUID=........-c193-42ec-924a-d2dc........>")  
Dim µDN As String = µDE1.Properties("distinguishedName").Value  
µDE1 = New DirectoryEntry("LDAP://" & µDN)  

E.
colinardo
colinardo 13.01.2015 aktualisiert um 12:03:43 Uhr
Goto Top
Also ich meine die Abfrage via DN bringt nur die Eigenschaften des Users welche einen Wert haben und nicht leer sind, wohingegen eine Abfrage via Object-GUID auch die leeren Eigenschaften bzw. zur. Eigenschaften der Objektklasse listet, kann es hier aber gerade nicht testen.
emeriks
emeriks 13.01.2015 um 12:08:26 Uhr
Goto Top
Also ich meine die Abfrage via DN bringt nur die Eigenschaften des Users welche einen Wert haben und nicht leer sind,
Ja, klar.

wohingegen eine Abfrage via Object-GUID auch die leeren Eigenschaften bzw. zur. Eigenschaften der Objektklasse listet.
Nee, das ist es ja. So könnte ich das ja "logisch akzeptieren". Aber über GUID bekomme ich ja eben weniger Properties.

Habe das noch mal überprüft. Alle properties, welche geliefert werden, sind auch gesetzt. Über GUID fehlen u.a. "homeDirectory", "homeDrive".
colinardo
Lösung colinardo 13.01.2015 aktualisiert um 14:31:32 Uhr
Goto Top
Hmm, also bei einem Test hier auf einem Server 2008R2 werden sowohl mit GUID als auch mit DN die gleiche Anzahl Eigenschaften geliefert, egal welchen User ich nehme.
Welches sind den alles die Differenz-Eigenschaften?
Sind zufällig mehrere DCs im Netz? Nicht das hier unterschiedliche Server abgefragt werden und die DCs zufällig nicht synchron sind. Bau den DC mal mit in die LDAP-Abfrage ein. LDAP://dc01.domain.intern/......
emeriks
emeriks 13.01.2015 um 13:38:37 Uhr
Goto Top
Sind zufällig mehrere DCs im Netz? Nicht das hier unterschiedliche Server abgefragt werden und die DCs zufällig nicht
synchron sind. Bau den DC mal mit in die LDAP-Abfrage ein. LDAP://dc01.domain.intern/......
Das habe ich auch schon im Verdacht. Ich werde das mal prüfen.
emeriks
emeriks 13.01.2015 um 14:31:25 Uhr
Goto Top
Jetzt wird es witzig ...

Es gibt 2 DC. Egal über welchen ich gehe: Wenn ich in den Abfragen explizit einen DC angebe, dann bekomme ich auch über die GUID alle Properties. Muss ich das verstehen?

Und so lernt man weiter:
Die Abfrage "LDAP://<GUID=....>" geht über den GC, wenn man nicht explizit einen DC angibt! Und dort sind ja nun mal nicht alle Attribute enthalten (so z.B. auch homeDirectory nicht). Ja nee is klar.

Danke, colinardo! War schön, mit Dir darüber zu plaudern ... face-wink
colinardo
colinardo 13.01.2015 aktualisiert um 14:44:57 Uhr
Goto Top
Hier noch als Ergänzung der Link zum Thema: Global Catalog and LDAP Searches
War schön, mit Dir darüber zu plaudern
Gleichfalls face-wink Hatte das auch nicht mehr auf dem Schirm, da ich hier den Test von einem externen Rechner und Abfrage via Authentifizierung gemacht habe...

Grüße Uwe