原始 KB 数: 5011324
总结
本文针对 Windows 计算机上因现代应用或应用程序包存在多个版本而引发的问题提供故障排除指导,尤其是在系统扫描将这些应用报告为存在漏洞时。 本指南可帮助你确保更新应用的所有实例,从而增强系统安全性并解决漏洞报告。 症状包括由于用户配置文件和应用更新而导致的多个应用文件夹和版本。
解决问题的方法:
- 为所有用户更新应用:使用 PowerShell 识别并重新关联使用过时应用版本的用户配置文件。
- 删除旧包:使用 PowerShell 命令标识和删除过时的 Appx 包。
- 删除用户配置文件:删除与旧应用版本关联的配置文件以清理系统。
- 包含用于验证更新和检查 WindowsApps 文件夹的说明。
注意
删除 Appx 程序包会移除其注册信息,但由于清理是以异步方式进行的,且仅尽力而为,因此文件可能仍会留在磁盘上。 这些剩余文件是惰性的,风险较低。
现象
在最近的Windows版本中,shell 的多个部分将移动到新式应用。 将这些应用作为 .msix 或 .appx 文件引入。 每次用户首次或应用更新后登录Windows时,都需要为每个用户注册它们。
这些新式应用可能是 SystemApps(例如 StartMenuExperienceHost 和 ShellExperienceHost),它们是在 Windows 累积更新中引入的;也可能是通过连接到 Windows 应用商店终结点的 Windows 更新来更新的 WindowsApps。
在以下位置找到的 C:\Program Files\WindowsApps 文件夹是包含应用程序的受保护系统目录。 保护它以避免系统问题,通常由 NT SERVICE\TrustedInstaller 其所有,以确保应用程序不能作为攻击途径被利用。
由于这种固有的设计,可能会遇到以下问题之一:
系统中的多个应用文件夹
如果系统有多个用户配置文件,则每个用户安装的应用可能会由于不同版本而创建多个应用文件夹。 这些文件夹驻留在 C:\Program Files\WindowsApps 隐藏文件夹中。
系统中的多个应用版本
请考虑下列情形:
- 多个用户同时登录,并启用Microsoft Store。 一个用户在Microsoft Store后台更新期间使用该应用。
- 某些用户不经常登录,Microsoft Store 处于禁用状态。 系统管理员手动更新应用。
在这些方案中,系统具有每个用户的多个应用版本,这不会影响用户。 但是,如果未为所有用户更新应用,则应用将报告为易受攻击。
更新所有用户的应用或删除旧包
若要解决此问题,请使用以下一个或多个方法:
方法 1:使用用户配置文件重新连接到计算机,确保系统中的所有用户都更新应用
-
在提升权限的 PowerShell 窗口中使用 Appx cmdlet 命令 Get-AppxPackage,识别已安装旧版 Appx 程序包的用户配置文件:
Get-AppxPackage <Application Name> -AllUsers -
使用已识别的用户重新连接到该机器。
方法 2:删除旧包(.appx)
-
在提升权限的 PowerShell 提示符下,使用 Appx cmdlet Get-AppxPackage 确定安装了 Appx 包的用户配置文件。
Get-AppxPackage <Application Name> -AllUsers -
使用 Get-AppxProvisionedPackage 获取所有预配的应用的列表,并检查是否已预配应用。
Get-AppxProvisionedPackage -Online | Format-Table DisplayName, PackageName -
删除系统中所有用户的 Appx 包:
Get-AppxPackage <Application Name> -AllUsers | Remove-AppxPackage -AllUsers注意
有关通过 PowerShell cmdlet 管理 Appx 包的详细信息和用法示例,请参阅以下文章。
方法 3:删除指向旧版应用的用户配置文件
若要删除用户配置文件,请参阅以下文章:
若要确认已为所有用户更新应用并删除旧包,请再次扫描或检查 C:\Program Files\WindowsApps 文件夹。 如果你没有检查文件夹的权限,请在另一个位置创建一个副本,并在其中进行检查。