Find the location of a computer account in Active Directory

From Wiki

Revision as of 16:36, 23 June 2008 by SYNACK (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to:navigation, search

Creator: IT Support Staff @ HCHS

Script Language: VBS

Forum topic Link: http://www.edugeek.net/forums/wiki-announcements/17301-find-location-computer-account-active-directory.html#post172265

This script will find and display the exact location of a computer user account in Active Directory.

<vb>OPTION EXPLICIT DIM objNetwork DIM computerName DIM ou

' Get the computerName of PC set objNetwork = createobject("Wscript.Network") 'computerName = objNetwork.ComputerName computername = Inputbox("Enter the network name of the PC to find :")

' Call function to find OU from computer name ou = getOUByComputerName(computerName)

IF ou = "" THEN ou = "Not Found"

wscript.echo ou


function getOUByComputerName(byval computerName) ' *** Function to find ou/container of computer object from computer name ***

DIM namingContext, ldapFilter, ou DIM cn, cmd, rs DIM objRootDSE

' Bind to the RootDSE to get the default naming context for ' the domain. e.g. dc=HCHS,dc=co,dc=uk set objRootDSE = getobject("LDAP://RootDSE") namingContext = objRootDSE.Get("defaultNamingContext") set objRootDSE = nothing

' Construct an ldap filter to search for a computer object ' anywhere in the domain with a name of the value specified. ldapFilter = "<LDAP://" & namingContext & _

	">;(&(objectCategory=Computer)(name=" & computerName & "))" & _

";distinguishedName;subtree"

' Standard ADO code to query database set cn = createobject("ADODB.Connection") set cmd = createobject("ADODB.Command")

cn.open "Provider=ADsDSOObject;" cmd.activeconnection = cn cmd.commandtext = ldapFilter

set rs = cmd.execute

if rs.eof <> true and rs.bof <> true then ou = rs(0) ' Convert distinguished name into OU. ' e.g. cn=CLIENT01,OU=HCHS_Computers,dc=HCHS,dc=co,dc=uk ' to: OU=HCHS_Computers,dc=HCHS,dc=co,dc=uk ou = mid(ou,instr(ou,",")+1,len(ou)-instr(ou,",")) getOUByComputerName = ou

end if

rs.close cn.close

end function</vb>