2012-04-02 2 views
1

나는 DirectoryEntry을 받고 싶습니다. 도메인 - 사용자 그룹. 특정 그룹에서 사용자를 삭제하려면 this link을 팔로우하고 있습니다.특정 그룹에 대해 DirectoryEntry를 만드는 방법

strGroup = "CN=TestGroup,OU=TestOU";  
objGroup = objADAM.Children.Find(strGroup, "group"); 

이 코드는 MSDN 예제에서 가져온 것입니다. Active Directory 사용자 및 컴퓨터 애플릿 (CN 및 OU)에서 내 그룹을 찾으면 어떻게됩니까?

편집 : 일반적으로 Find 방법의 이름은 어디에서 찾을 수 있습니까?

MSDN에서

:

이름
유형 :
검색 대상의 하위 디렉터리 개체의 이름을 선택 System.String.

이 이름이 고유 이름입니까?

+0

내 [Beavertail ADSI 브라우저]에서보세요 (가지고 사용하는 코드입니다 http://adsi.mvps.org/adsi/CSharp /beavertail.html) - LDAP 경로 등을위한 AD 계층과 모든 관련 정보를 보여줍니다. –

+0

'strGroup'은 고유 이름입니까? 'CN = Domain-Users, CN = Users, DC = test1'과 같은 것입니까? – Tschareck

+0

"이름"은 실제로 컨테이너 내부의 개체의 "로컬"이름이어야합니다. 그래서 그것은'OU = TestOU' 컨테이너 안에있는'CN = TestGroup' 일 수도 있고 다른 것일 수도 있습니다. 그것은 당신이 찾고있는 객체의 로컬, 고유 이름입니다 - 단지 로컬 명, * 전체 LDAP 경로가 아님 * ... –

답변

1

상당한 양의 중복을 공유하는 두 개의 개별 환경을 혼합합니다. DirectoryEntry는 DirectoryServices 패키지의 일부이며 GetObject는 ActiveDs.dll과 인터페이스하는 VBA 도구입니다.

Visual Basic 스크립트가 필요한 경우 GetObject() 또는 Find() 메서드의 DirectoryEntry와 동등한 권한이 있습니다. 속성에 대한 액세스가 필요한 경우 object.Get ("property_name") 메서드를 사용하십시오 (다중 값 속성에 대한 배열을 반환)

개발 플랫폼을 .NET으로 바꿀 수 있으면 모든 DirectoryServices 필요.

편집 :이 C#을 .NET 응용 프로그램 인 경우, 여기

private static DirectoryEntry getGroupDE(String group) 
{ 
    String adserver = "dc.companyname.com"; 
    String searchroot = "ou=Groups,dc=companyname,dc=com"; 
    DirectorySearcher ds = new DirectorySearcher(); 
    ds.SearchRoot = new DirectoryEntry(String.Format("LDAP://{0}/{1}",adserver,searchroot)); 
    ds.SearchScope = SearchScope.Subtree; 
    ds.Filter = String.Format("(&(objectCategory=group)(sAMAccountName={0}))",group); 
    SearchResult sr = ds.FindOne(); 
    if (sr == null) 
    { 
     return null; 
    } 
    return sr.GetDirectoryEntry(); 
} 
+0

아니요, 이것은 C# .NET 응용 프로그램의 일부입니다 # – Tschareck

+0

이것이 있다면 .NET 및 C# DirectorySearcher를 사용합니다. 위의 게시물에 몇 가지 코드를 추가하겠습니다. – Kodra

관련 문제