Computer >> 컴퓨터 >  >> 소프트웨어 >> 소프트웨어

Windows 이벤트 뷰어 DistributedCOM 오류 10016 완벽 해결 가이드

기술에 관심이 많은 사람이라면 Windows PC가 완벽하게 작동하지 않을 때 참을 수 없죠. 내 컴퓨터조차 완벽하게 관리하지 못한다면 그게 무슨 기술 전문가인가 싶은 마음이 듭니다. 물론 모든 것을 완벽하게 만들려다 보면, 사실 시스템에 큰 문제를 일으키지 않는 사소한 오류들을 잡느라 많은 시간을 쓰게 되기도 합니다.

하지만 그 과정 자체가 재미있고, 배우는 것도 많습니다. 이번 글에서는 이벤트 뷰어(Event Viewer)에 나타나는 DistributedCOM 관련 오류를 해결하는 방법을 다뤄보겠습니다. 제 시스템 로그를 확인해 보니 다른 오류는 없었고, 이벤트 ID 10016 오류만 매일 몇 번씩 기록되고 있었습니다. 오류 메시지는 항상 동일했습니다:

응용 프로그램별 권한 설정이 COM 서버 응용 프로그램에 대한 로컬 활성화 권한을 부여하지 않습니다

오류 메시지에는 CLSID, APPID, SID가 함께 표시되며, 구성 요소 서비스(Component Services)를 사용해 권한을 수정하라는 안내도 포함되어 있습니다.

여러 포럼의 방대한 글들을 살펴본 끝에, 저는 이 오류가 이벤트 뷰어에 더 이상 나타나지 않도록 해결할 수 있었습니다. 절차가 꽤 길기 때문에 시작하기 전에 한두 시간 정도 여유 시간을 확보해 두는 것이 좋습니다.

1단계 – 프로세스 확인

가장 먼저 할 일은 오류에 표시된 클래스 ID(CLASS ID)와 연결된 프로세스나 서비스가 무엇인지 확인하는 것입니다. 이벤트 설명에 나온 CLSID를 복사하세요. 제 경우에는 {D63B10C5로 시작했습니다. 중괄호까지 모두 복사해야 합니다.

이제 시작 메뉴를 클릭하고 regedit를 입력해 레지스트리 편집기를 엽니다. 레지스트리 편집기가 열리면 편집(Edit)찾기(Find)를 클릭하고, 검색 상자에 CLSID를 붙여넣은 후 Enter 키를 누릅니다.

잠시 후 HK_CLASSES_ROOT\CLSID 키 아래에서 결과를 찾을 수 있습니다. 오른쪽 창에 두 개의 값이 표시되며, 기본값(Default)에는 서비스 이름이 나타납니다. 제 경우, 그리고 아마 여러분의 경우에도 RuntimeBroker일 것입니다.

AppID도 오류 메시지에 표시된 것과 일치하는지 확인하세요. 다음으로는 구성 요소 서비스에서 이 서비스의 권한을 변경할 수 있도록 스크립트를 실행해야 합니다.

2단계 – PowerShell 스크립트 실행

이 문제를 해결하려면 RuntimeBroker의 구성 요소 서비스 권한을 일부 수정해야 하는데, 그 전에 해당 변경 작업을 허용하는 스크립트를 먼저 실행해야 합니다.

PowerShell을 관리자 권한으로 실행하려면 시작을 클릭하고 powershell을 입력한 뒤, 검색 결과를 마우스 오른쪽 버튼으로 클릭하여 관리자 권한으로 실행을 선택합니다.

이제 스크립트가 담긴 텍스트 파일을 다운로드해 코드 전체를 복사한 후 PowerShell 창에 붙여넣습니다(PowerShell 창에서 마우스 오른쪽 버튼을 클릭하면 클립보드의 내용이 바로 붙여넣어집니다). 그런 다음 Enter 키를 누르면 Done이라는 메시지가 출력됩니다.

3단계 – 구성 요소 서비스 열기

구성 요소 서비스(Component Services)는 2단계에서 PowerShell을 실행한 것과 같은 방법으로 열 수 있습니다. 시작을 클릭하고 '구성 요소 서비스'를 입력하면 됩니다. 이 프로그램은 관리자 권한으로 실행할 필요가 없습니다. 실행 후 다음 위치로 이동합니다:

구성 요소 서비스 - 컴퓨터 - 내 컴퓨터 - DCOM 구성

아래로 스크롤하여 Runtime Broker를 찾습니다. 제 경우에는 두 개가 있었습니다! 그렇다면 오류에 표시된 것이 어떤 것인지 어떻게 알 수 있을까요?

각 항목을 마우스 오른쪽 버튼으로 클릭하고 속성(Properties)을 선택합니다. 일반(General) 탭에서 응용 프로그램 ID(Application ID)를 확인할 수 있는데, 이것이 오류 메시지의 AppID와 일치해야 합니다. 이벤트 뷰어에서 ID 10016 오류가 여러 개의 CLSID와 함께 발생한다면, 두 RuntimeBroker 모두 수정해야 할 수도 있습니다. 제 경우에는 하나만 수정하면 되었습니다.

4단계 – 권한 수정

마지막으로 권한을 수정해야 합니다. RuntimeBroker 속성 창에서 보안(Security) 탭을 클릭합니다.

시작 및 활성화 권한(Launch and Activation Permissions) 아래의 편집(Edit) 버튼을 클릭할 수 있어야 합니다. 회색으로 비활성화되어 있다면 PowerShell 스크립트가 제대로 실행되지 않은 것이니 2단계부터 다시 진행하세요. 편집을 클릭하면 인식되지 않는 권한에 대한 경고 팝업이 나타날 수 있습니다.

여기서는 절대 제거(Remove)를 클릭하지 마세요. 취소(Cancel) 버튼을 클릭하면 됩니다. 그러면 기본 계정 목록이 표시되며, 알 수 없는 계정(Account Unknown) 항목도 함께 보일 수 있습니다.

알 수 없는 계정은 그대로 두어야 합니다. 절대 삭제하지 마세요. 이 시점에서 ALL APPLICATION PACKAGESSELF만 남아 있어야 합니다. 이제 두 개의 계정을 추가해야 합니다. 추가(Add)를 클릭하고 System을 입력한 후 이름 확인(Check Names)을 클릭합니다. 확인(OK)을 누르면 해당 계정이 목록에 추가됩니다.

추가를 다시 클릭하고 이번에는 Local Service를 입력한 후 동일한 단계를 진행합니다.

두 계정이 모두 추가되면 각각 하나씩 클릭하고 허용(Allow) 아래의 로컬 시작(Local Launch)로컬 활성화(Local Activation) 확인란을 선택합니다. 이것으로 끝입니다! 이제 컴퓨터를 다시 시작하면 이벤트 뷰어 로그에 해당 오류가 더 이상 나타나지 않을 것입니다.