Active Directory 내에서 그룹 구성원의 세부 정보를 추출하는 데 정기적으로 사용하는 Excel 내 매크로가 있습니다. 그것은 시도한 모든 그룹에 대해 잘 작동하지만 데이터를 얻을 수없는 그룹을 발견했습니다. 내가 존재하지 않는 그룹 이름으로 스크립트를 실행하려고했습니다LDAP 쿼리가 Active Directory에서 특정 그룹을 찾을 수 없습니다.
Set rootDSE = GetObject("LDAP://[MyDomain.co.uk]/RootDSE")
DomainContainer = rootDSE.Get("defaultNamingContext")
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "ADSDSOObject"
conn.Open "ADs Provider"
Set command = CreateObject("ADODB.Command")
Set command.ActiveConnection = conn
command.Properties("Page size") = 200
groupDistinguisedName = "CN=[Group Name],OU=xxx,OU=xxx,DC=MyDomain,DC=co,DC=uk"
command.CommandText = "<LDAP://" & DomainContainer & ">;(distinguishedName=" & groupDistinguisedName & ");member;subtree"
Set rs = command.Execute
On Error Resume Next
dataVal = rs.Fields("member").Value
하고 스크립트가 다른 방식으로 동작 - dataVal가 으로 설정됩니다
스크립트의 해당 비트는 다음과 같습니다 그룹이 존재하지 않지만 Null 그룹의 경우 그룹에 문제가있어 그룹을 찾았지만 그룹 구성원을 확보 할 수없는 것으로 보입니다.
Active Directory에서 직접 고유 이름을 잘라내어 LDAP 명령 문자열에 붙여 넣어 보았습니다. 이름에 오타가없는 것으로 알고 있습니다. 이 그룹은 회원이 많은 대규모 그룹이지만 다른 대규모 그룹도 시도했습니다. 문제를 일으킬 수있는 것이 무엇인지 알 수 없습니다. 어떤 아이디어?
VBScript가 좋지 않으므로 내가 사용하는 매크로가 여러 가지 소스에서 수십 년 동안 함께 자갈처럼 얽혀 있습니다. primaryGroup뿐만 아니라 모든 그룹의 구성원을 열거 할 수 있어야하므로 내 경우에는 primaryGroupToken 특성 토큰이 유용하지 않습니다. 당신이 나에게 좀 더 자세하게 설명해 줄 수 있다면 GetObject를 사용하는 방법을보고 싶다. (성능은 아직까지는 문제가되지 않았지만). 범위 검색은 정확히 제가 겪었던 문제입니다. 멤버가 1500 명이 넘기 때문에 * members * 속성이 null입니다. 고맙습니다! – paulH
VB에서 Range Retrieval을 수행하는 방법은이 [link] (http://msdn.microsoft.com/en-us/library/aa746518(v=vs.85)asp)를 참조하십시오. – baldpate
또한 이론적으로 모든 그룹 구성원을 표시하려면 기본 그룹 및 "일반"그룹 구성원을 모두 확인해야합니다. 즉, 기본 멤버를 "멤버"속성에서 가져올 수 없으며 그 반대의 경우도 마찬가지입니다. 그러나 대부분의 경우 도메인 사용자와 같은 소수의 특수 그룹 만이 기본 그룹 구성원을 갖습니다. 사용 사례에 따라 기본 그룹 멤버쉽을 모두 처리하거나 생략 할 수 있습니다. – baldpate