Windows에서 일부 작업을 수행할 때는 관리자 권한만으로는 부족한 경우가 있습니다. 예를 들어 시스템 파일이나 특정 레지스트리 키를 교체·삭제하거나, 시스템 서비스를 중지하는 등 운영체제 안정성에 영향을 줄 수 있는 민감한 작업은 일반적인 방법으로는 불가능합니다. 이런 경우 관리자는 파일이나 개체의 소유권을 가져오거나, 시스템 계정 명의로 작업을 수행해야 합니다. 이번 글에서는 Windows 10에서 최고 권한의 SYSTEM(LocalSystem) 계정으로 앱이나 명령 프롬프트를 실행하는 방법을 자세히 알아보겠습니다.
시작하기 전에 알아두세요
주의: SYSTEM 계정 명의로 Windows 시스템을 변경하는 것은 비표준 작업입니다. NT AUTHORITY\SYSTEM 권한으로 잘못된 작업을 수행하면 Windows가 손상될 수 있습니다. 실무에서 SYSTEM 계정으로 프로세스를 직접 실행하는 경우는 드물며, 대부분의 문제는 다음과 같은 표준적인 방법으로 해결할 수 있습니다.
- runas 명령으로 다른 계정 권한으로 실행
- 관리자 권한 없이 앱 실행 및 UAC 프롬프트 억제
- 파일·레지스트리 키의 소유권 가져오기
- 특정 앱에 한해 UAC 비활성화
- 일반 사용자에게 서비스 관리 권한 부여
SYSTEM(LocalSystem) 계정이란?
내장 SYSTEM 계정은 SCM(서비스 제어 관리자)이 시스템 서비스를 실행하고 관리할 때 사용하는 특별한 계정입니다. NT AUTHORITY\SYSTEM, Local System, 컴퓨터명\LocalSystem 등으로 불리며, 대부분의 시스템 서비스와 프로세스(NT OS 커널 포함)가 이 계정으로 실행됩니다. services.msc를 열어 '로그온' 열에 Local System으로 표시된 서비스들이 바로 SYSTEM 계정으로 동작 중인 서비스입니다.

구버전 Windows(Vista 이전)에서 로컬 시스템 계정으로 CMD 실행하기
지원이 종료된 Windows XP와 Windows Server 2003에서는 작업 스케줄러를 활용해 시스템 권한으로 프로그램이나 대화형 명령 프롬프트(cmd.exe)를 실행하는 트릭이 있었습니다. 관리자 계정으로 명령 프롬프트를 연 뒤 아래 명령을 실행하면 됩니다.
at 10:23 /interactive cmd.exe
여기서 10:23은 현재 시간 + 1분입니다(24시간 형식). 지정한 시간이 되면 로컬 시스템 계정으로 실행되는 명령 프롬프트 창이 나타납니다. 참고로 RDP(터미널) 세션에서 이 명령을 실행했다면, SYSTEM 권한의 명령 프롬프트는 콘솔 세션에만 표시되므로 mstsc /console 또는 mstsc /admin 옵션으로 콘솔에 접속해야 합니다.

Windows 10에서는 보안 강화로 인해 at 명령으로 대화형 명령 프롬프트를 실행할 수 없으며, 대신 schtasks.exe 사용이 권장됩니다.
Warning: Due to security enhancements, this task will run at the time expected but not interactively.
Use schtasks.exe utility if interactive task is required ('schtasks /?' for details).
The request is not supported.

PSExec로 Windows 10에서 SYSTEM 계정으로 CMD·프로세스 실행하기
Windows 7 이상에서는 작업 스케줄러로 SYSTEM 계정의 대화형 명령 프롬프트를 실행할 수 없습니다. 대신 Sysinternals의 PSExec.exe 유틸리티를 사용하면 NT AUTHORITY\SYSTEM 권한으로 명령을 실행할 수 있습니다.
PSExec.exe는 마이크로소프트 공식 사이트에서 다운로드할 수 있습니다(https://docs.microsoft.com/en-us/sysinternals/downloads/psexec). Windows 관리자라면 PSExec를 잘 알고 있을 것입니다. 주로 원격 Windows 관리에 사용되지만, SYSTEM 계정 명의로 프로세스를 실행하는 유용한 기능도 함께 제공합니다. 다만 일부 백신 프로그램은 PSExec.exe를 잠재적으로 위험한 프로그램으로 분류할 수 있습니다. 실제로 악명 높은 노타페티아(NotPetya) 랜섬웨어 확산에도 psexec가 악용된 바 있습니다.
PSExec는 별도 설치가 필요 없습니다. 관리자 권한 명령 프롬프트('관리자 권한으로 실행')를 열고 PSExec.exe가 있는 폴더로 이동한 후 다음 명령을 실행합니다.
psexec -i -s cmd.exe
- -i – 프로세스·앱을 대화형 모드로 시작합니다(사용자가 데스크톱에서 앱과 상호작용 가능). 이 옵션을 생략하면 콘솔 세션에서 시작됩니다.
- -s – 프로세스(여기서는 명령 프롬프트)를 SYSTEM 계정으로 실행한다는 의미입니다.
PSExec를 처음 실행하면 라이선스 동의 창이 나타납니다.

명령을 실행하면 NT Authority\System 계정으로 실행되는 새 명령 프롬프트 창이 열립니다. 다음 명령으로 이를 확인할 수 있습니다.
whoami

이렇게 하면 cmd.exe 자리에 원하는 프로그램의 실행 파일 이름을 넣는 것만으로 어떤 프로그램, 명령, 스크립트든 SYSTEM 계정으로 실행할 수 있습니다.
열린 명령 프롬프트 창에서는 SYSTEM 권한으로 모든 명령을 수행할 수 있습니다. TrustedInstaller나 SYSTEM이 소유한 시스템 파일·레지스트리 키를 수정, 이름 변경, 삭제할 수 있으며, 이 창에서 시작한 모든 프로그램과 프로세스는 LocalSystem 권한으로 실행됩니다. 예를 들어 시스템 서비스를 중지하거나 시스템 프로세스가 점유 중인 파일을 닫는 것도 가능합니다.
원격 컴퓨터에서 SYSTEM 권한 명령 프롬프트 열기
PSExec를 사용하면 원격 컴퓨터에서도 NT AUTHORITY\SYSTEM 권한의 대화형 명령 프롬프트를 열 수 있습니다. 다음 명령을 사용합니다.
psexec -s \\mun-b21pc12 cmd.exe
'PSEXESVC 서비스를 설치할 수 없습니다' 오류 해결 방법
Couldn't install PSEXESVC service 오류가 발생하면 다음 두 가지를 확인하세요.
- 명령 프롬프트가 관리자 권한으로 실행되고 있는지 확인
- 다른 PSEXESVC 서비스 인스턴스가 이미 실행 중이지 않은지 확인

마무리: 서드파티 도구는 필요할까?
AdvancedRun, RunAsSystem, PowerRun처럼 SYSTEM 계정으로 앱을 실행해 주는 서드파티 도구들도 존재하지만, 굳이 사용할 필요는 없습니다. 첫째, 서드파티 도구는 악성 코드가 포함되어 있지 않다고 확신할 수 없습니다. 둘째, 마이크로소프트 공식 PsExec 유틸리티만으로도 이 작업을 충분히 안전하게 수행할 수 있습니다.