Windows 7에서 AD LDS를 사용하고 adaminstall 유틸리티를 사용하여 새 응용 프로그램 파티션이있는 로컬 인스턴스를 만들었습니다.CN = 독자, CN = C#의 AD LDS 파티션에 로컬 그룹 추가
기존 로컬 Windows 그룹을이 파티션의 독자 역할에 추가하려면 어떻게합니까?
- ADSI 편집을 시작하고 AD LDS 인스턴스와 파티션에 연결 :
나는 다음과 같은 수동 단계에 의해 제공되는 (C#으로) 프로그래밍 같은 결과를 얻을 싶어요.
- 파티션 루트 노드 아래의 CN = 독자로 이동하십시오.
- CN = 독자 항목을 두 번 클릭하십시오.
- "회원"속성을 두 번 클릭하십시오.
- 기존 로컬 Windows 그룹을 선택하고 추가하십시오. 로컬 그룹은 적어도 상기 한 수동 단계를 사용하여 독자의 역할에 한 번 추가 된 경우
public void AddReader(string partitionName, string accountName) { var ntAccount = new NTAccount(accountName); var securityIdentifer = ntAccount.Translate(typeof(SecurityIdentifier)); var accountNameDN = string.Format("CN={0},CN=ForeignSecurityPrincipals,{1}", securityIdentifer.Value, partitionName); var rootPath = string.Format("LDAP://localhost:389/CN=Readers,CN=Roles,{0}", partitionName) var directoryEntry = new DirectoryEntry(RootPath); directoryEntry.Properties["member"].Add(accountNameDN); directoryEntry.CommitChanges(); }
이 코드는 작동 :
는 이미 다음 C# 코드가 있습니다. 그룹을 수동으로 추가 한 다음 수동으로 제거하면 위에 표시된 코드를 사용하여 그룹을 다시 추가 할 수 있습니다. 나는 새로운 로컬 Windows 그룹을 추가 할 때
는하지만, 코드의 CommitChanges()
호출은 위의 오류 코드 0x8007002F
및 메시지 A constraint violation occurred
와 DirectoryServicesCOMException
가 발생합니다.
분명히 수동 단계는 기존 로컬 Windows 그룹에서 AD LDS 판독기 역할에 추가하기에 적합한 일부 수정 작업을 수행합니다. 하지만 내가 뭘 놓치고 있니?
내 접근 방식보다 ActiveDirectorySecurity
및 ActiveDirectoryAccessRule
클래스를 사용하는 것이 더 나은 방법이라고 생각하지만 사용 방법을 알 수는 없습니다.
나를 위해 작동하지 않습니다 .. System.DirectoryServices.DirectoryServicesCOMException : 서버 요청을 처리하지 않으려 고합니다. –