기타 정보/정보공유-IT

비주얼 스튜디오 2022에서 빌드된 프로그램이 관리자 권한으로 실행되게 하는 방법. app.manifest 파일 추가하기

FreeBear 2023. 8. 3. 14:11
반응형

C# 프로젝트에서 빌드된 프로그램이 관리자 권한으로 실행되도록 하려면 애플리케이션 매니페스트 파일을 수정하여 관리자 권한을 요청하도록 설정해야 합니다. 

프로젝트의 Properties에 app.manifest가 있는 경우에는 이 파일을 열어서 바로 수정하면 되지만 없는 경우에 app.manifest 파일을 추가하는 방법은 다음과 같습니다.

 

프로젝트에 app.manifest 파일 추가하는 방법

1) 프로젝트의 Properties를 우클릭 한 다음, [추가] > [새 항목] 클릭

 

2) 애플리케이션 매니페스트 파일 선택 후 [추가]하기

 

3) 아래 이미지처럼 Properties에 없었던 app.manifest 파일이, 아래 이미지와 같이 추가 됩니다.

↓↓↓

 

 

app.manifest 파일 수정하기

이제 app.manifest 파일이 프로젝트에 추가되었습니다. 이 파일을 열어서 애플리케이션 매니페스트의 내용을 편집할 수 있습니다. 참고로 애플리케이션 매니페스트를 사용하여 애플리케이션의 권한, 호환성 설정, UI 스타일 등을 구성할 수 있습니다.

그 중에서 권한을 설정하여 관리자 권한으로 실행되게 하는 방법은 다음과 같습니다.

1) requestedExecutionLevel에 있는 level="asInvoker"를  level="requireAdministrator"로 변경합니다.

↓↓↓

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

 

2) </requestedPrivileges>와  </security> 사이에 applicationRequestMinimum을 추가합니다.

↓↓↓

<applicationRequestMinimum>
    <defaultAssemblyRequest permissionSetReference="Custom" />
    <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />
</applicationRequestMinimum>

 

 

해당 코드는 다음과 같은 내용을 나타냅니다.

● <applicationRequestMinimum>: 이 섹션은 애플리케이션이 요청하는 최소 실행 권한을 지정합니다.

<defaultAssemblyRequest permissionSetReference="Custom" />: 이 부분은 기본 어셈블리 요청을 정의합니다. permissionSetReference 속성은 사용자 정의 권한 집합을 참조하는 것을 나타냅니다.

 PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />: 이 부분은 실제로 사용자 정의 권한 집합을 정의합니다. Unrestricted="true" 속성은 이 권한 집합이 제한 없이 모든 권한을 가진 것으로 정의되어 있음을 의미합니다.

위 코드를 사용하면 애플리케이션 매니페스트 파일을 통해 애플리케이션이 관리자 권한을 요청하고, 사용자에게 실행 시 UAC 대화상자가 나타날 것입니다. 사용자가 이를 허용하면 애플리케이션이 관리자 권한으로 실행됩니다.

반응형