特定于应用程序的权限设置不授予本地激活

如果事件查看器(Event Viewer)显示错误消息The application-specific permission settings do not grant Local Activation permission for the COM Server application,那么本文将对您有所帮助。它带有一个DCOM Event ID 10016,这个错误主要出现在升级操作系统之后。尽管此错误不会影响普通Windows 10用户的用户体验,但你们中的一些人可能想知道为什么会发生这种情况以及您可以采取哪些措施。

当Microsoft(Microsoft)组件在没有所需权限的情况下尝试访问DCOM组件时,会记录这些 10016 事件。这些事件通常可以安全地忽略,因为它们不会对功能产生不利影响并且是设计使然。

整个错误消息看起来像这样 -

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID {C2F03A33-21F5-47FA-B4BB-156362A2F239} and APPID {316CDED5-E4AE-4B15-9113-7055D84DCC97} to the user NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19) 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.

供您参考,您的计算机上的CLSIDAPPID可能不同,因为它们代表您计算机上的组件服务。关于解决方案,错误消息中已经提到。您需要通过Windows 10中的管理工具修改安全权限。

特定于应用程序的权限设置不授予本地激活

要修复Windows 10(Windows 10)中特定于应用程序的权限设置不授予本地激活(Activation)错误,请按照下列步骤操作 -

  1. 识别(Identify)并确认CLSIDAPPID
  2. (Change)从注册表编辑器(Registry Editor)更改CLSID键的所有权
  3. (Modify)从组件(Component) 服务(Services)修改安全权限

请继续阅读以了解详细步骤。

您需要识别CLSIDAPPID。由于它们在您的计算机上可能不同,因此识别它们非常重要。否则,您将无法摆脱此事件查看器(Event Viewer)错误消息。根据上述错误信息,CLSID为{C2F03A33-21F5-47FA-B4BB-156362A2F239},APPID为{316CDED5-E4AE-4B15-9113-7055D84DCC97}。还有一项称为SID,但此时不需要。

现在您需要找到造成问题的组件。为此,请在您的计算机上打开注册表编辑器。为此,请按Win+R,键入regedit,然后按Enter按钮。之后,导航到此路径-

HKEY_Classes_Root\CLSID\<Enter-your-CLSID>

不要忘记将Enter-your-ClSID替换为您在错误消息中获得的原始CLSID 。得到它后,你应该在你的右手边找到APPID 。确保此APPID和以前的APPID(在错误消息中提到)相同。确认后,右键单击左侧的CLSID ,然后选择(CLSID)权限(Permissions)选项。

特定于应用程序的权限设置不授予本地激活

然后,单击高级(Advanced )按钮。

默认情况下,此密钥由TrustedInstaller拥有,但您需要将所有者更改为Administrator。为此,请单击“高级安全设置”窗口中的“(Advanced Security Settings )更改”(Change )按钮> 记下“管理员”> 单击“检查名称(Check Names )”按钮 > 单击“确定(OK )”按钮。

此外,您需要选中替换子容器和对象的所有者(Replace owner on subcontainers and objects )复选框。

之后,从组或用户名(Group or user names )列表中选择管理员,然后勾选(Administrators )Allow/Full Control 复选框。现在保存您的设置。

此外,您需要检查默认 - 数据(Default – Data )名称。在此示例中,默认数据(Default Data)名称为Immersive Shell。如果您的错误消息中的CLSIDAPPID不同,则应该不同。

之后,您还需要拥有APPID的所有权。为此,请在注册表编辑(Registry Editor-)器中导航到此路径-

HKEY_Local_Machine\Software\Classes\AppID\your-APPID

您需要执行与上述相同的操作来更改该注册表(Registry)项的所有权。

如果您在更改注册表项的所有权时(ownership of the Registry key)遇到任何问题,您可以查看我们名为RegOwnit的免费工具,只需单击一下即可完成。

如果您完成了这些步骤,您需要打开Component Services。您可以在任务栏(Taskbar)搜索框中搜索它,然后单击相应的结果。打开Component Services后,转到这里-

Component Services > Computer > My Computer > DCOM Config > Immersive Shell

基于此示例,CLSID与此Immersive Shell组件服务匹配。您需要找到从注册表编辑器获得的(Registry Editor)默认 - 数据(Default – Data )名称。识别后,右键点击组件服务,选择属性(Properties)。在这里您应该可以找到可以再次确认的应用程序 ID(Application ID )APPID 。

接下来,转到“安全(Security )”选项卡。在这里您可以找到三个标签,包括Launch 和 Activation Permissions(Launch and Activation Permissions)。单击相应的编辑(Edit )按钮。

如果您收到任何警告消息,请单击“取消(Cancel )”按钮并继续。您需要按照与上述相同的步骤添加两个帐户-

  • 系统
  • 本地服务

添加它们后,一次选择一个,并授予它们两个本地启动(Local Launch )本地激活(Local Activation )权限。

保存更改,您将不会在事件查看器(Event Viewer)中再次遇到相同的问题。

无论您遇到 RuntimeBroker 或 Immersive Shell 还是任何其他进程的问题,解决方案都是相同的。(Whether you get the issue with RuntimeBroker or Immersive Shell or any other process, the solution is the same for all of them.)



About the author

我是一名软件工程师,拥有 Xbox Explorer、Microsoft Excel 和 Windows 8.1 Explorer 方面的经验。业余时间,我喜欢玩电子游戏和看电视。我拥有犹他大学的学位,目前在一家国际公司担任软件工程师。



Related posts