Option Explicit Dim MyDistinguishedName Dim objRootDSE, objItem, objConnection, objCommand, objRecordSet Dim strContainer, strname Dim intCounter Dim Resultat Dim CheminScriptActuel, CheminFichier, ScriptFileName, MaLigne Dim objFSO, objTextFile Dim Position strContainer = "" 'Si vous souhaitez vous connecter à une OU en particulié, indiquez la ici Const ADS_UF_ACCOUNTDISABLE = 2 Const ADS_SCOPE_SUBTREE = 2 'Declaration des constantes Const ForReading = 1 Const ForWritting = 2 Const ForAppending = 8 ScriptFileName = wscript.scriptname Position = InstrRev(ScriptFileName,".") if (Position > 0) Then ScriptFileName = Left(ScriptFileName, Position - 1) ScriptFileName = ScriptFileName & "_Liste.txt" CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1) CheminFichier = InputBox("Entrez le chemin du fichier","Chemin du fichier",CheminScriptActuel & "\" & ScriptFileName) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile(CheminFichier, ForReading, True) On Error Resume Next Set objRootDSE = GetObject("LDAP://rootDSE") If strContainer = "" Then Set objItem = GetObject("LDAP://" & objRootDSE.Get("defaultNamingContext")) Else Set objItem = GetObject("LDAP://" & strContainer & "," & _ objRootDSE.Get("defaultNamingContext")) End If On Error Goto 0 'strname = objItem.Get("name") 'WScript.Echo "name: " & strname MyDistinguishedName = objItem.Get("distinguishedName") 'Récupération du distinguishedName du domaine par défaut. Exemple DC=Cotonso,DC=Com 'WScript.Echo "distinguishedName: " & MyDistinguishedName Set objConnection = CreateObject("ADODB.Connection") objConnection.Open "Provider=ADsDSOObject;" Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 10000 objCommand.Properties("Timeout") = 30 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE objCommand.Properties("Cache Results") = False 'Pour toutes les lignes du fichier Do Until objTextFile.AtEndOfStream MaLigne = objTextFile.Readline 'Lecture et affichage de la ligne 'Wscript.Echo MaLigne Resultat = MaLigne 'objCommand.CommandText = ";(objectCategory=User);name,cn,displayName,sn,sAMAccountName,distinguishedName;subtree" objCommand.CommandText = ";(&(objectCategory=User)(sAMAccountName=" & MaLigne & "));name,cn,displayName,sn,sAMAccountName,distinguishedName;subtree" Set objRecordSet = objCommand.Execute intCounter = 0 Do Until objRecordset.EOF 'WScript.echo objRecordset.Fields("distinguishedName") 'WScript.echo "Name : " & VbTab & objRecordset.Fields("Name") 'WScript.echo VbTab & "cn : " & VbTab & objRecordset.Fields("cn") 'WScript.echo VbTab & "displayName : " & VbTab & objRecordset.Fields("displayName") 'WScript.echo VbTab & "sn : " & VbTab & objRecordset.Fields("sn") 'WScript.echo VbTab & "sAMAccountName : " & VbTab & objRecordset.Fields("sAMAccountName") 'WScript.echo VbTab & "distinguishedName : " & VbTab & objRecordset.Fields("distinguishedName") Resultat = Resultat & vbtab & objRecordset.Fields("Name") intCounter = intCounter + 1 objRecordset.MoveNext Loop If intCounter = 0 Then Resultat = Resultat & " : pas de résultat" End If WScript.echo Resultat Loop objTextFile.Close Set objTextFile = Nothing Set objFSO = Nothing objConnection.Close