Bonjour,

Je voudrais savoir ce qui ne va pas dans ce code au niveau de la requete pour que ce script ne fonctionne pas ;-( J'ai essayé pas mal de choses alors il n'est pas tres propre dsl

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
  Dim accountcontrol
        Const ADS_SCOPE_SUBTREE = 2
        ' Dim objRootDSE
 
 
        ' Création du fichier Excel
 
        Dim objExcel = CreateObject("Excel.Application")
        Dim fsoObject = CreateObject("Scripting.FileSystemObject")
 
        objExcel.Visible = True
        objExcel.Workbooks.Add()
 
        objExcel.Cells(1, 1).Value = "Liste des Comptes " & " le " & FormatDateTime(Now, vbLongDate)
        objExcel.Cells(1, 1).Font.Bold = True
        objExcel.Cells(1, 1).Font.Size = 10
        objExcel.Cells(1, 1).Font.ColorIndex = 3
 
 
        ' Ajout des titres de colonnes
 
        objExcel.Cells(2, 2).Value = "Last name"
        objExcel.Cells(2, 2).Font.ColorIndex = 5
        objExcel.Cells(2, 3).Value = "First name"
        objExcel.Cells(2, 3).Font.ColorIndex = 5
        objExcel.Cells(2, 4).Value = "samAccountName"
        objExcel.Cells(2, 4).Font.ColorIndex = 5
        objExcel.Cells(2, 5).Value = "Department"
        objExcel.Cells(2, 5).Font.ColorIndex = 5
        objExcel.Cells(2, 6).Value = "Phone number"
        objExcel.Cells(2, 6).Font.ColorIndex = 5
        objExcel.Cells(2, 7).Value = "Mail"
        objExcel.Cells(2, 7).Font.ColorIndex = 5
        objExcel.Cells(2, 8).Value = "userPrincipalName"
        objExcel.Cells(2, 8).Font.ColorIndex = 5
        objExcel.Cells(2, 9).Value = "distinguishedName"
        objExcel.Cells(2, 9).Font.ColorIndex = 5
        objExcel.Cells(2, 10).Value = "homeDirectory"
        objExcel.Cells(2, 10).Font.ColorIndex = 5
        objExcel.Cells(2, 11).Value = "homeDrive"
        objExcel.Cells(2, 11).Font.ColorIndex = 5
        objExcel.Cells(2, 12).Value = "canonicalName"
        objExcel.Cells(2, 12).Font.ColorIndex = 5
        objExcel.Cells(2, 13).Value = "scriptPath"
        objExcel.Cells(2, 13).Font.ColorIndex = 5
        objExcel.Cells(2, 14).Value = "userAccountControl"
        objExcel.Cells(2, 14).Font.ColorIndex = 5
 
 
        ' Connexion Active directory et selection des données
 
        Dim objRootDSE, strDNSDomain, objCommand, objConnection
        Dim strBase, strFilter, strAttributes, strQuery ' objRecordSet
 
        ' Determine DNS domain name.
        objRootDSE = GetObject("LDAP://RootDSE")
        strDNSDomain = objRootDSE.Get("defaultNamingContext")
 
        ' Use ADO to search Active Directory.
        objCommand = CreateObject("ADODB.Command")
        objConnection = CreateObject("ADODB.Connection")
        objConnection.Provider = "ADsDSOObject"
        objConnection.Open("Active Directory Provider")
        objCommand.ActiveConnection = objConnection
        strBase = "<LDAP://" & strDNSDomain & ">"
 
        objCommand.Properties("Page Size") = 100
        objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
        objCommand.CommandText = _
"SELECT givenName, SN, samAccountName, department, telephoneNumber, mail, userPrincipalName, distinguishedName, homeDirectory, homeDrive, canonicalName, scriptPath, userAccountControl" _
& "FROM" & "'LDAP://' & strDNSDomain & WHERE " _
           & "objectCategory='person' AND objectClass='user' ORDER BY samAccountName"
 
        Dim objRecordSet = objCommand.Execute
 
        objRecordSet.MoveFirst()
        Dim x = 3
 
        ' Export des données vers Excel
 
        Do Until objRecordSet.EOF
            objExcel.Cells(x, 2).Value = _
                objRecordSet.Fields("SN").Value
            objExcel.Cells(x, 3).Value = _
                objRecordSet.Fields("givenName").Value
            objExcel.Cells(x, 4).Value = _
                objRecordSet.Fields("samAccountName").Value
            objExcel.Cells(x, 5).Value = _
                objRecordSet.Fields("department").Value
            objExcel.Cells(x, 6).Value = _
                objRecordSet.Fields("telephoneNumber").Value
            objExcel.Cells(x, 7).Value = _
                objRecordSet.Fields("mail").Value
            objExcel.Cells(x, 8).Value = _
                objRecordSet.Fields("userPrincipalName").Value
            objExcel.Cells(x, 9).Value = _
                objRecordSet.Fields("distinguishedName").Value
            objExcel.Cells(x, 10).Value = _
                objRecordSet.Fields("homeDirectory").Value
            objExcel.Cells(x, 11).Value = _
                objRecordSet.Fields("homeDrive").Value
            objExcel.Cells(x, 12).Value = _
                objRecordSet.Fields("canonicalName").Value
            objExcel.Cells(x, 13).Value = _
                objRecordSet.Fields("scriptPath").Value
 
 
            ' Check du User Account Control pour déterminer si les comptes sont Enabled
            ' ou Disabled
 
            accountcontrol = objRecordSet.Fields("userAccountControl").Value
 
            If accountcontrol And 2 Then
                objExcel.Cells(x, 14).Value = "Disabled"
            Else : objExcel.Cells(x, 14).Value = "enabled"
            End If
 
            x = x + 1
            objRecordSet.MoveNext()
        Loop
 
 
        ' Autofit des cellules Excel
 
        objExcel.Columns("B:N").Select()
        objExcel.Selection.Columns.AutoFit()
        objExcel.Range("A1").Select()
 
        ' Clean up.
        objConnection.Close()
        objRootDSE = Nothing
        objCommand = Nothing
        objConnection = Nothing
        objRecordSet = Nothing
 
 
        ' Fin de Script
    End Sub
J'ai testé avec le & manquant effectivement mais pas mieux ;-(
Je commence tout juste en fait