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.