WeBO 10 Geschrieben 29. Februar 2008 Melden Teilen Geschrieben 29. Februar 2008 Hallo Forum. Ich arbeite an einer HTA-Seite, die über LDAP-Abfrage aus dem Active Directory Benutzerinformationen abruft (soll ein Telefonbuch werden :) ). Dabei verwende ich VBScript. Wir haben eine übergeordnete Domäne "abc.de" und eine untergeordnete Domäne "xy.abc.de". Ich habe für beide Domänen jeweils eine HTA-Datei geschrieben, die beide funktionieren. Aber mein Problem ist, sie funktionieren nur so lange man in der Domäne angemeldet ist, die die Datei abfragt. Aber es sollen auch User die Informationen von Usern aus der anderen Domäne abfragen können. Wenn ich in der Domäne angemeldet bin, die ich nicht abfrage, erhalte ich folgenden Fehler: "Eine Referenzauswertung wurde vom Server zurückgesendet", in folgender Zeile: "objRS.MoveFirst" (die letzte im untenstehenden Code) strDomainDN = "dc=xy,dc=abc,dc=de" set objCon = CreateObject("ADODB.Connection") objCon.Provider = "ADsDSOObject;" objCon.Open "Active Directory Provider" set objRS = objCon.Execute("<LDAP://" & strDomainDN & ">;" & _ "(&(objectCategory=Person)(sn=*)(!userAccountControl:1.2.840.113556.1.4.803:=2));" & _ "sn,givenname,department,telephoneNumber,otherTelephone,facsimileTelephoneNumber,mobile,otherPager;subtree" ) objRS.MoveFirst Ich habe es auch schon mit Benutzername und Passwort versucht. Das sah dann folgendermaßen aus: strDomainDN = "dc=xy,dc=abc,dc=de" set objCon = CreateObject("ADODB.Connection") objCon.Provider = "ADsDSOObject;" objCon.Properties("User ID") = "Telefonliste" objCon.Properties("Password") = "geheim" objCon.Properties("Encrypt Password") = True objCon.Open "Active Directory Provider" set objRS = objCon.Execute("<LDAP://" & strDomainDN & ">;" & _ "(&(objectCategory=Person)(sn=*)(!userAccountControl:1.2.840.113556.1.4.803:=2));" & _ "sn,givenname,department,telephoneNumber,otherTelephone,facsimileTelephoneNumber,mobile,otherPager;subtree" ) objRS.MoveFirst Das hat aber leider auch nicht funktioniert. Hat jemand vielleicht eine Idee was man da machen könnte? MfG WeBO Zitieren Link zu diesem Kommentar
WeBO 10 Geschrieben 29. Februar 2008 Autor Melden Teilen Geschrieben 29. Februar 2008 So, habe jetzt eine halbe Lösung. Die funktioniert aber nur, wenn man an der Übergeordneten Domäne "abc.de" angemeldet ist. Set dso = GetObject("LDAP:") Set ou = dso.OpenDSObject("LDAP://server2.xy.abc.de/ou=abteilung2,dc=xy,dc=abc,dc=de", _ "benutzer2", "passwort2", 1) document.write "<font>=========Standort2===============</font><br>" For Each obj In ou document.write "<font>"&obj.name&"</font><br>" Next Set dso = GetObject("LDAP:") Set ou = dso.OpenDSObject("LDAP://server1.abc.de/ou=abteilung1,dc=abc,dc=de", _ "benutzer1", "passwort1", 1) document.write "<font>=========Standort1===============</font><br>" For Each obj In ou document.write "<font>"&obj.name&"</font><br>" Next Ist nicht so schön, da man ein Benutzerlogin der jeweiligen Domäne angeben muss, aber nicht weiter schlimm, da dieses keine Rechte haben muss. Aber ein großes Problem ist noch, dass die Benutzer aus dem Standort 2 (domäne xy.abc.de) die aus Standort 1 (domäne abc.de) nicht sehen können. Hat jemand vielleicht noch eine Idee? Zitieren Link zu diesem Kommentar
WeBO 10 Geschrieben 3. März 2008 Autor Melden Teilen Geschrieben 3. März 2008 Okay, das funktioniert jetzt auch. Ich habe jetzt einen gleichnamigen User "Telefonliste" mit gleichem Passwort in beiden Domänen erstellt. Wenn ich den dort für beide Domänen angebe funktioniert es. Jetzt habe ich noch das Problem, dass ich nich weis, wie ich bei dieser Verbindungsvariante die Abfrage-Filter setze, so wie ich das bei der Variante in meinem ersten Beitrag gemacht hatte. Hat da vielleicht jemand eine Idee? MfG WeBO Zitieren Link zu diesem Kommentar
WeBO 10 Geschrieben 5. März 2008 Autor Melden Teilen Geschrieben 5. März 2008 So, um meinen Monolog hier mal abzuschließen und allen zu helfen, die wie ich damit zu kämpfen haben: Abfrage der übergeordneten Domäne (abc.de) mit Filtern: set objCon = CreateObject("ADODB.Connection") objCon.Provider = "ADsDSOObject;" objCon.Properties("User ID") = "abcde\Telefonliste" objCon.Properties("Password") = "geheim" objCon.Properties("Encrypt Password") = false objCon.Open "Active Directory Provider" set objRS = objCon.Execute("<LDAP://server1.abc.de>;" & _ "(&(objectCategory=Person)(sn=L*)(!userAccountControl:1.2.840.113556.1.4.803:=2));" & _ "name,sn,givenname,department,telephoneNumber,otherTelephone,facsimileTelephoneNumber,mobile,otherPager;subtree" ) Abfrage der untergeordneten Domäne (xy.abc.de) mit Filtern: set objCon = CreateObject("ADODB.Connection") objCon.Provider = "ADsDSOObject;" objCon.Properties("User ID") = "xyabcde\Telefonliste" objCon.Properties("Password") = "geheim" objCon.Properties("Encrypt Password") = false objCon.Open "Active Directory Provider" set objRS = objCon.Execute("<LDAP://server2.xy.abc.de>;" & _ "(&(objectCategory=Person)(sn=L*)(!userAccountControl:1.2.840.113556.1.4.803:=2));" & _ "name,sn,givenname,department,telephoneNumber,otherTelephone,facsimileTelephoneNumber,mobile,otherPager;subtree" ) Und ich habe es sogar geschafft, über den Port 3268 beide Domänen abzufragen: set objCon = CreateObject("ADODB.Connection") objCon.Provider = "ADsDSOObject;" objCon.Properties("User ID") = "abcde\Telefonliste" objCon.Properties("Password") = "geheim" objCon.Properties("Encrypt Password") = false objCon.Open "Active Directory Provider" set objRS = objCon.Execute("<LDAP://server1.abc.de:3268>;" & _ "(&(objectCategory=Person)(sn=L*)(!userAccountControl:1.2.840.113556.1.4.803:=2));" & _ "name,sn,givenname,department,telephoneNumber,otherTelephone,facsimileTelephoneNumber,mobile,otherPager;subtree" ) Bei der ganzen Sache ist "Telefonliste" ein einfaches Konto mit Benutzerrechten, dass in der Übergeordneten Domäne und in der untergeordneten identisch mit gleichem Passwort existieren muss. vielleicht hilft es ja jemandem, MfG WeBO Zitieren Link zu diesem Kommentar
Lian 2.440 Geschrieben 5. März 2008 Melden Teilen Geschrieben 5. März 2008 Danke für das Feedback und Posten der Lösung :thumb1: Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.