如果修改了默认注册表或文件权限,Microsoft Store 应用将无法启动

本文可帮助修复以下问题:如果修改了默认注册表或文件权限,则无法启动Microsoft应用商店应用。

适用于:Windows 10 - 所有版本
原始 KB 数: 2798317

注意

本文面向 IT 专业人员。 对于遇到Microsoft应用商店应用问题的家庭用户,请转到 “修复Microsoft应用商店中的应用问题”。

问题 1

选择Microsoft应用商店应用时,应用将开始启动,然后 Windows 将返回到开始屏幕。 不会显示屏幕上的错误。

Microsoft-Windows-Immersive-Shell 事件 5961 记录在 应用程序和服务日志\Microsoft\Windows\Apps\Microsoft-Windows-TWinUI/Operational 事件日志 路径下:

Log Name:      Microsoft-Windows-TWinUI/Operational  
Source:        Microsoft-Windows-Immersive-Shell  
Date:          DateTime  
Event ID:      5961  
Task Category: (5961)  
Level:         Error  
Keywords:  
User:          UserName  
Computer:      ComputerName  
Description:  
Activation of the app <app name> for the Windows.Launch contract failed with error: The app didn't start.

注意

示例事件的应用部分( <应用名称>)将根据无法启动的应用程序而更改。

应用名称>的可能值<包括但不限于:

microsoft.windowscommunicationsapps_8wekyb3d8bbwe!Microsoft.WindowsLive.Chat

其他内置Microsoft应用商店应用的前缀包括:

Microsoft.BingFinance_8wekyb3d8bbwe!<应用标识符>
Microsoft.BingMaps_8wekyb3d8bbwe!<应用标识符>
Microsoft.BingNews_8wekyb3d8bbwe!<应用标识符>
Microsoft.BingSports_8wekyb3d8bbwe!<应用标识符>
Microsoft.BingTravel_8wekyb3d8bbwe!<应用标识符>
Microsoft.BingWeather_8wekyb3d8bbwe!<应用标识符>
Microsoft.Bing_8wekyb3d8bbwe!<应用标识符>
Microsoft.Camera_8wekyb3d8bbwe!<应用标识符>
Microsoft.Media.PlayReadyClient_8wekyb3d8bbwe!<应用标识符>
microsoft.microsoftskydrive_8wekyb3d8bbwe!<应用标识符>
Microsoft.Reader_8wekyb3d8bbwe!<应用标识符>
Microsoft.VCLibs.110.00_8wekyb3d8bbwe!<应用标识符>
microsoft.windows.authhost.a_8wekyb3d8bbwe!<应用标识符>
microsoft.windowscommunicationsapps_8wekyb3d8bbwe!<应用标识符>
microsoft.windowsphotos_8wekyb3d8bbwe!<应用标识符>
Microsoft.WinJS.1.0.RC_8wekyb3d8bbwe!<应用标识符>
Microsoft.WinJS.1.0_8wekyb3d8bbwe!<应用标识符>
Microsoft.XboxLIVEGames_8wekyb3d8bbwe!<应用标识符>
Microsoft.ZuneMusic_8wekyb3d8bbwe!<应用标识符>
Microsoft.ZuneVideo_8wekyb3d8bbwe!<应用标识符>

问题 2

无法启动Microsoft应用商店应用、打开“开始”屏幕,并在 Windows 中使用搜索。 此外,在应用程序日志中会收到以下事件日志:

Log Name: Application  
Source: Application Error  
Event ID: 1000  
Task Category: (100)  
Level: Error  
Keywords: Classic  
User: N/A  
Description:  
Faulting application name: xxxx.exe, version: 10.1605.1606.6002, time stamp: 0x5755acef  
Faulting module name: xxxxxx.dll, version: 10.0.14393.1198, time stamp: 0x5902836c  
Exception code: 0xc000027b  
Fault offset: 0x00000000006d5eab  
Faulting process id: 0x29c4  
0xc000027b: An application-internal exception has occurred. This error occurs when an access denied error happens during app initialization that is fatal and cause an exception that leads to the crash.

如果使用进程监视器来跟踪应用的可执行文件或相关文件,则可能会记录 拒绝 访问。 它指向当前登录用户缺少的权限。 它包括:

  1. 注册表配置单元及其子项:

    1. HKEY_CLASSES_ROOT
    2. HKEY_LOCAL_MACHINE\Drivers
    3. HKEY_LOCAL_MACHINE\HARDWARE
    4. HKEY_LOCAL_MACHINE\SAM
    5. HKEY_LOCAL_MACHINE\SOFTWARE
    6. HKEY_LOCAL_MACHINE\SYSTEM
    7. HKEY_USERS
  2. 对于文件子系统:

    1. 程序文件 - 读取、读取和执行以及列出文件夹内容
    2. Windows - 读取、读取和执行和列出文件夹内容
    3. Users\<userName>\AppData\Local\Microsoft\Windows\WER - 特殊权限(列出文件夹/读取数据,以及创建文件夹/追加数据)

问题 1 的原因

注册表和或文件系统权限可能已从默认值更改。

“所有应用程序包”组是一个具有预定义 SID 的已知组。 组必须对注册表和文件系统的某些位置具有特定访问权限,Microsoft应用商店应用才能正常运行。

问题 2 的原因

出现此问题的原因是读取权限缺少任何或所有密钥。 在这种情况下, 将记录0xc000027b 。 对于注册表位置或文件子系统位置的所有 APPLICATION PACKAGES,此错误没有例外。

注册表和文件系统权限必须还原为允许Microsoft应用商店应用正常运行的状态

注意

仅更改已知导致访问被拒绝错误的注册表项的权限。 错误地更改注册表项的权限可能会导致严重问题或无意中削弱安全设置。

无法撤消在整个注册表和文件系统中传播的广泛权限更改。 Microsoft将根据支持合同提供商业上合理的努力。 但是,当前无法回滚这些更改。 我们只能通过重新格式化硬盘驱动器和重新安装操作系统来保证可以返回到建议的现用设置。

如果使用组策略来管理权限,或者不确定组策略是否用于管理权限,请执行以下步骤:

  • 从域取消加入计算机,或将计算机置于启用了阻止策略继承的测试 OU 中。 此操作可防止基于域的组策略在修复权限更改后重新应用权限更改并再次中断新式应用程序。
  • 根据以下详细信息添加所需的权限。
  • 编辑管理权限的组策略,使其不再中断新式应用程序。

注册表和文件系统权限必须还原回允许Microsoft应用商店应用正常运行的状态。 按照此方法解决此问题:

  1. 确定文件系统权限是否已更改。 如果没有,请参阅 下面的“详细信息 ”部分。
  2. 如果是这样,他们是如何改变的? 手动还是使用组策略?
  3. 确定注册表权限是否已更改(如果未更改),请参阅 下面的“详细信息 ”部分。
  4. 如果是这样,他们是如何改变的? 手动还是使用组策略?
  5. 请专门验证 secpol 和 GPP。

确定文件系统权限是否已更改

检查下面列出的文件夹。 确定“所有应用程序包”组是否具有指示的访问权限。 大多数但并非所有 Windows、Program Files 和 WER 的子目录也向“所有应用程序包”组授予权限。

  • 程序文件 - 读取、读取和执行以及列出文件夹内容
  • Windows - 读取、读取和执行和列出文件夹内容
  • Users<userName>\AppData\Local\Microsoft\Windows\WER - 特殊权限(列出文件夹/读取数据,以及创建文件夹/追加数据)

确定注册表权限是否已更改

检查下面列出的注册表项。 确保所有应用程序包组对以下注册表路径具有读取权限:

  • HKEY_CLASSES_ROOT
  • HKEY_LOCAL_MACHINE\Drivers
  • HKEY_LOCAL_MACHINE\HARDWARE
  • HKEY_LOCAL_MACHINE\SAM
  • HKEY_LOCAL_MACHINE\SOFTWARE
  • HKEY_LOCAL_MACHINE\SYSTEM
  • HKEY_USERS

上面列出的注册表项的大多数但并非所有子项都将授予“所有应用程序包”组读取访问权限。

确定组策略是否用于管理权限

  1. 以遇到问题的用户身份登录到电脑。

  2. 打开管理命令提示符,然后运行以下命令:

    gpresult /h <path>\gpreport.html
    
  3. 打开文件gpreport.html并展开以下路径:

    计算机设置> 策略\Windows 设置\安全设置。 查找 文件系统 和注册表。 如果存在这些属性,则 GP 正在分配权限。 必须编辑 GP 才能包括所有应用程序包组的必要权限。

解决问题的步骤

根据文件系统权限的更改方式,将决定如何从问题中恢复。 权限的最常见方式是通过组策略手动更改的。

重要

在广泛部署之前,请确保在实验室中测试解决方案。 在更改注册表和文件系统权限之前,请始终备份任何重要数据。

修复手动更改的文件系统权限

  1. 打开文件资源管理器。
  2. 浏览到 c:\Program Files。
  3. 右键单击并选择 属性
  4. 选择“安全”选项卡。
  5. 选择“高级”按钮。
  6. 选择“更改权限”按钮。
  7. 选择“添加”按钮。
  8. 选择“选择主体”链接。
  9. 选择“位置”按钮并选择本地计算机。
  10. 添加“所有应用程序包”组名称,然后选择“ 确定”。
  11. 请确保 Type = allow and Applies to = This folder, subfolder, and files.
  12. 检查“读取”和“执行”、“列出文件夹内容”和“读取”。
  13. 选中“ 将所有子对象权限替换为此对象 中的可继承权限条目”复选框。
  14. 选择“应用”和“确定”。
  15. 对 c:\Windows 重复此操作。
  16. 对 c:\Users 重复,但授予“所有应用程序包”组完全控制权限。
  17. 选择“应用”和“确定”。

修复组策略更改的文件系统权限

让组策略管理员执行以下步骤:

  • 打开组策略管理控制台。
  • 找到在步骤 中标识的 GPO,确定组策略是否用于管理权限
  • 右键单击并选择“ 编辑”。
  • 转到“计算机 Configuration\Policy\Windows Settings\Security Settings\File System”位置。
  • 如果已创建路径有一个条目,则可以对其进行编辑。 如果不存在任何条目,请为每个路径创建新条目。
  • 若要创建新条目,请右键单击文件系统并选择 “添加文件”。
  • 浏览到路径 c:\Program Files,选择“ 确定”。
  • 选择“添加”按钮。
  • 选择“位置”按钮并选择本地计算机名称。
  • 添加“所有应用程序包”组,并向其授予“读取”、“读取”和“执行”和“列出”文件夹内容权限。
  • 选择“应用”和“确定”。
  • 选择“ 将所有子文件夹和文件的现有权限替换为可继承的权限 ”选项。
  • 对 C:\Windows 重复此操作。
  • 但是,对 C:\Users 重复此操作,授予“所有应用程序包”组完全控制权限。

需要等待组策略更改复制到所有域控制器,并让所有客户端更新其组策略设置。

注意

处理文件系统更改会在首次处理此策略时产生一些登录延迟。 除非对策略进行更改,否则后续登录不会受到影响。 作为替代方法,可以使用由用户调用登录后调用的脚本作为计划任务运行。

修复手动更改的注册表权限

  • 打开regedit.exe。
  • 右键单击HKEY_Users并选择 属性
  • 确保所有应用程序包都具有读取。
  • 重复HKEY_CLASSES_ROOT。
  • 展开HKEY_LOCAL_MACHINE。 检查子项硬件、SAM、SOFTWARE、SYSTEM。 确保所有应用程序包都具有读取权限。

修复组策略更改的注册表权限

让组策略管理员执行以下步骤:

  • 打开组策略管理控制台。
  • 找到在步骤 中标识的 GPO,确定组策略是否用于管理权限
  • 右键单击并选择“ 编辑”。
  • 转到“计算机 Configuration\Policy\Windows Settings\Security Settings\Registry”位置。
  • 右键单击并选择“ 添加密钥”。
  • 选择CLASSES_ROOT。
  • 选择“添加”按钮。
  • 选择 “位置 ”按钮并选择本地计算机名称。
  • 添加“所有应用程序包”组,并向其授予“读取”权限。
  • 用户重复此操作。
  • 对 MACHINE\HARDWARE、MACHINE\SAM、MACHINE\SOFTWARE 和 MACHINE\SYSTEM 重复此操作。

详细信息

有关详细信息,请参阅 Microsoft应用商店应用在用户配置文件或 ProgramData 目录从其默认位置移动时无法启动。

文件系统和注册表访问控制列表修改

Windows XP 和更高版本的 Windows 在整个系统中都加强了权限。 因此,不应对默认权限进行广泛的更改。

额外的自由访问控制列表(DACL)更改可能会使Microsoft完成的所有或大多数应用程序兼容性测试失效。 通常,这些更改未经过Microsoft在其他设置上完成的彻底测试。 支持案例和字段体验表明,DACL 会经常以意外的方式更改操作系统的基本行为。 这些更改会影响应用程序兼容性和稳定性以及减少有关性能和功能的功能。

由于这些更改,我们不建议修改生产系统上操作系统随附的文件上的文件系统 DACL。 建议根据已知威胁评估任何其他 ACL 更改,以了解更改可能适用于特定配置的任何潜在优势。 出于这些原因,我们的指南只对 DACL 进行了最少的更改,并且只对 Windows 2000 进行更改。 对于 Windows 2000,需要几个次要更改。 Windows 2000 安全强化指南中介绍了这些更改。

无法撤消在整个注册表和文件系统中传播的大量权限更改。 新文件夹(如操作系统的原始安装中不存在的用户配置文件文件夹)可能会受到影响。 因此,如果以下方法无法回滚原始 DACL:

  • 删除执行 DACL 更改的组策略设置
  • 应用系统默认值

对 %SystemDrive% 文件夹中 DACL 的更改可能会导致以下情况:

  • 回收站不再按设计运行,无法恢复文件。
  • 减少安全性,使非管理员能够查看管理员回收站的内容。
  • 用户配置文件无法按预期运行。
  • 减少安全性,使交互式用户能够读取对系统上的某些或所有用户配置文件的读取访问权限。
  • 当许多 DACL 编辑加载到包含长时间登录时间或重复重启目标系统的组策略对象时,性能问题。
  • 性能问题(包括系统减速),每 16 小时或重新应用组策略设置一次。
  • 应用程序兼容性问题或应用程序崩溃。

为了帮助你删除此类文件和注册表权限的最差结果,Microsoft将根据支持合同提供商业上合理的努力。 但是,当前无法回滚这些更改。 我们只能通过重新格式化硬盘驱动器和重新安装操作系统来保证可以返回到建议的现用设置。

例如,对注册表 DACL 的修改会影响注册表配置单元的大部分内容,并可能导致系统不再按预期工作。 修改单个注册表项上的 DACL 对许多系统来说就不那么重要了。 建议在实施这些更改之前仔细考虑和测试这些更改。 我们只能保证,如果重新格式化并重新安装操作系统,则只能返回到建议的现用设置。