vbs: AD: get user DN
' 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
/image%2F0881799%2F20140610%2Fob_a8c7fe_logo2.jpg)
Commenter cet article