모든 운영체제에서 가장 핵심적인 보안 장치는 바로 권한(Privileges)입니다. 프로세스나 프로그램의 실행은 여러 단계의 권한 수준에서 이루어질 수 있으며, 대부분의 경우 운영체제 자체가 이를 관리합니다. 하지만 때로는 스크립트나 프로그램을 실행하는 데 더 높은 권한이 필요할 수 있습니다. 이러한 프로그램들은 운영체제에 내장된 시스템 파일과 API에 접근해야 하기 때문인데, 해당 영역에는 권한 계층 구조상 최상위 권한만 접근할 수 있습니다. 일반적으로 이 역할을 하는 것이 바로 관리자(Administrator)입니다.
마찬가지로 PowerShell 스크립트(.ps1)를 관리자 권한으로 실행하려면 매번 별도의 복잡한 절차를 거쳐야 해서 불편함을 겪는 사용자가 많습니다. 이 글에서는 PS1 파일의 마우스 오른쪽 버튼 컨텍스트 메뉴에 관리자 권한으로 실행 옵션을 추가하는 방법을 소개합니다.

레지스트리 편집기로 '관리자 권한으로 실행' 메뉴 추가하기
작업을 시작하기 전에 시스템 복원 지점을 만들어 두는 것을 권장합니다. 만약 문제가 발생하더라도 손쉽게 되돌릴 수 있기 때문입니다.
준비가 되었다면 레지스트리 편집기를 실행하세요. Cortana 검색창에 regedit를 입력하거나, WINKEY + R 키를 눌러 실행 창을 연 후 regedit를 입력하고 Enter 키를 누르면 됩니다.
그다음 아래 경로로 이동합니다.
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell

1단계: RunAs 키 생성
왼쪽 패널에서 shell 키를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 > 키(New > Key)를 선택합니다.
새로 생성된 키의 이름을 RunAs로 변경합니다.
2단계: HasLUAShield 문자열 값 추가
오른쪽 패널을 마우스 오른쪽 버튼으로 클릭하고 문자열 값(String Value)을 새로 만듭니다. 이름은 HasLUAShield로 지정하세요. 이 값은 메뉴에 UAC 방패 아이콘을 표시해 주는 역할을 합니다. 진행 과정에서 UAC(사용자 계정 컨트롤) 확인 창이 나타나면 예를 선택합니다.
3단계: command 하위 키 생성 및 값 설정
RunAs 키 아래에 새로운 키를 하나 더 생성하고 이름을 command로 지정합니다.
해당 키 안에는 기본적으로 (기본값)이라는 문자열 값이 있습니다. 이 값을 마우스 오른쪽 버튼으로 클릭하여 수정(Modify)을 선택한 뒤, 값 데이터를 아래와 같이 입력합니다.
powershell.exe "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"
모든 작업이 완료되면 컴퓨터를 재부팅합니다.
재부팅 후 PowerShell 스크립트 파일을 마우스 오른쪽 버튼으로 클릭했을 때 관리자 권한으로 실행 옵션이 정상적으로 나타나는지 확인하세요.
변경 사항 되돌리는 방법
추가한 메뉴를 제거하고 싶다면 다시 레지스트리 편집기를 열고 아래 경로로 이동합니다.
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell
그런 다음 RunAs 하위 키를 삭제하고 컴퓨터를 재부팅하면 됩니다.
레디메이드 .reg 파일 활용하기
레지스트리 편집 과정이 번거롭다면, 미리 만들어진 등록 파일을 사용하는 더 간편한 방법도 있습니다.
Add Run As Administrator PS.reg 파일을 다운로드하여 더블클릭으로 실행합니다. 병합(Merge) 확인 창과 UAC 알림 등 모든 확인 창에서 예를 선택한 뒤 컴퓨터를 재부팅하면 메뉴가 추가됩니다.
변경 사항을 되돌리려면 Remove Run As Administrator PS.reg 파일을 더블클릭하여 실행하고 재부팅하면 됩니다.
필요한 파일은 아래 이미지 링크를 통해 다운로드할 수 있습니다.
