Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

vbs: AD: get user DN

Publié le par damcuvelier

' Ce script permet d'obtenir le DN et donc l'OU d'un utilisateur
' à partir de son username
' usage: cscript getuserDN.vbs /Usr:'SAMAccount'
' exemple: cscript getuserDN.vbs /Usr:%username%


Dim colNamedArguments : Set colNamedArguments = WScript.Arguments.Named

'ici on définit le "user", par exemple celui-ci peut être fournit en argument:
Dim UserName : UserName = colNamedArguments.Exists("Usr")

'ici on fait un echo du resultat de la fonction de recherche du DN de l'utilisateur fourni
wscript.echo DN(UserName)

'ici on recherche le DN de l'utilisateur fourni
'par une connexion ADODB à l'AD via le rootDSE ce qui permet de généraliser la recherche à l'AD en cours
   Function DN(UserName)
    On Error Resume Next
    Set objConnection = CreateObject("ADODB.Connection")
    objConnection.Open "Provider=ADsDSOObject;"
    Set objCommand = CreateObject("ADODB.Command")
    objCommand.ActiveConnection = objConnection
    Set objRootDSE = GetObject("LDAP://rootDSE")
    objCommand.CommandText = "<LDAP://" & objRootDSE.Get("defaultNamingContext") & ">;(&(objectClass=user)(objectCategory=person)(SAMAccountName=" & UserName & "));AdsPath, cn;subtree"
    strUserCommand = objCommand.CommandText
    Set objRecordset = objCommand.Execute
    If objRecordset.RecordCount <> 0 Then
    objRecordset.MoveFirst
    DN=objRecordset.fields("AdsPath")
    End If
    objConnection.Close
   End Function

Commenter cet article