已卸载的Paint3D仍出现在WMI对象WIN32_InstalledStoreProgram中是什么原因?
问题底层成因
Win32_InstalledStoreProgram这个WMI类的更新逻辑依赖UWP应用安装/卸载流程的主动回调,不是系统实时扫描生成的。QID 91774对应的旧版本Paint3D属于预装UWP应用,其早期安装包的卸载、升级逻辑存在缺陷,升级时不会自动删除旧版本对应的WMI条目,卸载时也只会清理当前激活版本的WMI条目,就会导致多版本条目残留问题。- 你观察到其他应用(比如天气)卸载后WMI条目正常消失,是因为这些应用的安装包逻辑完整,卸载时正常触发了WMI条目删除回调。
- 微软商店安装Paint3D时报错的原因和你的推测一致:商店安装UWP应用前会校验系统内同包名的安装记录,WMI中存在多条不一致的同包名条目时,会触发校验逻辑冲突,导致安装失败。
无需重置虚拟机的修复方案
- 以管理员身份启动PowerShell
- 先确认系统中无残留的Paint3D安装包,执行命令:
Get-AppxPackage -AllUsers *Microsoft.MSPaint*
如果有返回结果,先执行卸载命令:Get-AppxPackage -AllUsers *Microsoft.MSPaint* | Remove-AppxPackage -AllUsers - 清理WMI中的残留条目,执行命令:
Get-WmiObject -Class Win32_InstalledStoreProgram | Where-Object {$_.Name -like "*Microsoft.MSPaint*"} | Remove-WmiObject
- 执行命令重置微软商店缓存:
wsreset.exe - 重启虚拟机后即可正常安装Paint3D,安装完成后再执行漏洞扫描就不会再出现旧版本误报问题。
内容的提问来源于stack exchange,提问作者BurgundianM
相关产品推荐
相关产品推荐

