Bonjour,

Je cherche a faire l'export d'une OU de l'AD, a certaines conditions.

Il y-a trois conditions, mais je n'arrive pas a lui faire prendre en compte la 1er je pense, qui null ou pas est valable pour lui.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
on error resume next

'déclaration des variables (pas obligatoire en VBS)

dim objfichier, Myfile, Ouchoisi

const forReading = 1, ForWriting = 2, ForAppending = 8

'routine de connexion a l'AD

Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 

'choix du domaine a éxaminer

DomaineChoisi=inputbox ("veuillez Choisir le domaine que vous voulez inspecter","Choix du domaine")

DomaineChoisi2=inputbox ("veuillez Choisir la fin du nom de domaine que vous voulez inspecter","Choix du domaine")

OuChoisi=inputbox ("veuillez Choisir l'Unité d'organisation que vous voulez inspecter","Choix de l'OU")

'sélection de l'OU dans le domaine

objCommand.CommandText = _
    "SELECT AdsPath FROM 'LDAP://OU="& OuChoisi &", dc="& DomaineChoisi &", dc="& DomaineChoisi2 &"' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute

'création du fichier texte

set objfichier = createobject("scripting.filesystemobject")

NomFichier="export.csv"            '   inputbox ("Veuillez entrez le nom de fichier","Nom du Fichier")

set Myfile = objfichier.opentextfile(NomFichier, ForWriting, true)

'boucle qui vérifie les utilisateurs 1 par 1

objRecordSet.MoveFirst

Do Until objRecordSet.EOF

    Set objUser = GetObject(objRecordSet.Fields("AdsPath").Value)
  
  'condition, extensionAttribute4 est vide, pas de date d'expiration, et un prénom ( boite nominative )
  
    If objUser.extensionAttribute4 is Empty AND objUser.dtmAccountExpiration = "01/01/1601 01:00:00" AND objUser.givenName <> "" then
		 
	   'si oui, afficher tel et tel informations
	   
	   Myfile.Writeline objUser.cn & ";" & objUser.distinguishedName & ";" & objuser.whenCreated & ";" & objuser.extensionAttribute4

    End If

    objRecordSet.MoveNext
	
Loop

'message de fin d'éxecution du script

MsgBox "votre recherche dans l'AD est terminée", vbExclamation, "Avertissement"
J'ai mis en gras l'endroit ou je pense que ça coince, normalement tout le reste fonctionne vu que j'arrive bien a avoir mon CSV, mais il me met tout les objets qu'il trouve dans l'OU que je lui demande de fouiller au lieu de me mettre seulement ceux qui corresponde a ma condition

merci d'avance