Ik ben een poging aan het doen om een lijst uit AD te halen waarin alle groepen staan en waar er per groep staat aangegeven wie er lid van is.
Nu heb ik 2 scripts op Internet gevonden, één die alle groepen uit AD haalt, en één die van een vast ingegegeven groep aangeeft wie er lid van is.
Nu heb ik dus een poging gedaan om deze 2 scripts in elkaar te breien, waarbij er van het 2e script een variabele gevuld wordt middels een loop met de gegevens uit het eerste script.
Op zich lukt dat volgens mij wel, echter, zodra de variabele (met de distinguishedName van de groep) gevuld wordt, wordt bij de eerstvolgende regel dat er gegevens opgehaald moeten een gedeelte van de DN afgehakt en wordt er dus niets opgehaald.
Output:
De code die ik hiervoor gebruik, is als volgt:
Mis ik ergens iets, heeft iemand eerder met dit bijltje gehakt ?????
Nu heb ik 2 scripts op Internet gevonden, één die alle groepen uit AD haalt, en één die van een vast ingegegeven groep aangeeft wie er lid van is.
Nu heb ik dus een poging gedaan om deze 2 scripts in elkaar te breien, waarbij er van het 2e script een variabele gevuld wordt middels een loop met de gegevens uit het eerste script.
Op zich lukt dat volgens mij wel, echter, zodra de variabele (met de distinguishedName van de groep) gevuld wordt, wordt bij de eerstvolgende regel dat er gegevens opgehaald moeten een gedeelte van de DN afgehakt en wordt er dus niets opgehaald.
Output:
code:
1
2
3
4
| ** General Properties Page** ** (Single-Valued Attributes) ** CN=HelpServicesGroup,CN=Users,DC=FZ,DC=local H:\Users Member Of\test\groupmembers.vbs(46, 1) Runtimefout Microsoft VBScript: Object vereist: 'CN=HelpServicesGroup' |
De code die ik hiervoor gebruik, is als volgt:
code:
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
| Option Explicit
Dim objRootDSE, strDNSDomain, objCommand, objConnection
Dim strBase, strFilter, strAttributes, strQuery, objRecordSet
Dim strDN, strAltRecipient
' Determine DNS domain name.
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
' Use ADO to search Active Directory.
Set objCommand = CreateObject("ADODB.Command")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
objCommand.ActiveConnection = objConnection
' Specify the base of the search.
strBase = "<LDAP://" & strDNSDomain & ">"
' Filter on all group objects in the domain.
strFilter = "(&(objectCategory=group)(objectClass=group))"
' Specify the attributes to retrieve (comma delimited list).
strAttributes = "distinguishedName"
' Specify the query. "subtree" means to search all child containers/OU's.
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
objCommand.CommandText = strQuery
objCommand.Properties("Page Size") = 100
objCommand.Properties("Timeout") = 30
objCommand.Properties("Cache Results") = False
Set objRecordSet = objCommand.Execute
Do Until objRecordSet.EOF
strDN = objRecordSet.Fields("distinguishedName")
' *************************************************************
' On Error Resume Next
WScript.Echo VbCrLf & "** General Properties Page**"
WScript.Echo "** (Single-Valued Attributes) **"
WScript.Echo strDN
strname = strDN.Get("name")
WScript.Echo "name: " & strname
strsamAccountName = strDN.Get("samAccountName")
WScript.Echo "samAccountName: " & strsamAccountName
strdescription = strDN.Get("description")
WScript.Echo "description: " & strdescription
strmail = strDN.Get("mail")
WScript.Echo "mail: " & strmail
WScript.Echo VbCrLf & "** General Properties Page**"
WScript.Echo "** (The groupType attribute) **"
Set objHash = CreateObject("Scripting.Dictionary")
objHash.Add "ADS_GROUP_TYPE_GLOBAL_GROUP", &h2
objHash.Add "ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP", &h4
objHash.Add "ADS_GROUP_TYPE_UNIVERSAL_GROUP", &h8
objHash.Add "ADS_GROUP_TYPE_SECURITY_ENABLED", &h80000000
intgroupType = strDN.Get("groupType")
For Each Key in objHash.Keys
If objHash(Key) And intgroupType Then
WScript.Echo Key & " is enabled."
Else
WScript.Echo Key & " is disabled."
End If
Next
If intgroupType AND objHash.Item("ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP") Then
WScript.Echo "Group Scope: Domain Local Group"
ElseIf intGroupType AND objHash.Item("ADS_GROUP_TYPE_GLOBAL_GROUP") Then
WScript.Echo "Group Scope: Global Group"
ElseIf intGroupType AND objHash.Item("ADS_GROUP_TYPE_UNIVERSAL_GROUP") Then
WScript.Echo "Group Scope: Universal Group"
End If
If intgroupType AND objHash.Item("ADS_GROUP_TYPE_SECURITY_ENABLED") Then
WScript.Echo "Group Type: Security"
Else
WScript.Echo "Group Type: Distribution"
End If
WScript.Echo VbCrLf & "** Managed By Properties Page**"
WScript.Echo "** (Single-Valued Attributes) **"
strmanagedBy = strDN.Get("managedBy")
WScript.Echo "managedBy: " & strmanagedBy
If strmanagedBy <> "" Then
Set strDN1 = GetObject("LDAP://" & strManagedBy)
WScript.Echo "physicalDeliveryOfficeName: " & _
strDN1.physicalDeliveryOfficeName
WScript.Echo "streetAddress: " & _
strDN1.streetAddress
WScript.Echo "l: " & _
strDN1.l
WScript.Echo "c: " & _
strDN1.c
WScript.Echo "telephoneNumber: " & _
strDN1.telephoneNumber
WScript.Echo "facsimileTelephoneNumber: " & _
strDN1.facsimileTelephoneNumber
End If
WScript.Echo VbCrLf & "** Member Properties Page**"
WScript.Echo "** (MultiValued Attributes) **"
strmember = strDN.GetEx("member")
WScript.Echo "member:"
For Each Item in strmember
WScript.Echo vbTab & Item
Next
WScript.Echo VbCrLf & "** Member Of Properties Page**"
WScript.Echo "** (MultiValued Attributes) **"
strmemberOf = strDN.GetEx("memberOf")
WScript.Echo "memberOf:"
For Each Item in strmemberOf
WScript.Echo vbTab & Item
Next
WScript.Echo VbCrLf & "** Managed By Properties Page**"
WScript.Echo "** (Single-Valued Attributes) **"
strmanagedBy = strDN.Get("managedBy")
WScript.Echo "managedBy: " & strmanagedBy
If strmanagedBy <> "" Then
Set strDN1 = GetObject("LDAP://" & strManagedBy)
WScript.Echo "physicalDeliveryOfficeName: " & _
strDN1.physicalDeliveryOfficeName
WScript.Echo "streetAddress: " & _
strDN1.streetAddress
WScript.Echo "l: " & _
strDN1.l
WScript.Echo "c: " & _
strDN1.c
WScript.Echo "telephoneNumber: " & _
strDN1.telephoneNumber
WScript.Echo "facsimileTelephoneNumber: " & _
strDN1.facsimileTelephoneNumber
End If
' *************************************************************
' & "#GroupFullName: " & strAltRecipient
objRecordSet.MoveNext
Loop
' Clean up.
objConnection.Close
Set objRootDSE = Nothing
Set objCommand = Nothing
Set objConnection = Nothing
Set objRecordSet = Nothing |
Mis ik ergens iets, heeft iemand eerder met dit bijltje gehakt ?????
[ Voor 11% gewijzigd door cOOlrUnnINgs op 08-07-2005 15:10 ]