Computer >> 컴퓨터 >  >> 시스템 >> Windows

Windows 10 DCOM 이벤트 ID 10016 오류 원인과 해결 방법 총정리

이번 글에서는 Windows 10의 정상적인 운영 중 이벤트 뷰어(Event Viewer)에 나타날 수 있는 DCOM(DistributedCOM) 이벤트 ID 10016 오류의 원인을 살펴보고, 이를 해결할 수 있는 다양한 방법을 소개합니다.

DCOM(Distributed Component Object Model)은 Windows 컴퓨터의 네트워크 통신에서 핵심적인 역할을 하는 기술입니다. 마이크로소프트의 독자 기술로, 응용 프로그램이 인터넷에 연결될 때마다 자동으로 작동합니다. 기존의 COM이 동일한 컴퓨터 내의 정보에만 접근할 수 있는 반면, DCOM은 원격 서버의 데이터에도 접근할 수 있다는 점이 큰 차이입니다.

예를 들어, 많은 웹사이트와 서비스는 원격 서버에 접근하는 스크립트를 사용합니다. 시스템이 스크립트나 다른 방식으로 요청을 보내면 DCOM이 해당 요청을 특정 스크립트 개체로 전달합니다. 현대의 응용 프로그램들이 네트워크 연결을 얼마나 빈번하게 사용하는지 생각해보면, DCOM이 얼마나 자주 활용되는지 쉽게 짐작할 수 있습니다.

DCOM 이벤트 ID 10016 오류란?

Windows 10 DCOM 이벤트 ID 10016 오류 원인과 해결 방법 총정리

Windows 10, Windows Server 2016, Windows Server 2019, Windows Server 버전 1903 또는 1909가 실행 중인 컴퓨터의 시스템 이벤트 로그에서 아래와 같은 이벤트 10016이 기록되는 것을 볼 수 있습니다.

Source: Microsoft-Windows-DistributedCOM
Event ID: 10016
Description: 응용 프로그램별 권한 설정이 CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
및 APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}에 해당하는 COM 서버 응용 프로그램에 대해 LocalHost( LRPC 사용) 주소에서 응용 프로그램 컨테이너 Unavailable SID(Unavailable)로 실행 중인 사용자 NT AUTHORITY\SYSTEM SID(S-1-5-18)에게 로컬 활성화(Local Activation) 권한을 부여하지 않습니다. 이 보안 권한은 구성 요소 서비스 관리 도구를 사용하여 수정할 수 있습니다.

일반적으로 위와 같은 오류가 이벤트 뷰어에 기록되는 것을 확인할 수 있습니다. 참고로 이벤트 ID 10016 오류는 여러 형태로 나타날 수 있지만, 오류를 처리하는 절차는 대체로 동일합니다.

DCOM 오류는 대개 응용 프로그램이나 서비스가 DCOM을 사용하려고 하지만 적절한 권한이 없을 때 발생합니다. 대부분의 경우 DCOM 오류는 이벤트 뷰어를 어수선하게 만들 정도이며, 시스템 자체에는 영향을 주지 않습니다. 이러한 10016 이벤트는 Microsoft 구성 요소가 필요한 권한 없이 DCOM 구성 요소에 접근하려 할 때 기록되는데, 이는 의도된 설계상의 동작입니다.

즉, DCOM 오류는 걱정할 필요가 없으며 안전하게 무시해도 됩니다. 그럼에도 불구하고 이벤트 ID 10016 오류가 발생했을 때 이를 해결할 수 있는 절차들이 존재합니다.

방법 1: XML 필터로 오류 숨기기

Microsoft는 DCOM 이벤트 ID 10016 오류를 표시하지 않도록 XML 필터를 생성하는 방법을 공식적으로 권장합니다.

다음 단계를 따라 진행하세요.

  • 이벤트 뷰어를 엽니다. (Windows 키 + R을 누르고, 실행 대화 상자에 eventvwr을 입력한 후 Enter 키를 누릅니다.)
  • Windows 로그 > 시스템(System)을 클릭합니다.
  • 오른쪽 동작(Action) 창에서 현재 로그 필터링(Filter current log)을 클릭합니다.
  • XML 탭을 선택하고 쿼리 수동 편집(Edit query manually) 옵션에 체크합니다.
  • 아래의 XML 텍스트를 필터 대화 상자에 복사하여 붙여넣습니다.
<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">*</Select>
    <Suppress Path="System">
      *[System[(EventID=10016)]]
      and
      *[EventData[
        (
          Data[@Name='param4'] and Data='{D63B10C5-BB46-4990-A94F-E40B9D520160}' and
          Data[@Name='param5'] and Data='{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}' and
          Data[@Name='param8'] and Data='S-1-5-18'
        ) 
        or
        (
          Data[@Name='param4'] and Data='{260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E}' and
          Data[@Name='param5'] and Data='{260EB9DE-5CBE-4BFF-A99A-3710AF55BF1E}'
        ) 
        or
        (
          Data[@Name='param4'] and Data='{C2F03A33-21F5-47FA-B4BB-156362A2F239}' and
          Data[@Name='param5'] and Data='{316CDED5-E4AE-4B15-9113-7055D84DCC97}' and
          Data[@Name='param8'] and Data='S-1-5-19'
        )
        or
        (
          Data[@Name='param4'] and Data='{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}' and
          Data[@Name='param5'] and Data='{4839DDB7-58C2-48F5-8283-E1D1807D0D7D}' and
          Data[@Name='param8'] and Data='S-1-5-19'
        ) 
      ]]
    </Suppress>
  </Query>
</QueryList>

이 쿼리에서 param4는 COM 서버 응용 프로그램의 CLSID에 해당하고, param5는 APPID에 해당하며, param8은 보안 컨텍스트 SID에 해당합니다. 이 값들은 모두 10016 이벤트 로그에 기록되는 항목들입니다.

Windows 10 DCOM 이벤트 ID 10016 오류 원인과 해결 방법 총정리

  • 확인(OK)을 클릭합니다.

이제 이벤트 ID 10016에 해당하는 DCOM 오류 항목이 목록에서 숨겨집니다.

방법 2: 레지스트리 편집기 및 DCOM 구성 도구로 권한 문제 해결하기

또 다른 방법으로는 레지스트리 편집기와 DCOM 구성(DCom Config) 도구를 사용하여 DCOM 권한 문제를 직접 수정하는 것이 있습니다.

이 방법은 레지스트리 수정을 포함하므로, 안전을 위해 작업 전에 레지스트리 백업 또는 시스템 복원 지점 생성을 권장합니다.

특정 CLSID 및 APPID를 가진 DCOM 구성 요소에 권한을 부여하여 해당 이벤트가 더 이상 기록되지 않도록 하려면 아래 단계를 따르세요.

먼저, 오류 메시지에 표시된 CLASS ID와 연관된 프로세스 또는 서비스가 무엇인지 확인해야 합니다. 이벤트 설명에 나열된 CLSID를 복사하세요. 이 예제에서는 {D63B10C5-BB46-4990-A94F-E40B9D520160}입니다. 중괄호({ })까지 모두 포함해서 복사해야 합니다.

이제 레지스트리 편집기를 실행합니다. 레지스트리 편집기가 열리면 편집(Edit)을 클릭한 후 찾기(Find)를 선택합니다. 검색 상자에 복사한 CLSID를 붙여넣고 Enter 키를 누릅니다.

레지스트리 검색이 시작되며, 잠시 후 HK_CLASSES_ROOT\CLSID 키 아래에서 결과를 찾을 수 있습니다. 오른쪽 창에 두 개의 키가 표시되며, 기본값(Default)에 해당 서비스의 이름이 나타납니다. 이 경우 RuntimeBroker여야 합니다.

Windows 10 DCOM 이벤트 ID 10016 오류 원인과 해결 방법 총정리

프로세스를 식별했다면, 이제 다음과 같이 오류를 수정할 수 있습니다.

  • 레지스트리 편집기에서 RuntimeBroker와 연관된 다음 AppID 키로 이동합니다.

HKEY_CLASSES_ROOT\AppID\{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}

기본적으로 이 레지스트리 키와 하위 키는 TrustedInstaller가 소유하고 있습니다. Administrators를 해당 키와 하위 키의 소유자로 설정하세요. 레지스트리 키 소유권을 가져오는 방법에 대한 자세한 내용은 관련 가이드를 참조하시기 바랍니다.

  • Administrators를 소유자로 설정한 후, Administrators 그룹과 SYSTEM 계정에 해당 키 및 하위 키에 대한 모든 권한(Full Control)을 부여합니다.
  • 레지스트리 편집기를 종료합니다.

다음으로 DCOM 구성 도구를 실행합니다. (Windows 키 + R을 누르고, 실행 대화 상자에 dcomcnfg.exe를 입력한 후 Enter 키를 누릅니다.)

  • 구성 요소 서비스(Component Services) > 컴퓨터(Computers) > 내 컴퓨터(My Computer) > DCOM 구성(DCOM Config)을 차례로 클릭합니다.
  • 이벤트 로그에 기록된 AppID에 해당하는 응용 프로그램을 마우스 오른쪽 버튼으로 클릭하고 속성(Properties)을 선택합니다.

이 예제에서 응용 프로그램 이름은 앞서 확인한 RuntimeBroker입니다. DCOM 구성 도구에 RuntimeBroker 항목이 두 개 표시될 수 있습니다. 올바른 항목을 찾으려면 각 항목을 마우스 오른쪽 버튼으로 클릭하고 속성을 연 다음, App ID가 레지스트리의 값과 일치하는지 확인하세요.

Windows 10 DCOM 이벤트 ID 10016 오류 원인과 해결 방법 총정리

  • 보안(Security) 탭을 선택합니다.
  • 시작 및 활성화 권한(Launch and Activation Permissions)에서 사용자 지정(Customize)을 선택하고 편집(Edit)을 클릭합니다.

만약 DCOM 구성의 RuntimeBroker 응용 프로그램 속성 페이지에서 편집 버튼이 비활성화되어 있다면, AppID 레지스트리 키의 권한을 먼저 확인해야 합니다.

  • 그룹 또는 사용자 이름(Group or user names)에서 추가(Add)를 선택합니다.
  • 이벤트 로그에 기록된 그룹 또는 사용자 이름을 입력합니다. 예를 들어, 로그에 기록된 계정은 NT AUTHORITY\NETWORK SERVICE, NT AUTHORITY\SYSTEM 또는 기타 그룹/계정일 수 있습니다.
  • 확인(OK)을 클릭합니다.
  • 추가한 사용자 또는 그룹에 대해 로컬 활성화(Local Activation) 권한을 부여하고 과정을 완료합니다.

이 절차를 완료하면 DCOM 권한과 관련된 이벤트 ID 10016 오류가 이벤트 로그에 더 이상 기록되지 않습니다.

주의: Microsoft는 이 오류의 기록을 막기 위해 DCOM 구성 요소의 권한을 수정하는 방법을 권장하지 않습니다. 이러한 오류는 시스템 기능에 악영향을 주지 않으며, 권한 변경은 예상치 못한 부작용을 일으킬 수 있기 때문입니다.

이 글이 도움이 되길 바랍니다!