This simple VBS script binds to a AD group and enumerates it’s members:
Option Explicit
Dim strMember, strDNSDomain, strContainer
Dim objGroup, objRootDSE
Dim arrMemberOf, strList, arrGroup
' Bind to Active Directory'
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("DefaultNamingContext")
' Bind to a group Object
' -- By ldap path
'strContainer = "cn=users,cn=Builtin, "
'Set objGroup = GetObject ("LDAP://"& strContainer & strDNSDomain) '
' -- By object SID
'Set objGroup = GetObject ("LDAP://<sid=s-1-5-21-4270008391-1092995833-463569060-1030>") ' KO_HANLOWIEC
Set objGroup = GetObject ("LDAP://<sid=s-1-5-21-4001076487-2384990073-809918020-1728>") ' Employees
objGroup.getInfo
arrMemberOf = objGroup.GetEx("member")
' Loop = For Each .... Next
WScript.Echo "Members of Group: " & objGroup.Get("name") & vbCRLF
For Each strMember in arrMemberOf
strMember = Mid(strMember, 4, 330)
arrGroup = Split(strMember, "," )
strList = strList & arrGroup(0) & vbCRLF
Next
Wscript.Echo objGroup.Get("cn") & " contains " & vbCRLF & strList & vbCRLF
Wscript.Quit
W ogólności lepiej bindować się do GUID albo DN – znaczy się czytelniej. Ten skrypt oczywiście wylistuje członkostwo w grupie ale bez członków:
– wynikających z zagnieżdzenia
– którzy mają tą grupę ustawioną jako primary group.
takie moje .02PLN
Skoro ktoś ogląda moje łupane kamienie – to czuję się wyciągnięty do tablicy 🙂
1. Nie miałem nic innego poza SIDami
2. Członkowie na 100% mieli inne PrimaryGroup i byli na 99% procent przypisywani do grupy bezpośrednio.