卸載的程式仍然出現在 WMI 物件“WIN32_InstalledStoreProgram”中?

卸載的程式仍然出現在 WMI 物件“WIN32_InstalledStoreProgram”中?

注意:這是 StackOverflow 上原始貼文的轉發。我是由一位樂於助人的用戶引導到這裡的,我只是重新發布。

由於這個惱人的問題,我第一次建立了 StackOverflow 帳戶。我在目前的工作中解決了測試 PC 虛擬機上的漏洞,以測試一些新程序,其中一個漏洞涉及預先安裝的應用程式「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 個條目。一個是我更新的舊版本,另一個是我更新到的新版本。兩者均已卸載並確認已卸載。我卸載了一個單獨的應用程式(天氣)以查看 WMI 物件是否不會自動更新,但是在使用上述 Powershell 命令進行卸載和確認後,確認天氣應用程式已被卸載並作為 WMI 物件中的條目刪除,而Microsoft.MSPaint 的兩個不同版本仍然存在。我還卸載了普通版本的“Paint”,以防出現問題,但兩個條目仍然存在。

現在是棘手的部分。每次我嘗試安裝 Paint3D 時,Microsoft Store 都會給予不同的錯誤訊息。我相信這是由於 MS Store 也查詢相同的 WMI 對象,並且看到我有兩個“版本”的“Paint3D”,因此無法安裝任何內容。我對這個小問題束手無策。我計劃實施的修復只是擦除此虛擬機器並繼續執行漏洞解決程序,但我確實想了解為什麼會發生這種情況以及可能導致此問題的原因。我已經閱讀了一些有關手動編輯和更新 WMI 物件的文檔,但是我對 WMI 或 WMI 物件了解不夠,無法自信和有效。這是一個非常簡單的任務:更新或卸載 Paint3D。我根本不知道我會遇到這種情況,並且想至少了解發生了什麼。

顯示過時的 MSPaint 版本的 WMI 物件片段 顯示目前 MSPaint 版本的 WMI 物件片段,但 Paint3D 已完全卸載

編輯 1, 12:20 AM 9/1/2021:只是後續行動,我嘗試從系統中刪除我的 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 應用程式商店應用程式相關的 Sev 4 和 5 漏洞。安全掃描抱怨我們有舊版本的 Windows 應用程式商店應用程式。它透過掃描 WMI 物件找到了它。但機器顯示了最新的應用程式。因此,有兩個版本的應用程式(舊版和最新版)。沒有任何方法可以幫助解決該問題(應用程式卸載、Windows 應用程式商店重設等)。

這個問題是如何產生的則是另一回事......但這是解決方案。正如其中一條評論所述,它歸結為損壞的用戶配置文件。

假設您有:

  • 號碼:91698
  • 標題:Microsoft Windows 編解碼器庫遠端程式碼執行漏洞
  • 掃描結果:Microsoft 偵測到易受攻擊的 Microsoft.WebpImageExtension 版本“1.0.22753.0”

腳步:

  1. 確認有兩個 PowerShell 套件: Get-WmiObject -class Win32_InstalledStoreProgram |其中物件名稱 - 如“*WebpImageExtension*”

  2. 刪除舊包

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

這是「神奇」的一步。這將導致錯誤0x80070002,但它會在註冊表中建立一個項目,我們稍後需要該項目「Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\EndOfLifeXXX\S-1-12-XX打包有問題」 」。

  1. 刪除已打包有問題的登錄項目 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\EndOfLife\S-1-12-XXXXXXX。

  2. 確認 PowerShell 中只剩下一個套件:執行 Get-WmiObject -class Win32_InstalledStoreProgram |其中物件名稱 - 如「*WebpImageExtension*」。

相關內容