萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Windows Server 2003 教學

MS DTC 事務管理器無法啟動 (Event ID 4112/7024) 解決方案:重新註冊 msdtc 組件批次檔

Windows 事件檢視器記錄「無法啟動 MS DTC 事務管理器」(Event ID 4112,來源 MSDTC) 及「Distributed Transaction Coordinator 服務因 0xC0001010 錯誤停止」(Event ID 7024),導致分散式交易、SQL Server Linked Server、COM+ 應用程式失效。根因通常為 MSDTC 註冊表損毀或組件異常。提供一鍵修復批次檔。

錯誤現象

  • 服務管理單元 (services.msc) 中「Distributed Transaction Coordinator」顯示「已停止」,手動啟動隨即失敗。
  • 事件日誌:
    Event ID 4112: 無法啟動 MS DTC 事務管理器。
    Event ID 7024: Distributed Transaction Coordinator 服務因 3221229584 (0xC0001010) 服務性錯誤而停止。
  • 依賴 MSDTC 的應用(SQL Server 分散式交易、BizTalk、COM+ 元件)報錯:MSDTC on server '...' is unavailable。

一鍵修復批次檔 (FixMSDTC.bat)

將以下內容存為 FixMSDTC.bat,以系統管理員身分執行:

@echo off
setlocal

echo 正在解除安裝 MSDTC...
%WINDIR%\System32\msdtc.exe -uninstall

echo 正在清除相關註冊表項...
call :delkey "HKCR\CID"
call :delkey "HKLM\SYSTEM\CurrentControlSet\Services\MSDTC"
call :delkey "HKLM\SYSTEM\ControlSet001\Services\MSDTC"
call :delkey "HKLM\SYSTEM\ControlSet002\Services\MSDTC"
call :delkey "HKLM\Software\Microsoft\MSDTC"

echo 正在重新安裝 MSDTC...
%WINDIR%\System32\msdtc.exe -install

endlocal
goto :EOF

:delkey
set key=%1
call :delkeyq %key% >nul 2>&1
echo 已處理 %key%
goto :EOF

:delkeyq
REG DELETE %key% /F

執行後驗證

  1. 開啟 services.msc,確認「Distributed Transaction Coordinator」狀態為「已啟動」,啟動類型為「自動」。
  2. 事件檢視器 → 系統日誌,應出現:
    已成功安裝 Microsoft Distributed Transaction Coordinator 服務。 (Event ID 7036/7040 等)
  3. 執行 dtcping 或元件服務 (comexp.msc) → 元件服務 → 電腦 → 我的電腦 → Distributed Transaction Coordinator → 本地 DTC → 右鍵屬性 → 「測試連線」驗證分散式交易功能正常。

適用範圍與注意事項

  • 適用:Windows Server 2003/2008/2008 R2/2012/2012 R2、Windows XP/Vista/7/8/10(路徑一致)。
  • 執行前建議備份註冊表(regedit → 檔案 → 匯出)。
  • 若在叢集環境,需在所有節點執行並協調資源群組遷移。
  • 若修復後仍失敗,檢查:
    — 網路連通性(RPC 動態埠範圍、防火牆 135/動態埠)。
    — 叢集資源「分散式交易協調器」是否正確配置。
    — 磁碟空間、磁碟錯誤(chkdsk)。

此批次檔為經典 MSDTC 修復標準流程,屬微軟官方知識庫 (KB 817064、KB 300443) 推薦做法,建議納入伺服器維運標準作業程序 (SOP)。

copyright © 萬盛學電腦網 all rights reserved