Toon posts:

[W2K] ADSI Active Directory probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Wie kan mij helpen met het volgende.

Ik heb een vbscript gemaakt waarmee ik in een Active Directory omgeving een query doe naar een bepaald accountnaam, en vervolgens voor dat account het ADsPath (bijv. cn=testuser,ou=accounts,dc=testdomain,dc=local) terugkrijg. Dit script heb ik met succes in verschillende Windows Server 2003 Active Directory domains toegepast, maar nu probeer ik hetzelfde te draaien in een Windows 2000 domein, en daar werk het niet. Hierbij krijg ik de volgende melding terug:

"A referral was returned from the server"

Volgens de online documentatie zou er op dit vlak geen verschil moeten zijn tussen Windows 2000 en Windows Server 2003, en zou mijn stukje code dus gewoon moeten werken. Zie hier de inhoud van het script:

strUserName = "testuser"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText =
"<LDAP://dc=testdomain,dc=local>;(&(objectCategory=person)(objectClass=user)(sAMAccountName=" & strUserName & "));AdsPath;subtree"

Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst
Do Until objRecordSet.eof
strField = objRecordSet.Fields("AdsPath")
WScript.Echo strField
objRecordSet.MoveNext
Loop

objConnection.Close


Heeft iemand enig idee waarom dit niet werkt? Ik ben al ruim een dag met dit probleem aan het worstelen, maar ik kom er niet uit.

Alvast bedankt!

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Je stuurt een LDAP query mee die eigenlijk niet hoeft.

Als je het ADsPath wil weten heb je genoeg aan de DN :P

VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
On Error Resume Next

Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 

objCommand.CommandText = _
    "SELECT DistinguishedName FROM 'LDAP://DC=fabrikam,DC=com' WHERE objectCategory='group' " & _
        "AND Name='G-S-Group*'"

Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    Wscript.Echo objRecordSet.Fields("DistinguishedName").Value
    objRecordSet.MoveNext
Loop

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Topicstarter
Hoi alt-92,

Ten eerste bedankt voor je reactie. Maar helaas is de code niet zozeer de oorzaak van het probleem. Want ook met jouw code, waarbij ik uiteraard de domein informatie e.d. heb aangepast aan mijn situatie, krijg ik dezelfde foutmelding, namelijk: "A referral was returned from the server".

Ik heb overigens zojuist hetzelfde script (jouw script ook) uitgevoerd in een andere Windows 2000 omgeving. Daar werkt het wél! :? Dus nogmaals, het script zelf is wel goed, maar kennelijk is er dus iets aan de hand in de betreffende AD omgeving o.i.d. Ik heb verder geen idee...

Iemand suggesties?

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

http://www.google.com/sea...+returned+from+the+server

Dat zou het eerste zijn wat ik doe bij dergelijke meldingen.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Topicstarter
Klopt, ik ook. Ik heb al enige tijd op google doorgebracht. Veel websites die dit probleem beschrijven geven aan dat de oorzaak waarschijnlijk een typefout is in de domeinnaam, of de CN. Ik heb het pad echter al 10x bekeken, en ik kan daar geen fout in ontdekken. Wat ik tevens in mijn vorige berichtje noemde, als ik hetzelfde script gebruik in een ander Windows 2000 omgeving, dan werkt het wel, waarbij ik dezeflde 'naamgeving' hanteer als in de omgeving waar ik nu het probleem heb.

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Ok, het lijkt dus specifiek te zijn voor dit domain.

Vraagje voor jou om uit te vinden: Wat is er anders aan deze AD dat je query nu opeens niet werkt?

kijk ook eens onderaan de laatste hit op de google results

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Topicstarter
Het probleem is opgelost. Ik zal het hierbij even melden zodat iemand anders er wellicht nog wat aan heeft.

Het probleem bleek te liggen aan het volgende. De omgeving waar ik het probleem in ervaarde bestond uit meerdere Active Directory domeinen, waarbij ik het script (en dus de ADSI query) wilde uitvoeren in een child domein. Echter, ik was ingelogd op de betreffende domain controller in dat domein met een account uit het Root domein. Dit account was welliswaar lid van de Enterprise Administrators, dus ben er altijd vanuit gegaan dat dit account voldoende rechten zou hebben in alle (child) domeinen.

Ik heb bij wijze van test een account aangemaakt in het Child domein, en die lid gemaakt van de Domain Admins groep van dat betreffende domein. Toen ik met dat account inlogde op de DC, en het script uitvoerde werkte het wél! Kennelijk kun je dus alleen dergelijke queries uitvoeren met een account die behoort tot het domein waar je de query wilt uitvoeren.

Alt-92, bedankt voor je hulp.
Pagina: 1