[C#] .NET 애플리케이션을 관리자로 강제 실행하려면 어떻게합니까?

프로그램이 클라이언트 컴퓨터에 설치되면 Windows 7 에서 프로그램을 관리자로 강제 실행하려면 어떻게해야 합니까?



답변

프로그램에 포함 된 매니페스트를 수정하려고합니다. Visual Studio 2008 이상에서 작동합니다. Project + Add New Item, “Application Manifest File”을 선택하십시오. <requestedExecutionLevel>요소를 다음과 같이 변경하십시오 .

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

사용자는 프로그램을 시작할 때 UAC 프롬프트를 받습니다 . 현명하게 사용하십시오. 그들의 인내심은 빨리 마모 될 수 있습니다.


답변

requestedExecutionLevel매니페스트에 요소를 추가하는 것은 전투의 절반에 불과합니다. UAC 를 끌 수 있다는 것을 기억해야 합니다. 그렇다면 사용자가 관리자가 아닌 경우 구식 방법을 확인하고 오류 대화 상자를 표시해야합니다
( IsInRole(WindowsBuiltInRole.Administrator)스레드의 전화 CurrentPrincipal).


답변

자세한 단계는 다음과 같습니다.

  1. 솔루션에 애플리케이션 매니페스트 파일 추가
  2. 응용 프로그램 설정을 “app.manifest”로 변경
  3. “requestedExecutionLevel”의 태그를 업데이트하여 관리자가 필요합니다.

솔루션에서 파일 추가

응용 프로그램 매니페스트 파일 선택

매니페스트 선택 옵션

매니페스트 파일 업데이트

이 코드를 사용하면 ClickOnce의 보안 설정을 해제해야합니다. 이렇게하려면 속성-> 보안-> ClickOnce 보안으로 이동하십시오.


답변

수동으로 코드를 구현했습니다.

using System.Security.Principal;
public bool IsUserAdministrator()
{
    bool isAdmin;
    try
    {
        WindowsIdentity user = WindowsIdentity.GetCurrent();
        WindowsPrincipal principal = new WindowsPrincipal(user);
        isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
    }
    catch (UnauthorizedAccessException ex)
    {
        isAdmin = false;
    }
    catch (Exception ex)
    {
        isAdmin = false;
    }
    return isAdmin;
}


답변

EXE 파일에 매니페스트 파일을 포함하면 Windows (7 이상)가 항상 관리자 권한으로 프로그램을 실행하게됩니다.

6 단계 : UDN (Application Manifest) 작성 및 임베드 (MSDN) 에서 자세한 정보를 찾을 수 있습니다 .


답변

Visual Studio 2008에서 작업하는 동안 마우스 오른쪽 단추를 클릭 Project -> Add New Item하고을 선택하십시오 Application Manifest File.

매니페스트 파일에는 태그 requestedExecutionLevel가 있으며 레벨을 세 가지 값으로 설정할 수 있습니다.

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

또는

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

또는

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

응용 프로그램이 관리자로 실행되도록 설정하려면 중간 응용 프로그램을 선택해야합니다.


답변

에 따라

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

애플리케이션 매니페스트가 없거나 추가하는 방법을 모르는 경우 애플리케이션 매니페스트를 추가하려고합니다. 일부 프로젝트는 별도의 매니페스트 파일을 자동으로 추가하지 않으므로 먼저 프로젝트 속성으로 이동하여 응용 프로그램 탭으로 이동 한 다음 프로젝트가 탭 하단의 매니페스트를 제외하지 않는지 확인하십시오.

  • 다음으로 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.
  • 새 항목 추가
  • 마지막으로 응용 프로그램 매니페스트 파일을 찾아 클릭하십시오.