背景

背景

我有一台 50GB 硬碟的計算機,它幾乎已滿(我不會升級 C,因為是公司計算機),我只是檢查一下,目錄C:\Windows\Installer正在佔用更多空間。我嘗試使用 msizap.exe 刪除不需要的文件,但我不斷收到此錯誤:

MsiZap V 5.0
Copyright (c) Microsoft Corporation. All Rights Reserved

MsiZapInfo: Performing operations for user S-1-5-21-2700949330-2022528980-61785034-4992
Removing orphaned cached files.
   Error opening 66FC8F6438BA7A83992B5AEB05E74E27\InstallProperties subkey of Products key for S-1-5-18 user. Error: 2.
   Error opening 9AC087DE786021C34B9333962F4249F1\InstallProperties subkey of Products key for S-1-5-18 user. Error: 2.
FAILED to clear all data.

我現在能做什麼?

答案1

背景

此錯誤是由於預期的註冊表路徑不存在而引起的。

例如對於錯誤:Error opening 66FC8F6438BA7A83992B5AEB05E74E27\InstallProperties subkey of Products key for S-1-5-18 user. Error: 2.

該錯誤不會告訴您完整的登錄項目路徑;但確實為您提供了缺少條目所在使用者的 SID;在這種情況下S-1-5-18(即帳戶Local System)。

查看下面的註冊表HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\ProductsS-1-5-18如果不同,則用錯誤中的相關 SID 替換)我們看到許多子項目。

如果我們查看這些子項中的任何一個,我們可能會看到另一個子項InstallProperties.但是,對於具有錯誤訊息中的 GUID 的子項,該InstallProperties子項不存在。

$userSid = 'S-1-5-18'
$productId = '66FC8F6438BA7A83992B5AEB05E74E27'
$path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData'
$path = Join-Path -Path $path -ChildPath $userSid
$path = Join-Path -Path $path -ChildPath 'Products'
$path = Join-Path -Path $path -ChildPath productId
Get-ChildItem -Path $path
# Note that InstallProperties is not listed

解決方法

這涉及編輯註冊表,並且不基於任何記錄資訊...使用風險自負/ 採取合理的預防措施,例如在跑步前備份您關心的任何內容。

  1. 開啟登錄編輯程式(WinKey+ R>> RegeditOK
  2. 導覽至對應的產品金鑰條目;例如HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\66FC8F6438BA7A83992B5AEB05E74E27對於上述內容。
  3. 右鍵單擊並選擇導出;所以你要備份這個鍵的值。
  4. 刪除該鍵
  5. (對出現此錯誤的任何其他產品金鑰重複上述操作)
  6. 重新運行msizap g。現在應該可以正常運作了
  7. 雙擊您在步驟 3 中建立的 *.reg 文件,將該金鑰重新載入到登錄中

希望現在一切順利,並且解決方法沒有破壞任何內容......祝你好運!

相關內容