ksb-sys
asked on
LDAP Query of manager and update manager
I'm on a quest to update an employee's supervisor in AD.
I've got the part where we're querying the user's manager all set. But as soon as I query the adspath of the manager to put that into the user's manager field in their AD record, I get an error 80005008 at Line 49 which is:
if usrmgr <> "" then usr.put "manager", usrmgr
Any ideas why this would be happening?
Thanks
I've got the part where we're querying the user's manager all set. But as soon as I query the adspath of the manager to put that into the user's manager field in their AD record, I get an error 80005008 at Line 49 which is:
if usrmgr <> "" then usr.put "manager", usrmgr
Any ideas why this would be happening?
Thanks
Call Run_SetManager
Function Run_SetManager
set conn = CreateObject("ADODB.Connection")
set rsExch = CreateObject("ADODB.Recordset")
set rsADUsr = CreateObject("ADODB.Recordset")
set rsADMGR = CreateObject("ADODB.Recordset")
Set oCmd = CreateObject("ADODB.Command")
Set oCmd1 = CreateObject("ADODB.Command")
conn.Open "Data Source=Active Directory Provider;Provider=ADsDSOObject"
uname = inputbox("Enter the FULL NAME of the user to modify:", "Enter Username")
If uname = "exit" Or uname = "" Or uname = "Exit" Then
Exit Function
End If
if uname <> "" then
strADOQuery = "SELECT adspath, manager, title from 'LDAP://pathtodomain'' WHERE objectCategory='person' AND objectClass='user' AND name = '" & uname & "'"
oCmd.ActiveConnection = conn
oCmd.Properties("SearchScope") = 2
oCmd.CommandText = strADOQuery
set rsADUsr = oCmd.Execute
if rsADUsr.RecordCount = 0 then msgbox "Username not found."
if rsADUsr.RecordCount > 1 then msgbox "Multiple names found. This script can't help you."
if rsADUsr.RecordCount = 1 then
set usr = GetObject(rsADUsr.Fields("ADsPath"))
if isnull(rsADUsr.Fields("manager")) = true then current = ""
if isnull(rsADUsr.Fields("manager")) = false then current = rsADUsr.Fields("manager")
URL = inputbox("DO NOT PRESS CANCEL. PRESSING CANCEL WILL ERASE THIS ATTRIBUTE." & vbcrlf & vbcrlf & "Change Manager for " & uname & " to:", "Change Manager")
strADOQueryMGR = "SELECT adspath from 'LDAP://pathtodc' WHERE objectCategory='person' AND objectClass='user' AND name = '" & URL & "'"
oCmd1.ActiveConnection = conn
oCmd1.Properties("SearchScope") = 2
oCmd1.CommandText = strADOQueryMGR
set rsADMGR = oCmd1.Execute
if rsADMGR.RecordCount = 0 then msgbox "Manager not found."
if rsADMGR.RecordCount > 1 then msgbox "Multiple managers found. This script can't help you."
if rsADMGR.RecordCount = 1 Then
set usrmgr = rsADMGR.Fields("adspath")
end if
if usrmgr <> "" then usr.put "manager", usrmgr
if usrmgr = "" then usr.Putex 1, "manager", ""
usr.SetInfo
msgbox "Manager Update Successful"
set usr = nothing
end if
end If
conn.close
set ocmd = nothing
set ocmd1 = nothing
set rsExch = nothing
set rsADUsr = Nothing
set rsADMGR = nothing
set conn = nothing
End Function
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
You're welcome :)
Chris
ASKER