Vérifier si un utilisateur du domaine existe avec un VBScript

  .vbs, Scripts, Windows

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

 

 

Laisser un commentaire