Tiplu's Mind

이벤트 ID 10016, DistributedCOM 에러를 마소 지침에 따라 해결한 과정

반응형

최근에 컴퓨터 사용 시 화면 꺼짐 현상이 자주 일어나서 평생 보지도 않던 이벤트 뷰어를 자주 보게 되었습니다. 그래서 처음엔여러 이벤트 경고들 중 원본이 Display에 해당하는 이벤트 ID 4101 관련 해결 방법만 찾아서 적용해봤는데, 늘 그 때마다 이벤트 10016, 원본 DistributedCOM에 해당하는 이벤트가 함께 발생하더군요.(본문에 설명할 예정) 4101도 이미 앞서 두 가지 방법에 대해 조치를 취한적이 있는 터라 겸사겸사 DistributedCOM까지는 건드려봐야지, 안 그러면 해결 방법에 갈피를 전혀 못 잡겠다 싶어서 이 부분까지 마이크로소프트 포럼의 답변에 따라 설정했습니다. 도중에 틀린 부분이 있어 아예 새로 쓰자는 생각에 따로 정리해볼겁니다.

 

 

 

이벤트 ID 10016(원본 : DistributedCOM) - 응용 프로그램 권한 문제 해결 방법

 

 

이 문제에 대해 마이크로소프트에서 이미지와 텍스트본으로 정리한 내용 두 가지가 보이는데, 둘 다 마지막 부분은 사용자에게 오해를 줄 만한 언급이 있어서 그 부분을 각자의 컴퓨터에 맞춰 수정하여 작성합니다. 아, 그리고 저는 해결 방법을 따라했을 뿐, 이런 부분들에 자세히 아는 것들은 없으므로 미숙한 부분이 있더라도 과정을 따라한다는 것에 집중해주세요.

 

우선 이벤트 ID 4101이니, 10016이니 하는 것들은 전부 이벤트 뷰어에서 확인할 수 있습니다. 키보드에서 Windows + R키를 눌러 위처럼 실행창을 불러온 뒤, eventvwr.msc를 입력하고 확인을 눌러보세요.

 

그럼 이벤트 뷰어가 나타납니다.

 

뷰어에서 Windows 로그 - 시스템으로 들어와보면 시간별로 윈도우 시스템에 어떤 이벤트가 나타났는지에 대해 간략히 표로 정리되어 있는데, 제 경우는 모니터가 일시적으로 멈추고 꺼졌다 켜지는 현상이 있을 때만 이 두 경고 메시지(Display, DistributedCOM)이 나타났으므로 모니터 문제가 발생한 시점으로 돌려보면 이렇게 문제가 된 메시지를 발견할 수 있었습니다.

 

여기서 특히 DistributedCOM의 경우, 눌렀을 때

응용 프로그램별 권한 설정에서 CLSID가 
{2593F8B9-4EAF-457C-B68A-50F6B8EA6B54}
이고 APPID가 
{15C20B67-12E7-4BB6-92BB-7AFF07997402}
인 COM 서버 응용 프로그램에 대한 로컬 활성화 사용 권한을 응용 프로그램 컨테이너 사용할 수 없음 SID(사용할 수 없음)에서 실행 중인 주소 LocalHost(LRPC 사용)의 사용자에게 부여하지 않았습니다. 구성 요소 서비스 관리 도구를 사용하여 이 보안 권한을 수정할 수 있습니다.

이런 식으로 에러가 나타나는데, 여기서

  • CLSID : 2593F8B9-4EAF-457C-B68A-50F6B8EA6B54
  • APPID : 15C20B67-12E7-4BB6-92BB-7AFF07997402

위 두 값이 중요합니다. 이 값은 사용자마다 다르며, 그렇다는 것은 제가 이 글에 포함시킨 위 두 ID값 또한 이 문제에 시달리는 분들과 다르다는 이야기입니다. 따라서 현재 이벤트 뷰어에 보이는 이 두 값을 잊지 않기 위해 뷰어를 끄지 말던지, 또는 따로 잘 복사 - 붙여넣기 해서 보관해두던지 하는 게 좋겠습니다.

 

이어서 앞서 불러왔던 실행 창을 Windows + R 단축키를 눌러 다시 불러주고, 이번엔 레지스트리 편집기 창을 열기 위해 regedit을 입력합니다.

 

앞서 두 ID값을 기억해두라고 했었죠. 먼저 CLSID 값부터 찾아봅시다. 위 스크린 샷처럼 'HKEY_CLASSES_ROOT → CLSID 앞서 기억했던 아이디' 순으로 찾아줍니다. 앞서 제가 찾았던, 여러분 컴퓨터의 값이 아닌 제 값은 2593F8B9-4EAF-457C-B68A-50F6B8EA6B54이었기에 그 값을 그대로 찾았습니다. 이후, 우클릭을 통해 사용 권한을 눌러봅시다.

 

여기서 위에 어떤 게 선택되었는지와는 관계 없이, 오른쪽 아래에 있는 고급을 선택해주세요.

 

이어서 고급 보안 설정 창이 하나 나타납니다. 여기서 위쪽을 보면 소유자 이름이 각기 다를 수 있을텐데, 변경을 눌러 소유자를 바꾸기 위한 과정을 진행합니다.

 

변경은 크게 어렵지 않습니다. 새롭게 뜬 창에서 아래를 보면 '선택할 개체 이름을 입력하십시오.'라는 문구가 한 줄 나와있는데, 여기 칸에 administrators를 입력 - 이름 확인 - 확인 순서대로 눌러주면 바로 변경됩니다.

 

잘 보면 소유자 부분이 앞서와는 다르게 Administrators로 바뀐 것을 확인하였다면, 오른쪽 아래에 있는 적용 - 확인을 순서대로 눌러 설정 변경 값을 저장합니다.

 

그리고 '그룹 또는 사용자 이름' 칸에서 방금 추가했던 Administrators를 선택, 이어서 허용할 수 있는 모든 권한에 체크한 뒤 적용 - 확인을 눌러 설정값을 마저 저장합니다.

 

이어서 '그룹 또는 사용자 이름'에서 SYSTEM을 선택, 이어서 위와 똑같이 설정한 뒤 적용 - 확인을 눌러 설정값을 이어서 저장해줍니다.

 

앞서 CLSID와 APPID 두 값은 따로 메모해두던가, 기억해두라고 했었죠. 방금까지 CLSID값에 관한 설정을 마쳤으므로, 이제 APPID 값을 바꿔봅시다. 레지스트리 편집기에서 앞서와 마찬가지로 'HKEY_CLASSES_ROOT → AppID → 앞서 기억했던 아이디' 순으로 찾아줍니다. 그리고 앞서와 마찬가지로 우클릭 - 사용 권한을 순서대로 눌러줍니다. 이 부분은 앞서 CLSID에서 수정했던 부분과 설명이 같으므로 '이곳'을 참고하여 다시 따라와주세요.

 

레지스트리 편집기에서 CLSID와 APPID에 해당하는 값들을 전부 제대로 수정했다면, 다시 Windows + R을 눌러 실행창을 띄운 뒤, 이번엔 구성 요소 서비스 창을 열기 위해 dcomcnfg를 입력합니다.

 

그럼 구성 요소 서비스 창이 열리게 됩니다.

 

여기서 왼쪽 메뉴의 '구성 요소 서비스 - 컴퓨터 - 내 컴퓨터 - DCOM 구성'을 순서대로 선택하면 값이 굉장히 많이 나타나는데, 위쪽 보기 방식 중 네 번째 것을 눌러 스크린 샷처럼 응용 프로그램 값까지 다 보이게 맞춰주세요. 이후, 앞서 기억해뒀던 CLSID와 APPID값 중 APPID 값에 해당하는 응용 프로그램을 찾아줍니다.

  • CLSID : 2593F8B9-4EAF-457C-B68A-50F6B8EA6B54
  • APPID : 15C20B67-12E7-4BB6-92BB-7AFF07997402

참고로 제 두 값은 위 두 값이었는데, APPID가 15C20B67~로 시작하는 값이라 그게 PerAppRuntimeBroker인 것을 확인했습니다. 이 값이 나왔을 때부터 말하는 것이지만, 이 값은 개개인의 컴퓨터에 따라 다를 수 있으므로 제 값을 그대로 찾지 마세요. 본인들 컴퓨터에 문제가 발생했던 이벤트 10014의 CLSID와 APPID 값을 기준으로 찾아 들어가는겁니다. 명심하세요.

이후, 속성을 눌러주면 됩니다.

 

참고로 DCOM 구성으로 들어갈 때 경고창이 하나 뜰 수 있는데 '예'를 눌러주면 됩니다. 아니요를 누르면 아예 들어가질 못하더군요.

 

제대로된 값을 찾아 속성을 눌렀다면 속성의 보안 탭에 여러 편집 버튼이 스크린 샷처럼 모두 활성화가 되어 있는 것을 볼 수 있는데, 가장 위쪽에 있는 '시작 및 활성화 권한'의 편집 버튼을 눌러줘야 합니다.

 

여기서 역시 취소를 누르면 진입이 아예 되질 않더군요. 전 제거를 눌러 진입했습니다만, 이게 아무 것에도 피해를 주지 않는지는 역시 모릅니다.

 

그렇게 시작 및 활성화 권한 창이 열렸다면, 바로 추가 버튼을 선택합니다.

 

여기선 앞서 소유자를 변경했을 때와 같은 창을 볼 수 있는데, 아래의 '선택할 개체 이름을 입력하십시오' 부분에 Local Service를 입력, 그리고 앞서 했던 것처럼 이름 확인 - 확인을 순서대로 눌러 값을 저장합니다.

 

그리고 방금 추가했던 LOCAL SERVICE를 선택하여 '로컬 활성화'에 허용한 뒤, 확인을 눌러줍니다.

 

편집을 마쳤으니 적용 - 확인 순으로 눌러 변경된 설정값을 적용해주면 됩니다.