新增/移除程式工具不正確地顯示已安裝的程式

本文提供下列問題的解決方案:控制台 中的 [新增/移除程式] 工具不正確地顯示已安裝的程式。

適用於: Windowsxp
原始 KB 編號: 266668

徵狀

當您安裝和卸載程式時,控制台 中的 [新增/移除程式] 工具可能會不正確地顯示已安裝的程式。 [ 目前安裝的程式] 方塊可能只包含單一文字字串,或在程序專案之前顯示大型空白空間。 其他顯示問題可能包括沒有列出的程式。 此外,可能會出現下列其中一個錯誤訊息:

訊息 1

發生意外的錯誤。 類別未註冊
res://appwiz.cpl/listbox.htc
行:225

訊息 2

物件不支援這個屬性或方法 res://appwiz.cpl/default.hta
行:75

原因

如果程式的卸載程式不正確地移除 Windows 和 [新增/移除程式] 工具所使用的登錄專案,就可能發生此問題。

解決方案

重要事項

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為了有多一層保護,請先備份登錄再進行修改。 如此一來,您就可以在發生問題時還原登錄。 如需進一步了解如何備份及還原登錄的相關資訊,請參閱如何在 Windows 中備份及還原登錄

如果要解決這個問題,請依照下列步驟執行。

  1. 按兩下 [開始],按兩下 [ 執行],然後輸入 CMD

  2. 在提示字元中, 輸入 REGSVR32 APPWIZ.CPL

  3. 如果失敗,請尋找以下所列的登錄專案。 若要解決此問題,請檢查登錄中是否有下列機碼和值。 重新建立任何遺漏的索引鍵或值。 這些金鑰會使用系統驅動器號。 您可能必須調整這些專案,以符合計算機的設定。

    • [HKEY_CLASSES_ROOT\CLSID{00000535-0000-0010-8000-00AA006D2EA4}]“ADODB.Recordset”
    • [HKEY_CLASSES_ROOT\CLSID{00000535-0000-0010-8000-00AA006D2EA4}\InprocServer32]“C:\Program Files\Common Files\System\ado\msado15.dll”
    • [HKEY_CLASSES_ROOT\CLSID{00000535-0000-0010-8000-00AA006D2EA4}\InprocServer32]“ThreadingModel”=“Apartment”
    • [HKEY_CLASSES_ROOT\CLSID{00000535-0000-0010-8000-00AA006D2EA4}\ProgID]“ADODB.Recordset.2.5”
    • [HKEY_CLASSES_ROOT\CLSID{00000535-0000-0010-8000-00AA006D2EA4}\VersionIndependentProgID]“ADODB.Recordset”
    • HKEY_CLASSES_ROOT\CLSID{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29 } “Microsoft OLE DB Row Position Library”
    • HKEY_CLASSES_ROOT\CLSID{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}\InprocServer32 “C:\Program Files\Common Files\System\Ole DB\oledb32.dll” “ThreadingModel”=“Both”
    • HKEY_CLASSES_ROOT\CLSID{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}\ProgID “RowPosition.RowPosition.1”
    • HKEY_CLASSES_ROOT\CLSID{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}\VersionIndependentProgID “RowPosition.RowPosition”
    • [HKEY_CLASSES_ROOT\CLSID{352EC2B7-8B9A-11D1-B8AE-006008059382}\InProcServer32] %SystemRoot%\System32\appwiz.cpl
  4. 請遵循下列其中一個程式中的步驟,因為它會套用至您的計算機,然後測試 以判斷此問題是否已解決。 如果問題已解決,請略過其餘步驟。 如果問題未解決,請移至步驟 5。

    • 若要在安裝 Internet Explorer 6.0 時解決此問題,請修復 Internet Explorer 6.0:

      1. 按一下 [開始],再按一下 [執行]

      2. 在 [開啟] 塊中貼上下列命令,然後按兩下 [ 確定]

        rundll32 setupwbv.dll, IE6Maintenance C:\Program Files\Internet Explorer\Setup\SETUP.EXE /g C:\WINDOWS\IE Uninstall Log.Txt
        

        由於此命令會區分大小寫,因此 Microsoft 建議您複製本文中的命令,然後在 [開啟] 方塊中貼上命令。

    • 若要在安裝 Internet Explorer 5.0 或 5.5 時解決此問題,請修復 Internet Explorer 5.0 或 5.5:

      1. 按一下 [開始],再按一下 [執行]

      2. 在 [開啟] 塊中貼上下列命令,然後按兩下 [ 確定]

        rundll32 setupwbv.dll, IE5Maintenance C:\Program Files\Internet Explorer\Setup\SETUP.EXE /g C:\WINDOWS\IE Uninstall Log.Txt
        

        由於此命令會區分大小寫,因此 Microsoft 建議您複製本文中的命令,然後在 [開啟] 方塊中貼上命令。

  5. 執行就地升級:

    注意事項

    執行就地升級之前,請確定您已備份數據。 如需執行就地升級風險的詳細資訊,請參閱詳細資訊一節。

    1. 從 \I386 目錄執行 Winnt32.exe。
    2. 當安裝程式畫面出現時,請繼續升級。
    3. 允許安裝完成。

如果 [新增/移除程式] 工具仍然無法正常運作、未顯示任何內容,或如果您想要嘗試修正此問題,而不升級至較新版本的 Internet Explorer,請檢查下列登錄機碼以確定它們包含專案:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Management\ARPCache

注意事項

如果先前的登錄機碼空白,[新增/移除程式] 工具也可能是空白的。

使用命令行REGSVR32 [path\filename] 註冊下列每個檔案:

  • %systemroot%\System32\Appwiz.cpl
  • %systemroot%\System32\Mshtml.dll
  • %systemroot%\System32\Jscript.dll
  • %systemroot%\System32\Msi.dll
  • Program Files\Common Files\System\Ole DB\Oledb32.dll
  • Program Files\Common Files\System\Ado\Msado15.dll
  • %systemroot%\System32\Msdart32.dll [無法註冊]
  • %systemroot%\System32\Mshtmled.dll
  • %systemroot%\System32\Mswstr10.dll [無法註冊]

如果 [新增/移除程式] 工具顯示不完整的資訊或是空白,請確認檔案日期。 可能的話,請註冊下列檔案:

  • %systemroot%\System32\Gdi32.dll [無法註冊]
  • %systemroot%\System32\User32.dll [無法註冊]
  • %systemroot%\System32\Msvcrt.dll [無法註冊]
  • %systemroot%\System32\Ole32.dll
  • %systemroot%\System32\Shlwapi.dll [無法註冊]
  • %systemroot%\System32\Imm32.dll [無法註冊]
  • %systemroot%\System32\Indicdll.dll [無法註冊]
  • %systemroot%\System32\Urlmon.dll
  • %systemroot%\System32\Version.dll [無法註冊]
  • %systemroot%\System32\Lz32.dll [無法註冊]
  • %systemroot%\System32\Comctl32.dll [無法註冊]
  • %systemroot%\System32\Clbcatq.dll
  • %systemroot%\System32\Oleaut32.dll
  • %systemroot%\System32\Mlang.dll
  • %systemroot%\System32\Shell32.dll
  • %systemroot%\System32\Shdoclc.dll [無法註冊]
  • %systemroot%\System32\NetapI32.dll [無法註冊]
  • %systemroot%\System32\Secur32.dll [無法註冊]
  • %systemroot%\System32\Netrap.dll [無法註冊]
  • %systemroot%\System32\Samlib.dll [無法註冊]
  • %systemroot%\System32\Ws2_32.dll [無法註冊]
  • %systemroot%\System32\Ws2help.dll [無法註冊]
  • %systemroot%\System32\Wldap32.dll [無法註冊]
  • %systemroot%\System32\Dnsapi.dll [無法註冊]
  • %systemroot%\System32\Wsock32.dll [無法註冊]
  • %systemroot%\System32\Plugin.ocx
  • %systemroot%\System32\Wininet.dll [無法註冊]
  • %systemroot%\System32\Crypt32.dll [無法註冊]
  • %systemroot%\System32\Msasn1.dll [無法註冊]
  • %systemroot%\System32\Msls31.dll [無法註冊]
  • %systemroot%\System32\Imgutil.dll
  • %systemroot%\System32\Cscui.dll
  • %systemroot%\System32\Cscdll.dll [無法註冊]

如果 [新增/移除程式] 工具可以繪製對話方塊使用者介面,但未顯示任何已安裝的程式內容,請檢查登錄中是否有下列機碼:

HKEY_CLASSES_ROOT\CLSID\{352EC2B7-8B9A-11D1-B8AE-006008059382}\InProcServer32

如果遺漏此登錄機碼,請將下列文字複製到文本檔、使用.reg擴展名儲存盤案,然後按兩下受影響電腦上的檔案以傳回適當的專案。

針對 Windows 登錄 編輯器 5.00 版:

[HKEY_CLASSES_ROOT\CLSID{352EC2B7-8B9A-11D1-B8AE-006008059382}\InProcServer32] @=hex (2) :25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,7 3,00,74,00,65,00,6d,00,33,00,32,00,5c,00,61,00,70,00,00 70,00,77,00,69,00,7a,00,2e,00,63,00,70,00,6c,00,00,00,00
“ThreadingModel=Apartment”

狀態

Microsoft 已確認這是適用於 一節中所列的 Microsoft 產品問題。

下列清單包含新增/移除程式所使用的所有登錄機碼。 這些金鑰必須透過註冊 Appwiz.cpl 來設定,但此處提供這些密鑰以供交叉參考,以確認註冊已順利完成。

  • [HKEY_CLASSES_ROOT\CLSID{352EC2B7-8B9A-11D1-B8AE-006008059382}]

    @=“%DESC_ShellAppMgr%”

  • [HKEY_CLASSES_ROOT\CLSID{352EC2B7-8B9A-11D1-B8AE-006008059382}\InProcServer32]

    @=“SystemRoot%\System32\appwiz.cpl” (REG_EXPAND_SZ) “ThreadingModel”=“Apartment”

  • [HKEY_CLASSES_ROOT\CLSID{0B124F8C-91F0-11D1-B8B5-006008059382}]

    @=“Installed Apps Enumerator”

  • [HKEY_CLASSES_ROOT\CLSID{CFCCC7A0-A282-11D1-9082-006008059382}]

    @=“Darwin App Publisher”

  • [HKEY_CLASSES_ROOT\CLSID{CFCCC7A0-A282-11D1-9082-006008059382}\InProcServer32]

    @=“SystemRoot%\System32\appwiz.cpl” (REG_EXPAND_SZ) “ThreadingModel”=Apartment”

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]

    “{352EC2B7-8B9A-11D1-B8AE-006008059382}”=“Shell 應用程式管理員”

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\Publishers\Darwin App Publisher] @=“{CFCCC7A0-A282-11D1-9082-006008059382}”

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]“{CFCCC7A0-A282-11D1-9082-006008059382}”=“Darwin App Publisher”

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\InProcCPLs]“appwiz.cpl”=“”

ARP 執行後所使用的登錄專案

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AppInstallPath

    讀取 INF 檔案。 程式代碼會讀取 INF 檔名。 使用的 INF 區段為 AppInstallList

  • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer\Terminal Server\EnableAdminRemote

    當 ARP 正在執行時,設定為 1。 告知 TS ARP 正在執行。 當 ARP 結束時設定為 0。

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Management\Publishers 列舉應用程序發行者

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Wx86\cmdline

    讀取以判斷是否已啟用 wx86。

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\NewShortcutHandlers

    列舉以取得 new-link 處理程式的清單。 看起來這些處理程式可能會新增指定項目的連結,例如,新增至 [開始] 功能表、桌面或其他專案。

  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Shutdown\ForceReboot

    讀取以判斷執行安裝程序之後是否需要重新啟動。 值的存在表示必須重新啟動 == true。

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\MS-DOSOptions