Exemple de code VBScript permettant de vérifier si un utilisateur du domaine existe avec son identifiant.
Prérequis :
Être connecté à un ordinateur sur un domaine Active directory
Exécuter le .vbs et saisir le Login de l’utilisateur :
'************************** VARIABLES SYSTEMES **************************
Dim user, computer, UserNameExist, messageinfo
Dim u,v,w
Dim oRootDSE,strDomainNC
Dim oConnection,oRecordset
' ------------------------------------- DEBUT DE PROGRAMME -------------------------------------------
UserNameExist = InputBox("Saisir l'identifiant de l'utilisateur :", "UserName", "")
If UserNameExist <> "" Then
' Recherche du domaine Active Directory courant, on peut aussi forcer la valeur !
Set oRootDSE = GetObject("LDAP://RootDSE")
strDomainNC = oRootDSE.Get("defaultNamingContext")
' Affichage facultative du domaine déterminé
'msgbox(StrDomainNC)
' Connexion de type base de donnée à Active Directory
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "ADs Provider"
' Définition de la recherche principale
' Tous les utilisateurs et tous les contacts, dans tous les niveaux de l’arborescence.
Set oRecordset = oConnection.Execute("<GC://"+StrDomainNC+">;(&(sAMAccountName="+UserNameExist+")(objectClass=user)(objectCategory=Person));sAMAccountName,distinguishedName,name,displayname,mail,telephonenumber;subtree")
' Boucle sur les enregistrements.
If Not oRecordset.EOF Then
While Not oRecordset.EOF
' Attention les champs vides (Null) ne peuvent pas être concaténés en chaine de caractères
' Il faut donc les vérifier
sAMAccountName=VerifyNull(oRecordset.Fields("sAMAccountName"))
Name=VerifyNull(oRecordset.Fields("Name"))
DisplayName=VerifyNull(oRecordset.Fields("DisplayName"))
Mail=VerifyNull(oRecordset.Fields("Mail"))
Telephonenumber=VerifyNull(oRecordset.Fields("telephonenumber"))
distinguishedName=VerifyNull(oRecordset.Fields("distinguishedName"))
'Wscript.echo sAMAccountName+";"+Name+";"+Displayname+";"+mail+";"+TelephoneNumber
messageinfo = messageinfo & "L'identifiant " & sAMAccountName & " est déja utilisé par " & DisplayName & vbCrLf & vbCrLf
If Mail = "" Then
messageinfo = messageinfo & "Pas de Messagerie" & vbCrLf & vbCrLf
Else
messageinfo = messageinfo & "Adresse de Messagerie : " & Mail & vbCrLf & vbCrLf
End If
messageinfo = messageinfo & distinguishedName
MsgBox(messageinfo)
oRecordset.movenext
Wend
Else
MsgBox("L'identifiant " & UserNameExist & " n'est pas utilisé !")
End If
End If
wscript.quit
' ********* FIN DE PROGRAMME ***********
' Fonctions...
Function VerifyNull(field)
IF not (isnull(Field)) Then
VerifyNull=Field
Else
VerifyNull=""
End IF
End Function