此问题在我们安装的时候,经常出现,有些时候,K3系统也受此影响。因为这个问题没有解决掉,在我们登陆客户端,或者主控台的时候,会出现组件错误,可者说无法找到加密服务器,或者没有任何反映。多半数的人可能会认为软件没有安装好,其实不然,就是这个问题的根源所在。
所以我们平时在安装金蝶前,检测通过所有的组件后,还是要去看一下,组件服务里的我的电脑是不是正常运行的。如果发现是红色的,那说明没有启动起来,但是如果是没有启动,那么如何才能够重起开启服务呢。
下面是常用的一种方法:
第一:停止MSDTC服务:开始--运行--net stop msdtc
第二:卸载MSDTC服务:开始--运行--msdtc -uninstall
第三:重新安装MSDTC服务:开始--运行--msdtc -install
最后通过命令重起服务:开始--运行--msdtc -start 搞定收工。
如果以上方法失效不行,那么你要采用宁波金蝶服务中心制作的批处理文件了。
可以复制以下代码,另存为批处理文件,直接运行。
批文件1:
@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 HKLMSystemCurrentControlSetServices^|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 "HKLMSystemCurrentControlSetServices!svc!" /V type^|FIND "REG_DWORD"') do (
set /a type=%%y
)
goto :EOF
:getstart
for /f "Tokens=2,3" %%x in ('reg query "HKLMSystemCurrentControlSetServices!svc!" /V start^|FIND "REG_DWORD"') do (
set /a start=%%y
)
goto :EOF
:subkey
set svc=%~nx1
批文件2:
@echo off
setlocal
@echo %WINDIR%System32msdtc.exe -uninstall
%WINDIR%System32msdtc.exe -uninstall
call :delkey "HKCRCID"
call :delkey "HKLMSYSTEMCurrentControlSetServicesMSDTC"
call :delkey "HKLMSYSTEMControlSet001ServicesMSDTC"
call :delkey "HKLMSYSTEMControlSet002ServicesMSDTC"
call :delkey "HKLMSoftwareMicrosoftMSDTC"
@echo %WINDIR%System32msdtc.exe -install
%WINDIR%System32msdtc.exe -install
endlocal
goto :EOF
:delkey
set key=%1
call :delkeyq %key% >nul 2>&1
@echo.
goto :EOF
:delkeyq
REG DELETE %key% /F
第三步:msdtc3.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 "HKLMSOFTWAREMicrosoftMSDTCXADLL" /F
regsvr32 mtxoci.dll
endlocal
打完收工,基本上可以99%搞定,当然也有特殊情况存在啦!!