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

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

適用于:  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.集中
    • [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" = "公寓"
    • [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.集中
    • HKEY_CLASSES_ROOT\CLSID{ 2048EEE6-7FA2-11D0-9E6A-00A0C9138C29} "MICROSOFT OLE DB 資料列位置程式庫"
    • HKEY_CLASSES_ROOT\CLSID{ 2048EEE6-7FA2-11D0-9E6A-00A0C9138C29} \InprocServer32 "C:\Program Files\Common Files\System\Ole DB\oledb32.dll" "ThreadingModel" = "兩者"
    • 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. 執行就地升級:

    注意

    執行就地升級之前,請務必先備份您的資料。 如需有關執行就地升級之風險的詳細資訊,請參閱 More Information 一節。

    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
  • 程式 Files\Common Files\System\Ole DB\Oledb32.dll
  • 程式 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

如果此登錄機碼遺失,請將下列文字複製到文字檔中,並以副檔名副檔名儲存檔案,然後按兩下受影響電腦上的檔案,以傳回適當的專案。

針對 Windows 登錄編輯程式版本5.00:

[HKEY_CLASSES_ROOT\CLSID{ 352EC2B7-8B9A-11D1-B8AE-006008059382} \InProcServer32] @ = hex (2) :25,00,53,00,79,00,73,00,6d,00,65,00,6f,00,6f,00,74,00,53,25,00,74,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,70,00,.00,00,7a,00,00,.00,00,00,6c,00,
"ThreadingModel = 公寓"

狀態

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" = "公寓"

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

    @ = "已安裝的應用程式枚舉器"

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

    @ = "達爾文 App Publisher"

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

    @ = "SystemRoot% \System32\appwiz.cpl" (REG_EXPAND_SZ) "ThreadingModel" = 公寓 "

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

    "{352EC2B7-8B9A-11D1-B8AE-006008059382}" = "命令介面應用程式管理員"

  • [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}" = "達爾文 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

    列舉以取得新連結處理常式的清單。 這種處理常式似乎可能會為指定的專案(例如,在 [開始] 功能表、桌面或其他專案中)新增連結。

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

    讀取以判斷執行安裝程式後是否需要重新開機。 值的存在意味著必須重新開機 = = true。

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