安裝適用於 COM+ 和 MS DTC 的 Microsoft 資訊安全佈告欄 MS05-051 之後,您可能會遇到各種問題

文章翻譯 文章翻譯
文章編號: 909444 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

在執行 Microsoft Windows XP、Microsoft Windows 2000 或 Windows Server 2003 的電腦上,在您安裝 Microsoft 安全性更新 MS05-051 中說明的重大更新後,可能會發生一個或多個問題,包括:
  • Windows Installer 服務無法啟動。
  • The Windows Firewall 服務無法啟動。
  • 「網路連線」資料夾是空的。
  • Windows Update 網站錯誤地建議您變更 Microsoft Internet Explorer 中的 [保留使用者資料] 設定。
  • 在 Microsoft Internet Information Services (IIS) 上執行的 Active Server Pages (ASP) 頁面傳回「HTTP 500 – 內部伺服器錯誤」的錯誤訊息。
  • Microsoft COM+ EventSystem 服務無法啟動。
  • COM+ 應用程式無法啟動。
  • Microsoft 元件服務 Microsoft Management Console (MMC) 樹狀結構的 [電腦] 節點無法展開。
  • 已驗證的使用者無法登入,並且在使用者套用 10 月份的安全性更新後出現空白螢幕。
  • 在伺服器叢集組態中,叢集服務可能沒有啟動。下列事件會記錄在叢集記錄檔中:

    ERR [NM] Couldn't establish connection point with Net Connection Manager, status 80070005. WARN [NM] Couldn't initialize Net Connection Manager advise sink, status 80070005 ERR [NM] Initialization failed -2147024891 (ERR [NM] 無法以網路連線管理員建立連接點,狀態 80070005。WARN [NM] 無法初始化網路連線管理員通知接收,狀態 80070005 ERR [NM] 初始化失敗 -2147024891)

  • 系統記錄檔可能記錄了類似下列的事件:

    事件識別碼:512
    來源:CryptSvc
    描述:
    The Cryptographic Services service failed to initialize the VSS backup "System Writer" object. (密碼編譯服務初始化 VSS 備份「系統寫入器」物件失敗)

    詳細資料:
    System Writer object failed to subscribe to VSS. (系統寫入器無法訂閱 VSS)

    System Error:
    Catastrophic failure (SendTSQLCommand() on d:\cs40\private\cs40\setup\ca_dll\database.cpp:733 發生錯誤。錯誤碼為 -2147418113,描述:重大錯誤)

  • 當您使用指令碼、WBEMTest.exe 公用程式或其他公用程式,嘗試連線到 Windows Management Instrumentation (WMI) 時,可能會發生拒絕存取的錯誤。發生錯誤時,%windir%\system32\wbem\logs\wbemprox.log 檔案包含類似下列的錯誤:
    ConnectViaDCOM, CoCreateInstanceEx resulted in hr = 0x80070005
  • 當您建立空白 COM+ 應用程式時,可能會收到下列 COM+ 1.0 類別目錄錯誤訊息:
    XACT_E_RECOVERYINPROGRESS (0x8004d082)

發生的原因

如果有任何 COM 或 COM+ 應用程式無法存取 COM+ 類別目錄檔案時,就會發生這個問題。應用程式無法存取 COM+ 類別目錄檔案的原因是,COM+ 類別目錄及檔案的預設權限已經變更,不再是預設值。在 Microsoft 安全性更新 MS05-051 之前,COM+ 類別目錄的明確權限不是必要的。COM+ 類別目錄檔是 .clb 檔案,位於 %windir%\registration 資料夾。根據預設,COM+ 類別目錄及檔案有下列權限:
摺疊此表格展開此表格
Administrators (系統管理員)SystemEveryone已驗證的使用者伺服器操作員
Windows 2000 非網域控制站完全控制完全控制讀取
Windows 2000 網域控制站完全控制完全控制修改讀取 & 執行
Windows Server 2003 非網域控制站完全控制完全控制讀取
Windows Server 2003 網域控制站完全控制完全控制讀取 & 執行

解決方案

根據 MS05-051 所做的安全性更新,必須擁有讀取層級 NTFS 檔案系統權限才能進入 %windir%\registration 資料夾。預設的權限包括「每個人」群組的「讀取」存取。如果變更了這個設定,應用程式和服務可能會出現意外的行為。選擇實作比較嚴格的 NTFS 安全性權限的組織應該考慮以群組成員的方式,授予必須存取 COM 功能的使用者、應用程式和服務讀取層級的權限。我們建議使用資料夾的預設設定以避免潛在的應用程式相容性。我們建議希望實作預設設定以外的設定的系統管理員,進行廣泛的應用程式相容性測試。 如需有關修改系統資料夾可能遇到的問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
885409 安全性設定指南支援
除了 NTFS 權限之外,還必須有「略過周遊檢查」權限。根據預設,這個權限授予給「每個人」群組。如同 NFTS 權限,使用者、應用程式和服務都必須以群組成員的方式授予這個權限。 如需有關「略過周遊檢查」使用者權限的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
823659 當您修改安全性設定和使用者權限指派時,可能會發生用戶端、服務和程式不相容的情形
要解決這個問題,必須還原 COM+ 類別目錄的預設權限。

對於執行 Windows 2000 或 Windows Server 2003 且不是網域控制站的電腦,請依照下列步驟執行:
  1. 在 %windir%/registration 資料夾,確認「每個人」群組擁有「讀取」權限。
  2. 在 %windir%/registration 資料夾,確認「系統」帳戶擁有「完全控制」權限。
  3. 在 %windir%/registration 資料夾,確認「系統管理員」群組擁有「完全控制」權限。
  4. 在 %windir%/registration 資料夾中的 .clb 檔案的進階安全性內容中,確認已選取 [允許來自父項的可繼承稽核項目可以傳播至此物件。包括明確定義於此的項目] 選項。
  5. 請確認「每個人」群組擁有下列權限之一:
    • 所有上層目錄的周遊權限 (「列出資料夾內容」),包括 %systemdrive%、%windir% 和 %windir%\registration
    • 「略過周遊檢查」使用者權限
    如果要將「略過周遊檢查」使用者權限指派給「每個人」群組,請執行下列步驟:
    1. 按一下 [開始],按一下 [執行],輸入 gpedit.msc,然後按一下 [確定]
    2. 依序展開 [電腦組態][Windows 設定][安全性設定][本機原則],然後展開 [使用者權限指派]
    3. 用滑鼠右鍵按一下 [略過周遊檢查],然後按一下 [內容]
    4. 按一下 [新增使用者或群組]
    5. 輸入 Everyone,然後按一下 [確定]

      注意 如果您收到的訊息指出,找不到名為 Users 的物件,請按一下 [物件類型],按一下以選取 [群組] 核取方塊,然後按兩次 [確定]
對於執行 Windows 2000 的網域控制站,請依照下列步驟執行:
  1. 在 %windir%/registration 資料夾,確認「已驗證的使用者」群組擁有「讀取 & 執行」權限。
  2. 在 %windir%/registration 資料夾,確認「伺服器操作員」群組擁有「修改」權限。
  3. 在 %windir%/registration 資料夾,確認「系統」帳戶擁有「完全控制」權限。
  4. 在 %windir%/registration 資料夾,確認「系統管理員」群組擁有「完全控制」權限。
  5. 在 %windir%/registration 資料夾中的 .clb 檔案的進階安全性內容中,確認已選取 [允許來自父項的可繼承權限可以傳播至此物件] 選項。
對於執行 Windows Server 2003 的網域控制站,請依照下列步驟執行:
  1. 在 %windir%/registration 資料夾,確認「每個人」群組擁有「讀取 & 執行」權限。
  2. 在 %windir%/registration 資料夾,確認「系統」帳戶擁有「完全控制」權限。
  3. 在 %windir%/registration 資料夾,確認「系統管理員」群組擁有「完全控制」權限。
  4. 在 %windir%/registration 資料夾中的 .clb 檔案的進階安全性內容中,確認已選取 [允許來自父項的可繼承稽核項目可以傳播至此物件。包括明確定義於此的項目。] 選項。
  5. 請確認「每個人」群組擁有下列權限之一:
    • 所有上層目錄的周遊權限 (「列出資料夾內容」),包括 %systemdrive%、%windir% 和 %windir%\registration
    • 「略過周遊檢查」使用者權限
    如果要將「略過周遊檢查」使用者權限指派給「每個人」群組,請執行下列步驟:
    1. 按一下 [開始],按一下 [執行],輸入 gpedit.msc,然後按一下 [確定]
    2. 依序展開 [電腦組態][Windows 設定][安全性設定][本機原則],然後展開 [使用者權限指派]
    3. 用滑鼠右鍵按一下 [略過周遊檢查],然後按一下 [內容]
    4. 按一下 [新增使用者或群組]
    5. 輸入 Everyone,然後按一下 [確定]

      注意 如果您收到的訊息指出,找不到名為 Users 的物件,請按一下 [物件類型],按一下以選取 [群組] 核取方塊,然後按兩次 [確定]
注意 系統可能稍後會在 %windir%/registration 資料夾中建立其他的 .clb 檔案。為了確保新的 .clb 檔案擁有適當的權限,請授與整個目錄的「讀取」權限,而非僅授與直接進入目前的 .clb 檔案的權限。您可以用 Cacls.exe 檔案,在受影響的電腦上將這些權限變更自動化,或輕鬆地將變更轉出至多台電腦。

對於執行 Windows 2000 或 Windows Server 2003 且不是網域控制站的電腦,請使用下列命令:
echo y| cacls %windir%\registration /G everyone:R system:F administrators:F
echo y| cacls %windir%\registration\*.clb /G everyone:R system:F administrators:F
對於執行 Windows 2000 的網域控制站,請使用下列命令:
echo y| cacls %windir%\registration /G "Authenticated Users":R "Server Operators":R system:F administrators:F
對於執行 Windows 2003 的網域控制站,請使用下列命令:
echo y| cacls %windir%\registration /G everyone:R system:F administrators:F
echo y| cacls %windir%\registration\*.clb /G everyone:R system:F administrators:F
注意 請確認 y 字元與縱線 (|) 字元之間沒有空格。如果字元之間有空格,命令就無法正確執行。

其他相關資訊

發生這個問題時,您可能會在事件記錄檔收到下列其中一則或多則事件:
  • 如果「網路服務戶帳號」沒有正確的權限,下列 EventSystem 事件可能會被記錄在事件記錄檔中:

    事件類型:Error
    事件來源:EventSystem
    事件類別目錄:(50)
    事件 ID:4609
    日期:<Date>
    時間:<Time>
    使用者:N/A
    電腦:Server
    描述:COM+ 事件系統在內部處理時偵測到錯誤的傳回碼。HRESULT was 80070005 from line xx of d:\qxp_slp\com\com1x\src\events\tier1\eventsystemobj.cpp. Please contact Microsoft Product Support Services to report this error. (HRESULT 是來自 d:\qxp_slp\com\com1x\src\events\tier1\eventsystemobj.cpp 第 xx 行的 80070005。請和「Microsoft 技術支援處」聯絡,回報這項錯誤)。

  • 如果「網路服務戶帳號」沒有正確的權限,下列 COM+ 事件可能會被記錄在事件記錄檔中:

    事件類型:資訊
    事件來源:COM+
    事件類別目錄:(117)
    事件 ID:778
    日期:<Date>
    時間:<Time>
    使用者:N/A
    電腦:Server
    描述:Application image dump failed. (應用程式影像傾印失敗)
    伺服器應用程式識別碼:<GUID>
    伺服器應用程式識別碼:<GUID>
    伺服器應用程式名稱:COM+ Explorer
    Error Code = 0x80004005 :未指定的錯誤
    COM+ 服務內部資訊:檔案:d:\qxp_slp\com\com1x\src\shared\util\svcerr.cpp,行:1259 Comsvcs.dll 檔案版本:ENU 2001.12.4414.308 shp
    請在 http://support.microsoft.com 查看說明及支援中心,以取得其他資訊。

  • 如果「網路服務戶帳號」沒有正確的權限,下列 COM+ 事件可能會被記錄在事件記錄檔中:

    事件類型:Error
    事件來源:COM+
    事件類別目錄:不明
    事件 ID:4689
    日期:<Date>
    時間:<Time>
    使用者:N/A
    電腦:Server
    描述:The run-time environment has detected an inconsistency in its internal state. This indicates a potential instability in the process that could be caused by the custom components running in the COM+ application, the components they make use of, or other factors.Error in d:\qxp_slp\com\com1x\src\comsvcs\package\cpackage.cpp(1184), hr = 80070005:InitEventCollector failed (執行階段環境偵測到內部狀態的不一致。這表示在 COM+ 中執行的自訂元件、這些元件所使用的元件或其他的因素,造成程序中潛在的不穩定。d:\qxp_slp\com\com1x\src\comsvcs\package\cpackage.cpp(1184) 發生錯誤,hr = 80070005: InitEventCollector 失敗)
    請在 http://support.microsoft.com 查看說明及支援中心,以取得其他資訊。

  • 如果您試圖瀏覽 IIS 服務上執行的 ASP 頁面,且沒有選取 Internet Explorer 中的 [顯示易懂的 HTTP 錯誤訊息] 選項,您可能會收到下列錯誤訊息:
    Server Application Error (伺服器應用程式錯誤)
    The server has encountered an error while loading an application during the processing of your request.Please refer to the event log for more detail information.Please contact the server administrator for assistance. (在處理您的要求期間,伺服器載入應用程式時發生問題。請參閱事件日誌以取得詳細資訊。請連絡伺服器管理員以取得協助)。
    HTTP 500 - 內部伺服器錯誤 Internet Explorer
    類似下列的事件也會被記錄到事件記錄檔中:

    事件類型:Error
    事件來源:DCOM
    事件類別目錄:None
    事件 ID:10010
    日期:<Date>
    時間:<Time>
    使用者:NT AUTHORITY\SYSTEM
    電腦:Server
    描述:伺服器 <GUID> 沒有在指定的等候逾時內登錄 DCOM。

  • 當您試圖手動啟動「元件服務」中的 COM+ 應用程式時,您可能會收到下列錯誤訊息:
    Catalog Error:An error occurred while processing the last operation.Error code 80080005 - Server execution failed.The event log may contain additional troubleshooting information. (類別錯誤:當處理最後作業時發生錯誤。錯誤碼:80080005 - 伺服器執行失敗。事件記錄檔可能包含其他疑難排解資訊)
    類似下列的事件也會被記錄到事件記錄檔中:

    事件類型:Error
    事件來源:DCOM
    事件類別目錄:None
    事件 ID:10010
    日期:<Date>
    時間:<Time>
    使用者:NT AUTHORITY\SYSTEM
    電腦:Server
    描述:伺服器 <GUID> 沒有在指定的等候逾時內登錄 DCOM。
    事件類型:Warning
    事件來源:W3SVC
    事件類別目錄:None
    事件 ID:36
    日期:<Date>
    時間:<Time>
    使用者:N/A
    電腦:Server
    描述:伺服器無法載入應用程式 '/LM/W3SVC/1/ROOT'。The error was 'Server execution failed '. (伺服器無法載入應用程式 '/LM/W3SVC/1/ROOT'。錯誤是「伺服器執行失敗」)
    若需此訊息的其他資訊,請造訪 Microsoft 線上支援網站:http://search.support.microsoft.com/search/?adv=1.

    如需詳細資訊,請參閱說明及支援中心,網址是:http://support.microsoft.com。

  • 當您試圖安裝一個應用程式或手動開啟 Windows Installer 服務時,您可能會收到下列錯誤訊息:
    無法存取 Windows Installer 服務。如果您在安全模式下執行 Windows,或者 Windows Installer 並未正確安裝,就會發生這個問題。請連絡您的支援人員以尋求協助。
  • Windows Firewall Service 可能無法存取,並出現下列錯誤碼:
    錯誤結果:0x80070005 ( -2147024891 ) ID Defined as :E_ACCESSDENIED Message Text :Access is denied. (拒絕存取)

重現問題的步驟

從 *.clb 檔案的檔案權限中,將系統帳戶和「每個人」帳戶移除。如果要執行這項操作,請依照下列步驟執行:
  1. 按一下 [開始][執行],鍵入 Explorer.exe c:\winnt\registration,然後按一下 [確定]
  2. 在 Windows Explorer,按一下 [內容],然後按一下 [安全性] 索引標籤。
  3. [登錄內容] 對話方塊中,按一下 群組和使用者名稱 下面的 [系統],然後再按一下 [進階]
  4. [登錄進階安全性設定] 對話方塊中,按一下 [移除],然後按一下 [確定]
  5. 重複步驟 3 及步驟 4,停止「每個人」帳戶對 .clb 檔案的存取權。

屬性

文章編號: 909444 - 上次校閱: 2008年8月12日 - 版次: 15.2
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 Service Pack 1
  • Microsoft Windows XP Professional SP1
  • Microsoft Windows XP Professional SP2
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server SP4
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional SP4
  • Microsoft Windows 2000 Server SP4
關鍵字:?
kbresolve kbtshoot kbprb KB909444
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com