DistributedCOM 오류 10016은 Windows XP 이후 거의 모든 Windows 버전에서 발견되는 흔한 문제입니다. 다행히 이 오류는 시스템을 즉시 충돌시키거나 갑작스러운 블루스크린(BSOD)을 유발하지 않습니다. 실제로 DCOM 오류 10016은 대체로 무해한 오류로 알려져 있습니다.
하지만 무해하다고 해서 그대로 두어야 하는 것은 아닙니다. 이 글에서는 Windows 10 시스템에서 DistributedCOM 오류 10016을 해결하는 두 가지 방법을 자세히 소개합니다.
DistributedCOM이란 무엇인가?
먼저 DistributedCOM이 무엇이고, 왜 오류가 발생하는지 알아보겠습니다.
Distributed Component Object Model(DCOM)은 Windows 컴퓨터의 네트워크 통신에 필수적인 구성 요소입니다. Microsoft의 독점 기술로, 애플리케이션이 인터넷에 연결될 때마다 작동합니다. 기존 COM은 동일한 컴퓨터 내의 정보에만 접근할 수 있는 반면, DCOM은 원격 서버의 데이터까지 접근할 수 있다는 차이가 있습니다.
예를 들어, 많은 웹사이트와 서비스는 원격 서버에 접근하는 스크립트를 사용합니다. 시스템이 스크립트나 다른 방식으로 요청을 보내면 DCOM이 해당 요청을 특정 스크립트 객체로 전달합니다. 현대 애플리케이션이 네트워크 연결을 얼마나 자주 사용하는지 생각해 보면, DCOM이 얼마나 빈번하게 활용되는지 쉽게 짐작할 수 있습니다.
DCOM 오류는 주로 애플리케이션이나 서비스가 DCOM을 사용하려고 하지만 적절한 권한이 없을 때 발생합니다. 대부분의 경우 DCOM 오류는 이벤트 뷰어(Event Viewer)를 어수선하게 만들 정도 외에는 시스템에 영향을 주지 않습니다. Windows 10 사용자 대부분은 이벤트 뷰어를 수시로 확인하지 않으므로 크게 걱정할 필요는 없지만, 역시 오류 없는 깔끔한 시스템이 더 좋겠죠.
그럼 지금부터 비교적 간단한 해결 방법 하나와 다소 번거롭지만 확실한 방법 하나를 순서대로 살펴보겠습니다.
1. Windows 레지스트리 편집으로 DCOM 오류 10016 수정
가장 먼저 시도할 방법은 Windows 레지스트리 편집입니다. 간단한 레지스트리 조정만으로도 DCOM 오류 10016이 즉시 사라지는 경우가 많습니다.
레지스트리를 수정하기 전에는 반드시 백업을 권장합니다.
시작 메뉴 검색창에 레지스트리를 입력하고 가장 일치하는 항목을 선택합니다. 파일 > 내보내기로 이동하여 내보내기 범위를 모두로 설정한 후, Windows 레지스트리를 안전한 위치에 저장합니다. 아래 방법은 컴퓨터에 손상을 주지 않지만, 예기치 않은 오류 발생 시 복원할 수 있도록 백업을 미리 만들어 두는 것이 좋습니다.
이제 수정 작업을 시작해 보겠습니다.
- 시작 메뉴 검색창에 레지스트리를 입력하고 가장 일치하는 항목(레지스트리 편집기)을 선택합니다.
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole 경로로 이동합니다. 주소를 복사해서 레지스트리 편집기 상단의 주소 표시줄에 붙여넣으면 빠르게 이동할 수 있습니다.
- 다음 네 개의 레지스트리 키를 삭제합니다.
DefaultAccessPermissionDefaultLaunchPermissionMachineAccessRestrictionMachineLaunchRestriction - 레지스트리 편집기를 닫고 시스템을 재부팅합니다.
재부팅 후에는 더 이상 DCOM 오류 10016이 발생하지 않을 것입니다.
2. 특정 오류에 대한 DCOM 권한 직접 설정
첫 번째 방법으로 해결되지 않았다면, 다소 길지만 확실한 우회 방법을 따라 할 수 있습니다. 다만 여러 애플리케이션에서 DCOM 오류가 동시에 발생하고 있다면, 각 오류마다 대부분의 과정을 반복해야 하므로 시간이 다소 걸릴 수 있습니다.
이벤트 뷰어의 DCOM 오류 10016 메시지에는 문제를 일으키는 특정 애플리케이션 또는 프로세스에 대한 정보가 포함되어 있습니다.
시작 메뉴 검색창에 이벤트 뷰어를 입력하고 가장 일치하는 항목을 선택합니다.
Windows 로그 > 시스템으로 이동하여 가장 최근의 DCOM 오류 10016을 찾습니다. 오류 메시지를 더블클릭하면 세부 내용이 확장됩니다.
일반 탭에는 10016 오류의 원인이 설명되어 있으며, CLSID(클래스 ID)와 APPID(애플리케이션 ID)가 함께 표시됩니다. CLSID와 APPID 문자열은 무작위처럼 보이지만, 이를 통해 어떤 애플리케이션이나 서비스가 오류의 근원인지 식별할 수 있습니다.
레지스트리 편집기에서 CLSID 및 APPID 찾기
다음은 레지스트리 편집기에서 해당 서비스를 찾는 방법입니다.
먼저 이벤트 뷰어에서 CLSID를 마우스로 드래그하여 선택한 후 Ctrl + C를 눌러 복사합니다. 그다음 레지스트리 편집기를 열고 아래 경로에서 검색합니다.
HKEY_CLASSES_ROOT\CLSID\{복사한 CLSID 붙여넣기}
예를 들면 HKEY_CLASSES_ROOT\CLSID\{2593F8B9-4EAF-457C-B68A-50F6B8EA6B54}와 같은 형태입니다.
주소를 복사해서 레지스트리 편집기 주소 표시줄에 바로 붙여넣을 수 있다는 점을 기억하세요. CLSID 검색이 끝나면 오류 메시지의 APPID와 CLSID 하위에 나열된 AppID를 서로 대조합니다.
많은 경우 DCOM 오류 10016은 Runtime Broker에서 비롯되며, 이는 이 오류의 가장 흔한 원인 중 하나입니다.
CLSID 권한 편집하기
왼쪽 레지스트리 항목 목록에서 오류와 관련된 CLSID를 마우스 오른쪽 버튼으로 클릭한 후 권한 > 고급을 선택합니다. 여기에서 해당 서비스의 권한을 편집할 수 있습니다. (파일 권한 변경은 Windows 10의 다른 여러 문제를 해결하는 데에도 도움이 됩니다.)
Administrators를 선택하고 편집을 클릭합니다. 기본 사용 권한에서 모든 권한(Full Control)을 체크한 후 확인 > 적용 > 확인을 차례로 누릅니다.
이제 시스템을 재시작합니다.
재시작이 완료되면 시작 메뉴 검색창에 구성 요소 서비스를 입력하고 가장 일치하는 항목을 선택합니다. 컴퓨터 > 내 컴퓨터 > DCOM 구성으로 이동합니다.
DCOM을 사용하는 서비스들의 긴 목록이 표시됩니다. 이름과 APPID를 기준으로 해당 서비스를 찾아 마우스 오른쪽 버튼으로 클릭한 후 속성 > 보안을 선택합니다.
시작 및 활성화 권한에서 편집 > 추가 > 로컬 서비스 추가 > 적용을 차례로 진행합니다. 이후 로컬 활성화(Local Activation) 체크박스에 체크하고 확인을 누른 뒤, 시스템을 한 번 더 재부팅합니다.
이것으로 모든 과정이 완료되었습니다!
참고: 아쉽게도 10016 오류의 원인이 여러 개라면, 각 CLSID/APPID 조합마다 위 과정을 반복해야 합니다.
DCOM 오류 10016 해결 완료
이 가이드가 Distributed COM 10016 오류를 해결하는 데 도움이 되었기를 바랍니다. 다시 한번 강조하자면, DCOM 10016 오류가 시스템 성능에 영향을 줄 가능성은 매우 낮습니다. Microsoft가 초기에 Component Object Model에 'Distributed' 개념을 도입했던 시절에는 취약점이 존재했지만, 이후 패치를 통해 보완되었으며 현재의 DCOM은 안전합니다.
물론 DCOM 오류 10016만이 Windows 10에서 발생하는 유일한 오류는 아닙니다. 하지만 걱정하지 마세요. 다른 오류들 역시 다양한 방법으로 충분히 해결할 수 있습니다.