Monday, October 7, 2024

Script to Search for a User in Active Directory

Datamation content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

Author:Yi Helen Wang yi.wang@doj.state.or.us
Platform:Windows NT

Windows 2000
Type:VBScript,ADSI

DESCRIPTION:

This script is for an administrator who wants to search for a particular user through Active Directory of local or remote Windows 2000 servers. It also prevents duplication when new users are added into Active Directory.

Scroll down to view the script.


SCRIPT:

'**************************************************************************************
'Created:04/08/2002 
'Author: Yi Helen Wang
'Purpose:Searching users through an Active Directory (AD) of
'Windows 2000 to insure against duplicating when 
'a new user is added into AD
'Keywords:ADO and ADSI 2.5 or up
'Reviewed:05/13/2002
'Comment:You have to assign a permission to get Active Directory 
'  information.  This program is run locally or remotely
'***************************************************************************************
on error resume next

dim oContainer,searchpath
dim oRoot
dim oConnect, oCommand, rs
dim strConnect, strDomainCtrl, strOU
dim cntuser, newuser, strCN, strSearchUser

newuser = false
cntuser = 0

'to get LDAP namespace
set oRoot = GetObject("LDAP: //RootDSE")
call ShowError("Permission issues !")
strDomainCtrl = oRoot.Get("defaultNamingContext")

strOU = InputBox("Please entry an Organization Unit Name to search: ", "Searching","Legal")
if Len(Trim(strOU)) = 0 then
  msgbox "No information typed in!" 
else
  strConnect = "LDAP://OU=" & strOU & ", " & strDomainCtrl
  set oContainer = GetObject(strConnect)
  call ShowError("OUNameNotExist")
  
  searchpath = oContainer.ADsPath

  strSearchUser = InputBox("Please entry the user searched initial: ", "Searching", "sls")
  if Len(Trim(strSearchUser))=0  then
msgbox "No information typed in!"
  else
'Using ADO to query the Active Directory for a particule user
set oConnect = CreateObject("ADODB.Connection")
set oCommand = CreateObject("ADODB.Command")
call ShowError("ADOProblems")

'opening the connection
oConnect.Provider = "ADsDSOObject"
oConnect.Open "Active Directory Provider"
call ShowError("ADOProvider")
 'creating a command object for this connection
 Set  oCommand.ActiveConnection = oConnect

 strCN = strSearchUser
 DO WHILE newuser  True
  
  oCommand.CommandText = "SELECT samAccountName FROM '" & searchpath & "' WHERE objectClass='user' AND samAccountName = '" & strSearchUser & "'"

  'creating a recordset based on the ADO command
  set rs = oCommand.Execute
 
  'Navigating the record set
  if rs.EOF and rs.BOF then
msgbox  "New user"
newuser = True
  else
cntuser = cntuser + 1
'rename and check again till no duplication
strSearchUser = left(strCN,1) & right(strCN,1) & cntuser
msgbox  "Rename CN as " & strSearchUser
set rs = nothing
 end if

LOOP
  end if
end if

sub ShowError(strErr)
  if err  0 then

if err = 432 or err=70 then
wscript.echo "Permission issues to run the program"
wscript.quit
else
select case strErr
 case "OUNameNotExist"
  wscript.echo "OU name is not correct or not exist !"
  wscript.quit
 case "ADOProblems"
  wscript.echo "ADO problems!"
  wscript.quit
 case "ADOProvider"
  wscript.echo "ADO Provider Problems!"
  wscript.quit
end select
end if

  end if
end sub

Disclaimer: We hope that the information in these pages is valuable to you. Your use of the information contained in these pages, however, is at your sole risk. All information on these pages is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by me. I shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.

Subscribe to Data Insider

Learn the latest news and best practices about data science, big data analytics, artificial intelligence, data security, and more.

Similar articles

Get the Free Newsletter!

Subscribe to Data Insider for top news, trends & analysis

Latest Articles