Distributed Transaction Coordinator 服务因 3221229584 (0xC0001010) 服务性错误而停止。
2007-06-10 15:13
问题解决:
setp 1
停止相关服务
MSDTC_1.bat
@echo off if {%1}=={} @echo Syntax: MSDTC1 Filename&goto :EOF setlocal ENABLEDELAYEDEXPANSION set filename=%1 if exist %filename% del /q %filename% ( @echo Alerter @echo EventSystem @echo Browser @echo TrkWks @echo Dnscache @echo Eventlog @echo PolicyAgent @echo dmserver @echo Messenger @echo Netlogon @echo NtLmSsp @echo Netman @echo PlugPlay @echo RpcSs @echo RpcLocator @echo NtmsSvc @echo SamSs @echo lanmanserver @echo SENS @echo Schedule @echo LmHosts @echo winmgmt @echo Wmi @echo W32Time @echo lanmanworkstation )>"%TEMP%/MSDTC1.TMP" call :stopdtc>nul 2>&1 for /f "Tokens=*" %%L in ('reg query HKLM/System/CurrentControlSet/Services^|FINDSTR /I /B /L /C:"HKEY_LOCAL_MACHINE"') do ( set line=%%L set key=HKLM!LINE:~18! call :subkey "!key!" call :testsvc ) endlocal goto :EOF :stopdtc sc stop msdtc goto :EOF :testsvc for /f "Tokens=*" %%c in ('@echo !svc!^|findstr /I /B /E /L /G:"%TEMP%/MSDTC1.TMP"') do goto :EOF set /a start=3 set /a type=0 call :getstart>nul 2>&1 call :gettype>nul 2>&1 if %type% LSS 16 goto :EOF if %start% NEQ 2 goto :EOF sc config !svc! start= demand @echo sc config !svc! start= auto>>%filename% goto :EOF :gettype for /f "Tokens=2,3" %%x in ('reg query "HKLM/System/CurrentControlSet/Services/!svc!" /V type^|FIND "REG_DWORD"') do ( set /a type=%%y ) goto :EOF :getstart for /f "Tokens=2,3" %%x in ('reg query "HKLM/System/CurrentControlSet/Services/!svc!" /V start^|FIND "REG_DWORD"') do ( set /a start=%%y ) goto :EOF :subkey set svc=%~nx1
重启机器
step 2
删除关联的注册表项及重新安装 msdtc 组件
MSDTC_2.bat
@echo off setlocal @echo %WINDIR%/System32/msdtc.exe -uninstall %WINDIR%/System32/msdtc.exe -uninstall 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 %WINDIR%/System32/msdtc.exe -install %WINDIR%/System32/msdtc.exe -install endlocal goto :EOF :delkey set key=%1 call :delkeyq %key% >nul 2>&1 @echo. goto :EOF :delkeyq REG DELETE %key% /F
step 3
restlog
MSDTC_3.bat
@echo off if {%1}=={} @echo Syntax: MSDTC3 Filename&goto :EOF if not exist %1 Syntax: MSDTC3 Filename - %1 was NOT found.&goto :EOF setlocal set filename=%1 for /f "Tokens=*" %%r in ('type %filename%') do ( %%r ) reg add "HKLM/SOFTWARE/Microsoft/MSDTC/XADLL" /F regsvr32 mtxoci.dll endlocal
运行完,看看日志
已成功安装
Microsoft Distributed Transaction Coordinator
服务。