如何修复 Windows 10 上的 DCOM 事件 ID 10016 错误

在今天的帖子中,我们将找出原因,然后针对Windows 10正常操作过程中可能出现在Windows事件查看器中的(Windows)DCOM (DistributedCOM) Event ID 10016错误问题提供可能的解决方案。

分布式组件对象模型 (DCOM)是(Distributed Component Object Model (DCOM))Windows计算机上网络通信的 一个组成部分。这是一项专有的Microsoft技术,每当应用程序连接到 Internet 时,它就会立即生效。传统的 COM 只能访问同一台机器上的信息,而DCOM可以访问远程服务器上的数据。

例如,许多网站和服务使用访问远程服务器的脚本。当您的系统使用脚本或其他方式发出请求时,DCOM会将请求转发给特定的脚本对象。鉴于现代应用程序使用网络连接的频率以及我们对计算机的一般使用,您可以看到DCOM的使用频率。

DCOM 事件 ID 10016 错误

DCOM 事件 ID 10016 错误

您可能会注意到在运行Windows 10(Windows 10)Windows Server 2016Windows Server 2019、Windows Server版本 1903 或Windows Server 1909的计算机上的系统事件日志中记录了以下事件 10016 :

Source: Microsoft-Windows-DistributedCOM
Event ID: 10016
Description: The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{D63B10C5-BB46-4990-A94F-E40B9D520160}
and APPID
{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
to the user NT AUTHORITY\SYSTEM SID (S-1-5-18) from address LocalHost (using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.

通常,您会遇到在事件查看器中记录的上述错误。但是,值得注意的是,事件 ID 10016(Event ID 10016)错误有多种变体。然而(Nevertheless),减轻错误的过程基本相同。

当应用程序或服务尝试使用DCOM但没有适当的权限时,通常会发生DCOM错误。(DCOM)大多数情况下,DCOM错误不会影响您的系统,只会阻塞您的 Event Viewer当Microsoft(Microsoft)组件在没有所需权限的情况下尝试访问DCOM组件时,会记录这些 10016 事件。在这种情况下,这是意料之中的,也是设计使然。

DCOM 错误无需担心——您可以放心地忽略它们。但是,您可以遵循一些过程来解决发生的事件ID 10016错误。

如何解决DCOM事件ID 10016错误

要解决此问题,Microsoft建议创建一个 XML 筛选器来抑制DCOM事件ID 10016错误。

就是这样:

  • 打开事件查看器(Event Viewer)按 Windows(Press Windows)键 + R。在“运行”(Run)对话框中,键入eventvwr并按 Enter)。
  • 点击Windows 日志(Windows Logs)>系统(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 Server应用程序CLSID,  param5 对应 APPID,  param8 对应安全上下文SID,所有这些都记录在 10016 事件日志中。

  • 单击确定(OK)

现在隐藏了事件 ID 为 10016(Event ID 10016)DCOM错误条目。

或者,您可以使用注册表编辑器(Registry Editor)DCom 配置(DCom Config)工具修复DCOM 权限(DCOM Permissions)问题。

就是这样:

该修复涉及注册表调整 - 作为预防措施,建议您备份注册表(back up the registry)或创建系统还原点。

要防止记录事件,请按照以下步骤向具有特定CLSID(CLSIDs)APPID的(APPIDs)DCOM组件授予权限。

首先,您需要确定哪个进程或服务与错误中列出的CLASS ID相关联。(CLASS ID)为此,请继续复制事件描述中列出的CLSID 。在这种情况下,它是{D63B10C5-BB46-4990-A94F-E40B9D520160}。确保也复制两个花括号。

现在,启动注册表编辑器。打开注册表编辑器后,单击 Edit  ,然后 单击Find。继续并将CLSID粘贴到搜索框中,然后按 Enter(Enter)

注册表现在将启动搜索。一段时间后,您应该会在HK_CLASSES_ROOT\CLSID 键下获得结果。在右侧,它应该有两个键, 默认(Default)的应该列出服务的名称。在这种情况下,它应该是RuntimeBroker

现在您已经确定了该过程,您现在可以按照以下步骤修复错误。

  • 尽管如此,在注册表编辑器中,导航到与 RuntimeBroker 关联的以下AppID键:(AppID)

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

默认情况下,TrustedInstaller拥有此注册表项及其子项。将 Administrator 设置(Set Administrator)为密钥及其子密钥的所有者。有关详细信息,请参阅 如何获得注册表项的所有权(how to take ownership of registry keys) 。

  • Administrators设置 为所有者后,分配 Administrators 组和 SYSTEM 帐户对密钥和子密钥具有完全控制(Full Control)权限。
  • 退出注册表编辑器。

接下来,启动DCOM 配置(DCOM Configuration)工具(按Windows键 + R。在“运行”(Run)对话框中,键入dcomcnfg.exe 并按 Enter。

  • 单击组件服务(Component Services)>计算机(Computers)>我的(My Comput)计算机> DCOM 配置(DCOM Config)
  • 右键单击与事件日志中记录的(Right-click)AppID对应的应用程序,然后选择Properties

此示例中的应用程序名称是我们之前确定的RuntimeBroker。如果DCom Config工具列出了两个RuntimeBroker条目。要找到正确的,请右键单击一项并单击属性并将应用程序 ID(App ID)与注册表中的应用程序 ID 匹配。

  • 选择安全(Security)选项卡。
  • 启动和激活权限(Launch and Activation Permissions)下,选择自定义(Customize),然后单击编辑(Edit)

如果DCOM Config的(DCOM Config)RuntimeBroker应用程序属性(Properties)页面中的Edit按钮灰显,则需要验证AppID注册表项权限。

  • 组或用户名下(Group or user names),选择添加(Add)
  • 输入(Enter)记录在事件日志中的组或用户名。例如,日志中记录的帐户可能是NT AUTHORITY\NETWORK SERVICENT AUTHORITY\SYSTEM或其他一些组或帐户。
  • 单击确定(OK)
  • 为您添加的用户或组分配本地激活(Assign Local Activation)权限,然后完成该过程。

此过程可防止与DCOM权限相关的事件日志错误事件 ID(Event ID):10016 。

注意(Note)Microsoft不建议使用修改DCOM组件权限的方法来防止记录此错误,因为这些错误不会对功能产生不利影响,并且修改权限可能会产生意想不到的副作用。

Hope this helps!



About the author

凭借在 Windows 10 和智能手机方面的丰富经验,我是 Microsoft Edge 及其提供的功能的坚定拥护者。除了是错误和 wifi 方面的专家之外,我还知道如何使用 OneDrive 和 Cortana 等工具让您的工作更轻松。



Related posts