directoryEntry.nativeObject는 Windows 2008의 관리자 그룹의 사용자에 대한 액세스 거부
-
06-07-2019 - |
문제
현지 사용자가 있는데,이 사용자는 관리자 로컬 그룹의 회원입니다.
이 코드를 실행할 때 :
using System;
using System.DirectoryServices;
namespace nanttest
{
class Program
{
public static void Main(string[] args)
{
using(DirectoryEntry entry = new DirectoryEntry("IIS://localhost/W3SVC"))
{
object absobject = entry.NativeObject;
Console.WriteLine("Name: {0}", entry.Name);
}
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
나는 받는다 :
처리되지 않은 예외 : System.Runtime.InterOpServices.comexception (0x80070005) : 액세스가 거부됩니다.
at System.DirectoryServices.directoryEntry.bind (boolean trashiffail)의 System.DirectoryServices.directoryEntry.bind ()의 System.DirectoryServices.directoryServices.get_nativeObject ()의 nanttest.program.Main (string [] argss)의 C : Work work work work work work nanttest nanttest program.cs : 라인 20
관리자로 로그인하는 동안이 코드를 실행하면 괜찮습니다.
또한이 코드는 도메인 나드 민 사용자로 로그인 한 경우 실행되지 않습니다. 나는 현지 관리자 그룹의 구성원으로 나의 도메인 domainadmins와 mydomain mydomainuser를 추가했습니다.
이 사용자에 대해 다른 권한을 추가해야 하므로이 코드를 실행할 수 있습니다.
해결책
내 자신의 질문에 답하기 위해 다른 사람들은 해결책을 찾을 수 있습니다.
문제는 Windows 2008의 기본 UAC 설정에 문제가 있습니다. 사용자가 관리자 그룹에 있더라도 일부 작업을 실행하기 위해 여전히 높은 권한이 필요합니다 (위의 것은 그 중 하나 인 것 같습니다).
따라서 솔루션 1- "관리자로 실행"을 사용하여 응용 프로그램을 실행하거나 해당 옵션으로 시작된 명령 프롬프트에서 시작하십시오.
솔루션 2 : 관리자 그룹 용 UAC 비활성화 - 메소드 #3을 사용했습니다. 이 기사 (그룹 정책 변경). 이러한 변경 후 서버를 재부팅해야합니다.