已卸载的程序仍然出现在 WMI 对象“WIN32_InstalledStoreProgram”中吗?

已卸载的程序仍然出现在 WMI 对象“WIN32_InstalledStoreProgram”中吗?

注意:这是 StackOverflow 上原始帖子的转帖。一位热心用户引导我来到这里,我只是转帖而已。

由于这个烦人的问题,我第一次创建了 StackOverflow 帐户。我在当前工作中解决测试 PC VM 上的漏洞以测试一些新程序,其中一个漏洞涉及预安装的应用程序“Paint3D”(具体来说,QID 91774感兴趣的朋友可以参阅)。长话短说,漏洞只是“应用程序版本过时”。将 Paint3D 更新到最新版本并使用 Powershell 确认后,我注意到我们的漏洞管理软件一直将 Paint3D 检测为过时版本。该漏洞是通过查询 WMI 对象“WIN32_InstalledStoreProgram”检测到的,如下所示: “威胁检测逻辑”方法的片段在发现更新到最新版本后此漏洞仍然存在后,我继续通过“设置”>“应用程序”菜单卸载了 Paint3D。

当我使用 Powershell 命令“Get-WmiObject Win32_InstalledStoreProgram”和“Get-WmiObject Win32_InstalledStoreProgram | Format-List -Property Name, Version”手动查询同一个 WMI 对象时,我注意到我卸载的应用程序 (Microsoft.MSPaint) 有 2 个条目。一个是我更新的旧版本,另一个是我更新到的新版本。两个都已卸载并确认已卸载。我卸载了一个单独的应用程序 (Weather),以查看 WMI 对象是否不会自动更新,但在使用上述 Powershell 命令进行卸载和确认后,确认已卸载 Weather 应用程序并将其作为 WMI 对象中的条目删除,而 Microsoft.MSPaint 的两个不同版本仍然存在。我还卸载了“Paint”的正常版本,以防出现问题,但这两个条目仍然存在。

现在到了棘手的部分。每次我尝试安装 Paint3D 时,Microsoft Store 都会给我不同的错误消息。我认为这是因为 MS Store 也在查询同一个 WMI 对象,并且看到我有两个“版本”的“Paint3D”,因此无法安装任何东西。我对这个小问题束手无策。我计划实施的修复只是擦除此 VM 并继续漏洞解决方案程序,但我真的想了解为什么会发生这种情况以及可能导致此问题的原因。我读过一些关于手动编辑和更新 WMI 对象的文档,但是我对 WMI 或 WMI 对象了解不够,因此无法自信和有效地做到这一点。这是一项非常简单的任务:更新或卸载 Paint3D。我只是不知道我会遇到这种情况,并且至少想了解发生了什么。

WMI 对象的截图显示了过时的 MSPaint 版本 WMI 对象的片段显示了当前的 MSPaint 版本,但 Paint3D 已完全卸载

编辑 1,2021 年 9 月 1 日上午 12:20:只是跟进一下,我尝试从系统中删除我的 AD 用户并进行干净的登录,但 Paint3D 仍然被删除,Microsoft Store 仍然无法运行。此问题仅特定于该特定桌面。

答案1

我的问题与 HEVCVideoExtension 有关,但其他方面类似。我从管理员 PowerShell 提示符中尝试了以下方法:

使用以下方法获取完整的包名称:Get-AppxPackage -AllUsers -Name "Microsoft.HEVCVideoExtension"

使用完整的包名称Microsoft.HEVCVideoExtension_1.0.41483.0_x64__8wekyb3d8bbwe尝试以下操作:

Remove-AppxPackage -AllUsers -Package "Microsoft.HEVCVideoExtension_1.0.41483.0_x64__8wekyb3d8bbwe"

就我而言,这失败了,因为旧/过时版本的安装是在机器上不再安装的用户帐户下完成的。

因此我彻底重置了 Windows 应用商店:

WSReset.exe

然后我重新运行了该Get-AppxPackage命令,确认重置已成功。确实成功了。

下次我启动 Windows 应用商店时,它花了很长时间进行初始化,但可以正常工作。

答案2

Windows 的过度膨胀软件可能很棘手,请尝试使用 PowerShell 将其删除。

以管理员身份运行 PowerShell,然后:

获取 AppxPackage Microsoft.MSPaint | 删除 AppxPackage

答案3

这是对我们有用的解决方案。

过时的 Windows Store 应用存在大量 Sev4 和 5 级漏洞。安全扫描报告称我们的 Windows Store 应用版本过旧。它通过扫描 WMI 对象找到了它。但机器显示的应用是最新的。因此,应用有两个版本(旧版和最新版)。没有任何东西可以帮助解决这个问题(应用卸载、Windows Store 重置等)。

这个问题是如何产生的又是另外一个故事了...但这里有解决方案。就像其中一条评论所说的那样,它归咎于损坏的用户配置文件。

假设您有:

  • 编号:91698
  • 标题:Microsoft Windows 编解码器库远程代码执行漏洞
  • 扫描结果:检测到 Microsoft 存在漏洞的 Microsoft.WebpImageExtension 版本“1.0.22753.0”

脚步:

  1. 确认有两个包 PowerShell:Get-WmiObject -class Win32_InstalledStoreProgram | Where-Object name -like "*WebpImageExtension*"

  2. 删除旧包

PowerShell:Remove-AppxPackage -AllUsers -Package Microsoft.WebpImageExtension_1.0.22753.0_x64__8wekyb3d8bbwe。

这是一个“神奇”的步骤。它将导致错误 0x80070002,但它会在注册表中创建一个我们稍后需要的条目“Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\EndOfLife\S-1-12-XXXXXXX with Troubled packaged”。

  1. 删除包含 Troubled 包的注册表项 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\EndOfLife\S-1-12-XXXXXXX。

  2. 确认只剩下一个包 PowerShell:运行 Get-WmiObject -class Win32_InstalledStoreProgram | Where-Object name -like "*WebpImageExtension*"。

相关内容