블루스크린

DLL·런타임 오류

드라이버 문제

게임 오류

윈도우 오류

프로그램 오류

광고자리 · 글 위

0xc0000022 오류 원인 4가지와 증상별 해결 순서 (액세스 거부, 윈도우 10·11)

이 글을 3줄로 요약하면

· 0xc0000022는 윈도우 내부 코드로 STATUS_ACCESS_DENIED, 즉 "요청한 접근 권한이 없다"는 뜻이다. 프로그램이 망가졌다는 신호가 아니다.

· 그래서 재설치를 반복해도 그대로인 경우가 많다. 권한을 막고 있는 주체가 누구인지에 따라 원인이 네 갈래로 갈린다.

· 한 프로그램만 안 되는지, 한 계정에서만 안 되는지, 전부 안 되는지. 이 세 가지 중 어디에 해당하는지만 알면 볼 섹션이 하나로 좁혀진다.

0xc0000022는 정확히 무슨 뜻인가

이 코드는 고장 신호가 아니라 거절 신호다. 그래서 고치는 방향이 완전히 다르다.

0xc0000022는 윈도우 커널이 쓰는 NTSTATUS 값 중 하나로, 공식 명칭은 STATUS_ACCESS_DENIED다. 마이크로소프트 문서는 이 값을 "프로세스가 어떤 개체에 대한 접근을 요청했지만 그 접근 권한을 부여받지 못했다"로 정의한다.

즉 "파일이 없다"도 아니고 "파일이 깨졌다"도 아니다. 파일은 그 자리에 있는데, 윈도우가 그 프로세스에게 읽기·실행을 허락하지 않은 상태다. 재설치를 몇 번 해도 같은 자리에 다시 깔리고 같은 권한이 다시 적용되기 때문에 결과가 달라지지 않는다.

거절하는 주체는 하나가 아니다. 파일 자체에 붙은 NTFS 권한일 수도 있고, 백신이나 그룹 정책일 수도 있으며, 프로그램이 참조하는 시스템 DLL 쪽에서 거부가 날 수도 있다. 아래 판별표는 그 주체를 좁히기 위한 것이다.

증상으로 원인을 좁히는 판별표

"어디까지 안 되는가"가 원인을 거의 결정한다. 범위부터 확인한다.

증상 유력한 원인 먼저 볼 항목
프로그램 하나만 안 되고, 우클릭 "관리자 권한으로 실행"으로는 켜진다 실행 파일·폴더 권한 부족 원인 A → 호환성 탭·icacls
외장 하드나 USB에서 옮겨 온 폴더의 프로그램만 안 된다 복사 과정에서 소유권·권한 유실 원인 A → takeown
백신을 새로 깔거나 업데이트한 뒤부터 뜬다 보안 프로그램 오탐지·차단 원인 B → 보호 기록 확인
회사·학교 PC이고 관리자 계정인데도 거부된다 그룹 정책·보안 솔루션 제한 원인 B → 정책 확인
여러 프로그램이 한꺼번에 같은 코드로 실패한다 시스템 파일 손상 원인 C → sfc·DISM
한 계정에서만 뜨고 다른 계정에서는 정상 실행된다 사용자 프로필·레지스트리 권한 손상 원인 D → 새 계정 검증

가장 먼저 할 확인은 3분이면 끝난다

실행 파일을 우클릭해 "관리자 권한으로 실행"을 한 번 눌러 본다. 여기서 켜지면 원인 A가 거의 확정이다. 그래도 같은 코드가 뜨면 권한 부족이 아니라 다른 주체가 막고 있는 것이므로 원인 B 이후를 본다.

원인 A실행 파일과 설치 폴더의 권한 손상

복사·이동·복원 과정에서 권한 목록이 끊기면, 파일은 남아도 실행은 거부된다.

NTFS 파일 시스템은 파일마다 누가 무엇을 할 수 있는지를 목록으로 들고 있다. 외장 하드에서 옮겨 오거나, 백업에서 복원하거나, 다른 계정이 만든 폴더를 이어받으면 이 목록이 현재 계정과 맞지 않게 남는 경우가 있다.

1항상 관리자 권한으로 실행되도록 고정한다

실행 파일 우클릭 → "속성" → 상단 "호환성" 탭에서 "관리자 권한으로 이 프로그램 실행"에 체크하고 적용한다. 매번 우클릭하지 않아도 되고, 바로가기로 실행할 때도 적용된다.

2폴더 소유권을 현재 계정으로 가져온다

takeown /f "C:\Program Files\프로그램폴더" /r /d y

시작 버튼 우클릭 → "터미널(관리자)"에서 실행한다. 경로는 실제 설치 폴더로 바꾼다. /r은 하위 폴더까지, /d y는 확인 질문에 자동으로 예를 답한다는 뜻이다.

3현재 계정에 전체 권한을 다시 부여한다

icacls "C:\Program Files\프로그램폴더" /grant %username%:F /t

소유권을 가져온 다음에 실행해야 의미가 있다. 순서를 바꾸면 icacls 단계에서 다시 거부된다. 마지막 줄에 "0개 파일을 처리하지 못했습니다"가 나오면 성공이다.

C 드라이브 전체나 Windows 폴더에 걸지 않는다

범위를 넓게 잡으면 시스템 폴더의 권한 설계가 통째로 뭉개져 윈도우가 부팅되지 않거나 보안 구멍이 생긴다. 반드시 문제가 된 프로그램 폴더 하나만 지정한다.

같이 나오는 오류입니다 윈도우 업데이트 오류 0x80070005 액세스 거부, 저는 이 순서로 해결했습니다 (2026년 최신) 같은 액세스 거부가 업데이트 쪽에서 날 때의 권한 확인 절차를 다룬다 · 눌러서 확인하기 →

이 방법이 안 통하는 경우

takeown과 icacls가 정상으로 끝났는데도 같은 코드가 나온다면, 파일 권한은 이미 충분한 것이다. 프로세스 생성 자체를 다른 소프트웨어가 가로막고 있을 가능성이 크므로 원인 B로 넘어간다. 명령 실행 도중 "액세스가 거부되었습니다"가 나온다면 터미널이 관리자 권한이 아니거나 그룹 정책이 걸린 것이므로 역시 원인 B다.

원인 B백신과 보안 정책의 실행 차단

차단은 대개 조용히 일어난다. 경고창 없이 실행만 막히고 코드만 남는다.

백신이 실행 파일을 위협으로 판단하면 삭제하지 않고 실행만 막는 경우가 있다. 이때 화면에는 백신 알림이 아니라 윈도우의 액세스 거부 코드만 뜨기 때문에, 원인을 짐작하기 어렵다. 어제까지 잘 되던 프로그램이 갑자기 막혔다면 이쪽을 먼저 본다.

1보호 기록에서 차단 여부를 확인한다

Win + I → "개인 정보 및 보안" → "Windows 보안" → "Windows 보안 열기" → "바이러스 및 위협 방지" → "보호 기록"을 연다. 문제 프로그램의 파일 이름이 목록에 있으면 원인이 확정된다. 추측하지 않고 기록으로 확인하는 단계다.

2기록에 있으면 복원하고 제외 목록에 넣는다

해당 항목을 눌러 "작업" → "허용"으로 복원한다. 그다음 "바이러스 및 위협 방지 설정" → "설정 관리" → "제외" → "제외 추가 또는 제거"에서 프로그램 폴더를 등록해 다시 잡히지 않게 한다.

3서드파티 백신이면 실시간 감시를 잠깐만 꺼서 판별한다

V3, 알약 등 별도 백신을 쓴다면 실시간 감시를 5분만 끄고 실행해 본다. 이때 켜지면 그 백신의 예외 설정에 프로그램 경로를 등록한다. 실패하면 감시를 즉시 다시 켜고 다음 원인으로 넘어간다.

복원 전에 출처를 한 번 더 확인한다

오탐지가 많은 것은 사실이지만, 진짜 악성 파일을 허용 처리하면 되돌리기 어렵다. 제작사 공식 사이트에서 받은 파일인지, 파일 크기와 디지털 서명이 정상인지 확인한 뒤 복원한다.

이 방법이 안 통하는 경우

보호 기록이 비어 있고 백신을 꺼도 그대로라면 보안 프로그램은 원인이 아니다. 특히 여러 프로그램이 동시에 실패하는 상황이라면 개별 파일 문제가 아니므로 원인 C로 넘어간다.

원인 C핵심 시스템 파일 손상

모든 프로그램이 거쳐 가는 파일이 깨지면, 특정 프로그램이 아니라 전부가 같은 코드로 막힌다.

ntdll.dll이나 kernel32.dll처럼 프로세스가 시작될 때 반드시 불러오는 파일이 손상되면, 로딩 단계에서 접근이 거부되고 그 결과가 0xc0000022로 올라온다. 이 경우 특정 프로그램만 손봐서는 해결되지 않는다.

1시스템 파일을 검사한다

sfc /scannow

관리자 터미널에서 실행하고 100%까지 기다린다. 창을 닫으면 처음부터 다시 해야 한다. "손상된 파일을 찾아 복구했습니다"가 나오면 재부팅 후 실행해 본다.

2복구하지 못했다고 나오면 이미지를 먼저 고친다

DISM /Online /Cleanup-Image /RestoreHealth

sfc가 "무결성 위반을 찾았지만 일부를 복구하지 못했습니다"로 끝났다면, 복구에 쓰는 원본 자체가 손상된 상태다. 이 명령으로 원본을 내려받아 고친 뒤 sfc를 한 번 더 돌린다. 인터넷 연결이 필요하다.

3밀린 윈도우 업데이트를 설치한다

Win + I → "Windows 업데이트" → "업데이트 확인"으로 남은 업데이트를 전부 설치하고 재부팅한다. 손상된 구성 요소가 최신 패치로 교체되면서 함께 정리되는 경우가 있다.

이 방법이 안 통하는 경우

sfc와 DISM이 모두 "위반을 찾지 못했습니다"로 끝났다면 시스템 파일은 정상이다. 그런데도 특정 계정에서만 실패한다면 파일이 아니라 그 계정의 설정이 문제이므로 원인 D로 넘어간다.

원인 D사용자 프로필과 레지스트리 권한 손상

같은 PC, 같은 파일인데 계정에 따라 결과가 다르다면 남은 변수는 계정 하나뿐이다.

프로그램은 실행될 때 사용자별 레지스트리(HKEY_CURRENT_USER)와 사용자 폴더의 설정을 함께 읽는다. 프로필이 손상되거나 그 아래 키의 권한이 끊기면, 실행 파일에는 아무 문제가 없어도 접근 거부가 난다.

1새 로컬 계정으로 원인을 확정한다

Win + I → "계정" → "기타 사용자" → "계정 추가"로 로컬 계정을 하나 만든다. 그 계정으로 로그인해 같은 프로그램을 실행한다. 여기서 정상 실행되면 프로필 손상이 확정이다. 이 계정은 판별용이므로 나중에 지워도 된다.

2해당 프로그램의 사용자 레지스트리 키를 확인한다

HKEY_CURRENT_USER\Software\[제작사 이름]

Win + R → regedit로 열고 주소창에 경로를 붙여넣는다. 해당 키를 우클릭 → "사용 권한"에서 현재 계정에 모든 권한이 있는지 본다. 값을 지우기 전에 반드시 키를 우클릭 → "내보내기"로 백업한다.

3고칠 수 없으면 새 계정으로 옮겨 쓴다

프로필 손상은 부분 복구가 어려운 경우가 많다. 1단계에서 만든 계정을 관리자로 올리고, 문서·바탕화면·다운로드 폴더의 내용을 옮겨 그 계정을 주 계정으로 쓰는 편이 확실하다. 브라우저 즐겨찾기와 프로그램 설정은 따로 내보내 옮긴다.

이 방법이 안 통하는 경우

새로 만든 계정에서도 똑같이 실패한다면 계정 문제가 아니다. 네 갈래를 모두 지나친 것이므로, 추측을 멈추고 아래 섹션에서 무엇이 거부됐는지 로그로 직접 확인한다.

무엇이 거부됐는지 정확히 찾아내는 법

화면에는 코드만 뜨지만, 로그에는 어느 모듈에서 멈췄는지가 남는다.

0xc0000022는 "거부됐다"만 알려줄 뿐 무엇이 거부됐는지는 말해 주지 않는다. 그 빈칸을 채우는 것이 이벤트 로그다. 여기서 오류 모듈 이름 하나만 확보해도 원인 A~D 중 어디로 갈지가 정해진다.

1실패 시각의 응용 프로그램 로그를 연다

eventvwr.msc

프로그램을 한 번 더 실행해 실패시킨 뒤 Win + R로 연다. "Windows 로그" → "응용 프로그램"에서 그 시각의 빨간 오류를 클릭하고 하단 "일반" 탭의 "오류 모듈 이름"을 읽는다.

오류 모듈이 프로그램 자체 파일이면 원인 A, 백신 관련 모듈이면 원인 B, ntdll.dll·kernel32.dll 같은 시스템 파일이면 원인 C 쪽이다. 로그에 아무 기록도 남지 않는다면 프로세스가 만들어지기도 전에 차단된 것이므로 원인 B의 정책 차단을 다시 본다.

2현재 권한 상태를 명령으로 확인한다

icacls "C:\Program Files\프로그램폴더"

옵션 없이 실행하면 현재 설정된 권한 목록만 출력된다. 자기 계정 이름이 목록에 없거나 (F)·(RX) 표시가 보이지 않으면 실행 권한이 실제로 없는 상태다. 원인 A로 돌아간다.

3언제부터 막혔는지 시점을 좁힌다

Win + I → "Windows 업데이트" → "업데이트 기록"에서 최근 설치 날짜를 본다. 그 날짜부터 오류가 시작됐다면 업데이트나 그때 함께 설치된 보안 소프트웨어가 계기다. 문제가 없던 시점의 복원 지점이 남아 있다면 되돌리는 것도 선택지다.

자주 묻는 질문

이 코드에서 반복해서 나오는 질문 네 가지를 정리했다.

Q.관리자 계정인데도 왜 액세스 거부가 뜨나요?

A.관리자 계정이라도 일반 실행에는 축소된 권한이 적용됩니다(사용자 계정 컨트롤). 또 폴더에 개별 권한이 따로 걸려 있으면 관리자 그룹이라도 거부될 수 있습니다. 실제 권한은 계정 종류가 아니라 icacls 출력으로 확인하는 것이 정확합니다.

Q.재설치해도 똑같은 오류가 뜨는 이유는 무엇인가요?

A.같은 경로에 다시 설치되면 그 폴더에 남아 있던 권한 설정이 그대로 상속되기 때문입니다. 제거 후 설치 폴더와 사용자 폴더의 남은 데이터까지 지우고 재부팅한 다음에 설치해야 권한이 새로 만들어집니다.

Q.이 오류가 바이러스 때문일 수도 있나요?

A.대부분은 권한이나 시스템 파일 문제입니다. 다만 여러 프로그램이 갑자기 한꺼번에 막히기 시작했다면 정밀 검사를 함께 돌려 보는 편이 안전합니다. 이때 백신이 차단한 흔적은 원인 B의 보호 기록에서 확인할 수 있습니다.

Q.게임에서 이 코드가 떠도 같은 방법이 통하나요?

A.원인이 같으므로 순서도 같습니다. 다만 게임은 안티치트 모듈이 함께 실행되면서 백신과 충돌하는 경우가 많아, 원인 B의 예외 등록을 먼저 확인하면 시간을 아낄 수 있습니다.

함께 보면 좋은 글

같은 프로그램 실행 계열에서 자주 이어지는 오류들이다.

0xc0000005 오류 원인 4가지와 증상별 해결 순서 (액세스 위반, 윈도우 10·11) 이름이 비슷하지만 거부가 아니라 잘못된 메모리 접근이라 확인할 항목이 다르다 · 눌러서 확인하기 → 0xc0000906 오류 해결 – 프로그램이 백신에 차단되어 실행 안 될 때 원인 B에 해당하는 차단 상황의 예외 등록 절차를 더 자세히 다룬다 · 눌러서 확인하기 → 사용자 프로필 서비스 로그온 실패 오류 해결하기 (임시 프로필 로그인 완전 해결) 원인 D의 프로필 손상이 로그인 단계에서 드러날 때 확인할 항목을 정리했다 · 눌러서 확인하기 →
확인 환경 · 윈도우 11 24H2 / 윈도우 10 22H2 기준, 2026년 8월 확인
참고 문서 · Microsoft Learn — NTSTATUS Values (0xC0000022 STATUS_ACCESS_DENIED)
참고 문서 · Microsoft Learn — icacls 명령 참조
참고 문서 · Microsoft Learn — takeown 명령 참조

광고자리 · 글 아래