ADsDSOObject - Provider error '80040e37'
Posted on 2006-04-17
When I try to do an AD lookup I get the error:
Provider error '80040e37'
Table does not exist.
If I access the page from the server it works just fine, but if I access it from a client computer it does not work. I have tried accessing it as both administrator and a regular user from both the server and the client computer. I move the script to another server and it works like it is supposed to. Is there some policy somewhere that would block remote sessions from this? I have provided some of the code snippets that are relevant the page is over 500 lines of code so I am condensing.
' First, need to discover the local global catalog server
Set objADsRootDSE = GetObject("LDAP://RootDSE")
' Form an ADsPath string to the DN of the root of the Active Directory forest
strADsPath = "LDAP://" & objADsRootDSE.Get("DefaultNamingContext")
' Wrap the ADsPath with angle brackets to form the base string
strBase = "<" & strADsPath & ">"
' Release the ADSI object, no longer needed
Set objADsRootDSE = Nothing
' Specify the LDAP filter First, indicate the category of objects to
' be searched (all people, not just users)
strObjects = "(objectCategory=person)"
' Strip the domain part
strName = Right(Request.ServerVariables("AUTH_USER"), Len(Request.ServerVariables("AUTH_USER")) - InSt(Request.ServerVariables("AUTH_USER"), "\"))
' Add the two filters together
strFilter = "(&" & strObjects & "sAMAccountName=" & strName & ")"
' Set the attributes we want the recordset to contain. We're interested in
' the common name and telephone number
strAttributes = "cn, adspath"
' Specify the scope (base, onelevel, subtree)
strScope = "subtree"
' Create ADO connection using the ADSI OLE DB provider
Set cnnADOConnection = Server.CreateObject("ADODB.Connection")
' Create ADO commmand object and associate it with the connection
Set cmdADOCommand = Server.CreateObject("ADODB.Command")
cmdADOCommand.ActiveConnection = cnnADOConnection
' Create the command string using the four parts
cmdADOCommand.CommandText = strBase & ";" & strFilter & ";" & strAttributes & ";" & strScope
' Execute the query for the user in the directory
Set rstADORecordset = cmdADOCommand.Execute