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
|