Windows 관리자 권한인데 접근 거부 해결 방법(UAC 토큰 분리·승격 문제 총정리)

이 글의 목적은 Windows에서 “관리자 권한인데도 접근이 거부됨”이 반복되는 상황을 UAC 토큰 분리 관점에서 정확히 진단하고, 로컬·원격 시나리오별로 재현 가능하게 해결 절차를 정리하여 현장에서 바로 적용할 수 있도록 돕는 것이다.

문제의 본질: “관리자 계정”과 “관리자 토큰”은 다르다

Windows는 UAC(User Account Control)가 활성화된 환경에서 관리자로 로그인해도 기본적으로 “표준(필터링) 토큰”으로 대부분의 프로그램을 실행하도록 설계되어 있다. 이때 탐색기, 일반 CMD, 일반 PowerShell은 중간(또는 보통) 무결성 수준으로 떠 있으며, 시스템 폴더·레지스트리·서비스 제어·보호된 리소스 접근 시 “승격(높은 무결성)”이 요구된다. 사용자는 관리자 그룹에 속해 있음에도, 현재 실행 중인 프로세스가 승격되지 않았다면 접근 거부가 정상 동작이다.

또한 원격 접근에서는 “Remote UAC(원격 UAC 제한)”이 추가로 개입하여 로컬 관리자 계정으로 네트워크를 통해 들어오는 요청을 필터링 토큰으로 강등시키는 경우가 있다. 이 때문에 로컬에서는 되는데 원격(C$, ADMIN$, 원격 서비스 설치, WMI, 원격 레지스트리 등)에서만 접근 거부가 발생하는 현상이 매우 흔하다.

주의 : 해결을 위해 UAC를 무조건 꺼버리거나(EnableLUA 비활성화), “항상 승격” 상태로만 운용하는 것은 보안 사고 위험을 크게 높인다. 본문은 원인별로 필요한 최소 변경을 우선 제시하며, 정책 변경은 반드시 영향 범위를 검토한 뒤 적용해야 한다.

1. 첫 단계: 지금 실행 중인 창이 “승격(관리자 토큰)”인지 확인하다

1-1. CMD/PowerShell에서 무결성 수준으로 빠르게 판별하다

아래 명령은 현재 창이 높은 무결성(승격)인지 확인하는 데 자주 사용된다. 출력이 잡히면 승격 상태로 보는 것이 실무에서 가장 빠르다.

whoami /groups | find "S-1-16-12288"

아무 것도 출력되지 않으면 일반(비승격) 창일 가능성이 크다. 보다 자세한 전체 토큰/권한/무결성은 아래로 확인한다.

whoami /all

1-2. 작업 관리자에서도 확인하다

작업 관리자에서 “세부 정보” 탭을 열고 열 선택에서 “승격됨” 컬럼을 추가하면, 프로세스가 승격으로 떠 있는지 한눈에 확인할 수 있다. 탐색기(explorer.exe)가 승격이 아니라면, 탐색기를 통해 실행한 하위 앱도 기본적으로 비승격으로 뜨는 경우가 많다.

2. 로컬에서 접근 거부가 나는 대표 시나리오와 해결 절차

2-1. 관리자 작업을 “승격된 프로세스”에서 수행하다

가장 흔한 원인은 단순히 작업을 비승격 창에서 수행하는 것이다. 아래 중 하나로 반드시 승격 상태에서 재시도한다.

상황 빠른 해결 설명
CMD/PowerShell에서 폴더·레지스트리·서비스 접근 거부 “관리자 권한으로 실행”으로 콘솔 재실행 관리자 그룹이라도 비승격 토큰이면 권한이 부족하다.
GUI 프로그램이 설정 저장/드라이버 설치에서 실패 아이콘 우클릭 → 관리자 권한으로 실행 설치·시스템 변경은 승격이 요구되는 경우가 많다.
탐색기에서 특정 폴더 삭제/변경 실패 승격 콘솔에서 명령으로 처리 탐색기 자체가 비승격이면 ACL/소유권에 막힐 수 있다.

2-2. “권한”이 아니라 “소유권/ACL” 문제인지 분리 진단하다

승격 상태인데도 접근 거부가 계속된다면, 토큰 문제가 아니라 NTFS ACL, 소유권, 상속 차단, 또는 TrustedInstaller 보호 같은 권한 설계 문제일 가능성이 높다.

2-3. 폴더/파일 소유권 및 권한을 정상화하다(필요한 범위만)

아래 예시는 특정 폴더를 현재 사용자(또는 Administrators) 기준으로 복구하는 절차이다. 운영 환경에서는 대상 경로를 최소화하고, 시스템 핵심 경로(예: Windows, Program Files 하위)를 무분별하게 변경하지 않아야 한다.

takeown /F "C:\TargetFolder" /R /D Y icacls "C:\TargetFolder" /inheritance:e icacls "C:\TargetFolder" /grant Administrators:(OI)(CI)F /T

권한 복구 후에도 특정 파일이 지워지지 않으면 “사용 중(잠금)” 상태일 수 있으므로, 핸들 점유 프로세스 확인 후 종료하거나 안전 모드에서 처리하는 방식으로 접근해야 한다.

주의 : TrustedInstaller가 소유자인 시스템 파일의 소유권을 바꾸면 업데이트, 무결성 검사, 보안 기준에 영향을 줄 수 있다. 반드시 문제 해결에 필요한 최소 경로만 변경하고, 변경 이력을 남기는 것이 안전하다.

2-4. 레지스트리 접근 거부는 “승격 + 키 권한”을 동시에 점검하다

레지스트리도 동일하게 승격이 필요할 뿐 아니라, 특정 키는 관리자에게도 쓰기 권한이 없게 설계되어 있을 수 있다. regedit를 승격으로 실행한 뒤에도 접근이 막히면 해당 키의 “권한”과 “소유자”를 확인해야 한다. 명령형 접근이 필요한 경우 reg.exe를 승격 콘솔에서 사용한다.

reg query "HKLM\SOFTWARE\SomeKey" reg add "HKLM\SOFTWARE\SomeKey" /v TestValue /t REG_DWORD /d 1 /f

2-5. 서비스/드라이버/예약 작업은 별도의 권한 경로를 요구하다

서비스 제어(Service Control Manager), 드라이버 설치, 방화벽 정책 변경, 로컬 보안 정책 변경 등은 일반 파일 권한과 다른 경로로 권한이 평가된다. 예를 들어 서비스 제어는 승격 콘솔이 기본이며, 조직 환경에서는 추가로 “사용자 권한 할당” 정책 또는 제품 보안 모듈이 차단할 수 있다. 이 경우 이벤트 뷰어의 보안/시스템 로그와 제품 로그를 함께 확인해야 한다.

3. 원격에서만 접근 거부라면: Remote UAC 토큰 필터링을 최우선으로 의심하다

다음 증상이 대표적이다.

  • 로컬 로그인 후에는 작업이 되는데, 다른 PC에서 \\대상PC\C$ 또는 \\대상PC\ADMIN$ 접속이 “액세스가 거부되었습니다”로 실패하다.
  • 원격 서비스 설치/실행, 원격 레지스트리, WMI, 원격 파일 복사 같은 관리 작업이 로컬 관리자 계정으로만 실패하다.
  • 도메인 계정(도메인 관리자 또는 적절히 위임된 계정)으로는 되는데, 로컬 관리자 계정으로는 실패하다.

3-1. 원격 UAC 제한의 동작을 이해하다

작업그룹 또는 로컬 계정 기반 원격 관리에서, 로컬 관리자 계정으로 네트워크 로그온이 들어오면 Windows는 보안을 위해 권한을 제한한 토큰(필터링 토큰)으로 세션을 구성할 수 있다. 그 결과 관리 공유, 서비스 제어 등 “관리자만 가능한 작업”이 원격에서 막히게 된다.

3-2. LocalAccountTokenFilterPolicy로 원격 필터링을 제어하다

원격 관리 목적상 로컬 관리자 계정으로 관리 공유 접근이 반드시 필요하고, 조직 정책상 허용되는 경우에 한해 아래 설정을 적용한다. 설정 위치는 다음 경로이다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

값 이름과 의미는 다음과 같이 정리할 수 있다.

이름 데이터 의미 권장
REG_DWORD LocalAccountTokenFilterPolicy 0 원격에서 로컬 관리자 계정 토큰 필터링을 적용하다. 보안 우선 환경
REG_DWORD LocalAccountTokenFilterPolicy 1 원격에서 로컬 관리자 계정 토큰 필터링을 해제하다. 원격 관리 필요 환경(통제 필수)

승격 콘솔에서 다음 명령으로 설정할 수 있다.

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" ^ /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

적용 후에는 원격 접속을 다시 시도한다. 즉시 반영되지 않거나 인증 캐시가 영향을 주는 환경에서는 대상 PC 재부팅 또는 관련 세션 재연결이 필요할 수 있다.

주의 : LocalAccountTokenFilterPolicy를 1로 두면 원격에서 로컬 관리자 계정 권한이 강화되므로, 반드시 강력한 암호 정책, 계정 관리(LAPS 등), 방화벽 제한(관리망만 허용), 감사 로그 설정을 함께 적용해야 한다.

3-3. 대안이 더 안전한 경우를 우선 선택하다

가능하다면 다음 대안을 우선 고려하는 것이 안전하다.

  • 도메인 환경에서는 로컬 계정 대신 도메인 계정으로 원격 관리를 수행하고, 필요한 범위만 권한을 위임하다.
  • 관리 공유 대신 WinRM/PowerShell Remoting 등 표준 원격 관리 채널을 사용하고, 방화벽·인증·감사를 표준화하다.
  • 작업그룹 환경에서는 로컬 관리자 계정의 사용 범위를 관리망으로 제한하고, 원격 접근 포트를 최소화하다.

4. UAC 정책(로컬 보안 정책/GPO)로 “토큰 분리” 동작을 통제하다

조직 환경에서는 개별 PC에서 임의로 설정을 바꾸기보다, 로컬 보안 정책 또는 그룹 정책으로 일관되게 관리해야 한다. 특히 “관리자라고 뜨는데도 접근 거부”가 빈번하면, UAC 관련 보안 옵션이 표준과 다르게 구성되어 있을 가능성이 높다.

4-1. 현장에서 가장 자주 영향을 주는 항목을 정리하다

정책 항목(보안 옵션) 주요 영향 현상 점검 포인트
User Account Control: Run all administrators in Admin Approval Mode 관리자 계정도 기본 토큰(필터링)으로 실행하다. 관리자 그룹인데도 일반 실행 시 접근 거부가 발생하다. 승격 실행이 필요한 설계인지 확인하다.
User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode 승격 프롬프트의 동작을 결정하다. 승격이 아예 뜨지 않거나, 너무 느슨/엄격하게 동작하다. 조직 보안 기준과 사용자 업무 흐름을 함께 고려하다.
User Account Control: Admin Approval Mode for the Built-in Administrator account 내장 관리자(RID 500) 계정에 UAC를 적용하다. 내장 관리자 사용 시 승격/원격 동작이 달라지다. 내장 관리자 계정 사용 정책을 명확히 하다.
로컬/도메인 정책의 사용자 권한 할당(Se* 권한) 서비스 로그온, 네트워크 액세스 등 권한 경로에 영향이 있다. 원격/서비스 작업만 특정 계정에서 실패하다. “이 컴퓨터에서 네트워크 액세스”/거부 정책을 점검하다.

4-2. 레지스트리에서 UAC 핵심 값을 점검하는 스크립트를 제공하다

아래 PowerShell은 UAC 관련 핵심 값을 빠르게 확인하는 용도이다. 반드시 승격 PowerShell에서 실행하는 것을 권장하다.

$path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" Get-ItemProperty -Path $path | Select-Object ` EnableLUA, ConsentPromptBehaviorAdmin, ConsentPromptBehaviorUser, ` PromptOnSecureDesktop, FilterAdministratorToken, LocalAccountTokenFilterPolicy

자주 보는 값의 의미를 실무적으로 정리하면 다음과 같다.

값 이름 대표 의미 실무 해석
EnableLUA UAC 사용 여부 0으로 끄면 토큰 분리 자체가 약화되며 보안 영향이 크다.
ConsentPromptBehaviorAdmin 관리자 승격 프롬프트 동작 값에 따라 “확인만”, “자격 증명 요구”, “무프롬프트 승격” 등이 달라진다.
FilterAdministratorToken 내장 관리자 계정의 UAC 보호(관리자 승인 모드 연관) 내장 관리자 원격/승격 동작에 영향을 줄 수 있어 정책 일관성이 중요하다.
LocalAccountTokenFilterPolicy 원격에서 로컬 관리자 토큰 필터링 제어 원격 관리 공유 접근 거부의 최우선 점검 지점이다.
주의 : 조직에 이미 그룹 정책이 적용되는 PC에서 로컬 레지스트리를 바꿔도 재부팅 또는 정책 갱신 시 원복될 수 있다. 반복되는 원복은 “로컬 문제”가 아니라 “정책 문제”이므로 GPO에서 원인을 찾아야 한다.

5. 현장 대응용 “원인별 해결 절차”를 한 장으로 정리하다

증상 가장 가능성 높은 원인 1차 조치 2차 조치
관리자 계정인데 Program Files/서비스/레지스트리에서 거부 비승격 실행(토큰 분리) 승격 콘솔/앱으로 재실행하다 앱 호환성(매니페스트) 및 정책 프롬프트 동작을 점검하다
승격 상태인데도 특정 폴더만 거부 NTFS ACL/소유권/상속 차단 icacls로 권한을 확인하다 takeown 및 최소 범위로 권한 복구하다
로컬은 OK, 원격 C$/ADMIN$만 접근 거부 Remote UAC 토큰 필터링 LocalAccountTokenFilterPolicy 점검하다 관리망 제한·강암호·감사와 함께 정책적으로 허용하다
특정 계정만 원격 관리 실패 네트워크 로그온 권한/거부 정책, 방화벽, 자격 증명 문제 로컬 보안 정책의 사용자 권한 할당을 점검하다 도메인 정책 충돌 및 보안 제품 차단 로그를 확인하다
승격 프롬프트가 아예 뜨지 않고 실패 프롬프트 동작 정책/보안 데스크톱 설정/제품 차단 ConsentPromptBehaviorAdmin 등 값을 점검하다 정책 표준화 후 테스트 OU에서 검증하다

6. 재발 방지 운영 기준을 세우다

6-1. “승격이 필요한 작업”과 “일반 작업”을 분리 운영하다

관리자는 평상시 일반 토큰으로 업무를 처리하고, 시스템 변경이 필요한 순간에만 승격하는 방식이 기본 원칙이다. 이를 문서화하면 “관리자 권한인데 왜 안 되냐” 같은 문의를 구조적으로 줄일 수 있다.

6-2. 원격 관리는 로컬 계정 의존도를 낮추다

원격 관리에서 로컬 관리자 계정에 의존하면 Remote UAC, 암호 정책, 계정 관리 부담이 동시에 증가한다. 가능하면 도메인 기반 권한 위임, 표준 원격 관리 채널, 관리망 분리로 구조를 바꾸는 것이 장기적으로 안정적이다.

6-3. 변경은 “정책 레벨”로 관리하고 테스트 후 배포하다

사용자 PC에서 임시로 레지스트리를 조정해 해결하는 방식은 재발 가능성이 높다. 동일 유형 이슈가 2회 이상 발생하면, 로컬 해결이 아니라 정책/GPO 기준으로 원인을 확정하고 표준 설정으로 배포해야 한다.

FAQ

관리자 계정인데 왜 탐색기에서 삭제가 안 되는 경우가 있나?

탐색기 자체가 기본적으로 비승격 토큰으로 실행되는 경우가 많기 때문이다. 탐색기에서 실행한 하위 프로세스도 비승격으로 떠서 보호된 위치에서 접근 거부가 발생할 수 있다. 승격 콘솔에서 삭제하거나, 소유권/ACL 문제라면 권한을 최소 범위로 복구해야 한다.

원격에서만 C$가 접근 거부로 뜨면 무엇부터 봐야 하나?

Remote UAC에 의한 로컬 관리자 토큰 필터링을 최우선으로 봐야 한다. LocalAccountTokenFilterPolicy 값이 0이면 필터링이 적용될 수 있다. 다만 이를 1로 바꾸는 것은 보안 영향이 크므로, 관리망 제한과 계정 통제(강암호, 계정 수명 관리, 감사)를 함께 설계해야 한다.

UAC를 꺼서 해결해도 되나?

일시적으로 증상이 사라질 수 있으나 보안 영향이 매우 크다. 토큰 분리로 막히는 작업은 “승격 실행”으로 해결하는 것이 원칙이며, 원격 문제는 정책적으로 통제된 범위에서만 예외를 허용하는 것이 바람직하다.

승격 창인지 사용자가 헷갈려 한다. 가장 쉬운 확인 방법은 무엇인가?

승격 CMD/PowerShell에서 whoami /groups | find "S-1-16-12288" 명령을 사용하면 빠르게 구분할 수 있다. 작업 관리자에서 “승격됨” 컬럼을 추가해 확인하는 방법도 교육 난이도가 낮다.

정책이 자꾸 원복된다. 왜 그런가?

도메인 또는 로컬 정책이 주기적으로 적용되기 때문이다. 로컬 레지스트리 수정으로 해결하려 하면 재발한다. 이 경우 GPO에서 해당 보안 옵션과 레지스트리 배포 항목을 찾아 표준 설정으로 조정해야 한다.

: