Windows 10 DCOM 오류 10016: 로컬 활성화 권한 오류란?
이벤트 뷰어(Event Viewer)에 "애플리케이션별 권한 설정이 COM 서버 애플리케이션에 대한 로컬 활성화 권한을 부여하지 않습니다(The application-specific permission settings do not grant Local Activation permission for the COM Server application)"라는 오류 메시지가 표시된다면 이 글이 도움이 될 것입니다. 이 오류는 DCOM 이벤트 ID 10016과 함께 나타나며, 주로 운영체제를 업그레이드한 직후에 발생합니다. 일반적인 Windows 10 사용 환경에는 큰 영향을 주지 않지만, 원인과 해결 방법이 궁금한 분들을 위해 자세히 정리했습니다.
이러한 10016 이벤트는 Microsoft 구성 요소가 필요한 권한 없이 DCOM 구성 요소에 접근하려고 할 때 기록됩니다. 시스템 기능에 악영향을 주지 않으며 설계상 의도된 동작이기 때문에 대부분의 경우 안전하게 무시해도 됩니다.
전체 오류 메시지는 다음과 같습니다.
애플리케이션별 권한 설정이 CLSID {C2F03A33-21F5-47FA-B4BB-156362A2F239}, APPID {316CDED5-E4AE-4B15-9113-7055D84DCC97}인 COM 서버 애플리케이션에 대해 NT AUTHORITY\LOCAL SERVICE SID(S-1-5-19) 사용자에게 LocalHost(LRPC 사용) 주소에서 애플리케이션 컨테이너 Unavailable SID(Unavailable)로 실행되는 로컬 활성화 권한을 부여하지 않습니다. 이 보안 권한은 구성 요소 서비스 관리 도구를 사용하여 수정할 수 있습니다.
참고로 CLSID와 APPID는 컴퓨터마다 다를 수 있으며, 각각 해당 컴퓨터의 구성 요소 서비스를 나타냅니다. 해결 방법은 오류 메시지에 이미 언급되어 있듯이 Windows 10의 관리 도구에서 보안 권한을 수정하는 것입니다.
해결 방법 개요
Windows 10에서 "애플리케이션별 권한 설정이 로컬 활성화를 허용하지 않습니다" 오류를 수정하려면 다음 세 가지 단계를 따르면 됩니다.
- CLSID와 APPID 식별 및 확인
- 레지스트리 편집기에서 CLSID 키 소유권 변경
- 구성 요소 서비스에서 보안 권한 수정
아래에서 각 단계를 자세히 살펴보겠습니다.
1단계: CLSID 및 APPID 확인
먼저 문제를 일으키는 CLSID와 APPID를 확인해야 합니다. 컴퓨터마다 값이 다를 수 있으므로 반드시 본인의 오류 메시지에 표시된 값을 확인하는 것이 중요합니다. 그렇지 않으면 이벤트 뷰어의 오류 메시지를 제거할 수 없습니다. 위 예시에서는 CLSID가 {C2F03A33-21F5-47FA-B4BB-156362A2F239}이고 APPID가 {316CDED5-E4AE-4B15-9113-7055D84DCC97}입니다. SID라는 항목도 있지만 이 단계에서는 필요하지 않습니다.
2단계: 레지스트리 편집기에서 CLSID 키 소유권 변경
다음으로 문제를 일으키는 구성 요소를 찾아야 합니다. Win+R 키를 누르고 regedit를 입력한 후 Enter 키를 눌러 레지스트리 편집기를 엽니다. 그런 다음 아래 경로로 이동합니다.
HKEY_Classes_Root\CLSID\<본인의 CLSID 입력>
본인의 CLSID 부분은 오류 메시지에서 확인한 실제 CLSID로 교체해야 합니다. 해당 키로 이동하면 오른쪽 창에서 APPID를 확인할 수 있습니다. 이 APPID가 오류 메시지에 표시된 APPID와 동일한지 반드시 확인하세요. 확인 후 왼쪽 창에서 CLSID 키를 마우스 오른쪽 버튼으로 클릭하고 사용 권한(Permissions) 옵션을 선택합니다.
그다음 고급(Advanced) 버튼을 클릭합니다.
기본적으로 이 키는 TrustedInstaller가 소유하고 있지만, 소유자를 Administrator로 변경해야 합니다. 고급 보안 설정(Advanced Security Settings) 창에서 변경(Change) 버튼을 클릭하고 "Administrator"를 입력한 뒤 이름 확인(Check Names) 버튼, 확인(OK) 버튼을 차례로 누릅니다.
또한 하위 컨테이너 및 개체의 소유자 바꾸기(Replace owner on subcontainers and objects) 체크박스도 함께 선택해야 합니다.
완료한 후 그룹 또는 사용자 이름(Group or user names) 목록에서 Administrators를 선택하고 허용/모든 권한(Allow/Full Control) 체크박스에 체크한 뒤 설정을 저장합니다.
또한 기본값(Default) – 데이터(Data) 이름도 확인해야 합니다. 이 예시에서 기본 데이터 이름은 Immersive Shell입니다. 오류 메시지의 CLSID와 APPID가 다르면 이 이름도 달라집니다.
이제 APPID의 소유권도 가져와야 합니다. 레지스트리 편집기에서 아래 경로로 이동합니다.
HKEY_Local_Machine\Software\Classes\AppID\본인의 APPID
위와 동일한 방법으로 해당 레지스트리 키의 소유권을 변경하면 됩니다.
레지스트리 키 소유권 변경에 어려움을 겪는다면 클릭 한 번으로 작업할 수 있는 무료 도구 RegOwnit을 이용해 보는 것도 좋습니다.
3단계: 구성 요소 서비스에서 보안 권한 수정
위 단계를 모두 마쳤다면 구성 요소 서비스(Component Services)를 엽니다. 작업 표시줄 검색 상자에서 검색한 후 해당 결과를 클릭하면 됩니다. 구성 요소 서비스를 연 후 아래 경로로 이동합니다.
구성 요소 서비스 > 컴퓨터 > 내 컴퓨터 > DCOM 구성 > Immersive Shell
이 예시에서는 CLSID가 Immersive Shell 구성 요소 서비스와 일치합니다. 레지스트리 편집기에서 확인한 기본값 – 데이터 이름과 일치하는 항목을 찾으세요. 찾았다면 해당 구성 요소 서비스를 마우스 오른쪽 버튼으로 클릭하고 속성(Properties)을 선택합니다. 여기서 응용 프로그램 ID(Application ID), 즉 APPID를 다시 한번 확인할 수 있습니다.
다음으로 보안(Security) 탭으로 이동합니다. 여기에는 시작 및 활성화 권한(Launch and Activation Permissions)을 포함해 세 개의 섹션이 있습니다. 해당하는 편집(Edit) 버튼을 클릭합니다.
경고 메시지가 나타나면 취소(Cancel) 버튼을 클릭하고 계속 진행합니다. 위와 동일한 방법으로 다음 두 개의 계정을 추가합니다.
- SYSTEM
- LOCAL SERVICE
추가한 후 하나씩 선택하면서 두 계정 모두에 로컬 시작(Local Launch) 및 로컬 활성화(Local Activation) 권한을 부여합니다.
변경 사항을 저장하면 이벤트 뷰어에서 동일한 오류가 다시 나타나지 않습니다.
RuntimeBroker든 Immersive Shell이든 다른 프로세스든, 해결 방법은 모두 동일하게 적용됩니다.