I have scripted GetGroups.vbs to return all the groups in your domain, returning the following in semi-colon separated format:
"distinguishedName";"sAMAccountName";"Scope";"SecDst"
Where:
DistinguishedName is the distinguished name of the group. sAMAccountName is the NetBIOS (Pre-Windows 2000) name of the group. Scope is the group scope: B for a Built-in group. L for a Domain Local group. G for a Global group. U for a Universal group. SecDst is the group type: S for a security group. D for a distribution group.GetGroups.vbs contains:
On Error Resume Next Dim objConnection, objCommand, objRootDSE, strDNSDomain Dim strFilter, strQuery, objRecordSet, gt Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOOBject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection Set objRootDSE = GetObject("LDAP://RootDSE") 'Get domain strDNSDomain = objRootDSE.Get("defaultNamingContext") strBase = "<LDAP://" & strDNSDomain & ">" 'Define the filter elements strFilter = "(&(objectCategory=group))" 'List all attributes you will require strAttributes = "distinguishedName,sAMAccountName,groupType" 'compose query strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree" objCommand.CommandText = strQuery objCommand.Properties("Page Size") = 99999 objCommand.Properties("Timeout") = 300 objCommand.Properties("Cache Results") = False Set objRecordSet = objCommand.Execute objRecordSet.MoveFirst Do Until objRecordSet.EOF strDN = objRecordSet.Fields("distinguishedName") strSA = objRecordSet.Fields("sAMAccountName") gt = objRecordSet.Fields("groupType") if (gt ANd &h01) 0 then Scope = "B" ElseIf (gt And &h02) 0 Then Scope = "G" ElseIf (gt And &h04) 0 Then Scope = "L" ElseIf (gt And &h08) 0 Then Scope = "U" End If If (gt And &h80000000) 0 Then SecDst = "S" Else SecDst = "D" End If Wscript.Echo;" & strDN & ;& strSA & ;& Scope & " objRecordSet.MoveNext Loop ' Clean up. objConnection.Close Set objConnection = Nothing Set objCommand = Nothing Set objRootDSE = Nothing Set objRecordSet = Nothing& SecDst &
1 comment
Hide comments