Active Directory 구조, 사용자 및 그룹 생성, 사용자를 다른 그룹에 할당하는 것과 같이 도메인에서 사용자를 분리하기위한 여러 가지 작업을 수행하는 데 사용되는 응용 프로그램이 있습니다.도메인간에 폴더 사용 권한 설정
AD에서 모든 것이 만들어지면 새로 만든 AD 그룹 중 하나에 대해 새로 만든 폴더에 대한 액세스 권한을 할당하려고합니다.
도메인의 컴퓨터에 로그온 한 다음 응용 프로그램을 실행하지 않고 다른 도메인의 로컬 컴퓨터에서 응용 프로그램을 실행하고 싶습니다.
내 응용 프로그램의 모든 항목이 액세스 규칙을 설정하는 것 외에는 로컬 컴퓨터에서 제대로 작동하는 것 같습니다. 이는 다음과 같이 실패합니다.
"일부 또는 모든 ID 참조를 번역 할 수 없습니다."
도메인 내에서 실행하면 코드가 제대로 작동합니다. 나는 또한 가장을 사용하여 시도했지만 아무런 차이가 없습니다.
if (Directory.Exists(sDirectory))
{
using (Impersonation impUser = new Impersonation(sAdminUserName, _sDomain, sAdminPassword))
{
DirectoryInfo diClientDirectory = new DirectoryInfo(sDirectory);
DirectorySecurity dsClientDirectory = diClientDirectory.GetAccessControl();
FileSystemAccessRule fsAccessRules = new FileSystemAccessRule(sSecurityGroup, FileSystemRights.FullControl, (InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit), PropagationFlags.InheritOnly, AccessControlType.Allow);
**dsClientDirectory.AddAccessRule(fsAccessRules); //THIS LINE THROWS THE EXCEPTION**
diClientDirectory.SetAccessControl(dsClientDirectory);
}
그러나 언급했듯이 코드는 도메인 내의 컴퓨터에서 실행될 때 성공적으로 실행되므로 기존 그룹이 아닌 그룹에 대한 첫 번째 제안이 될 가능성이 낮다고 생각 했겠지만 그렇게하지 않으면 실패해야합니다. 이 그룹은 코드 초기에 생성되었거나 테스팅 중 일주일 전에 작성되었으므로 확실히 존재합니다! 그것은 해상도 문제가 될 수 있지만 ... 다른 모든 operatins는 AD 객체와 디렉토리 자체를 만드는 것처럼 작동하므로 신뢰가 괜찮다고 생각했을 것입니다. – RobBlankson