获取“应用程序无法正确初始化”/ 3221225794错误执行批处理文件

时间:2014-08-06 06:04:31

标签: windows batch-file scheduled-tasks windows-server-2008-r2

计划任务附加到EventLog中的自定义事件,它执行以下行:

reconnect.cmd

  

c:\ windows \ system32 \ rasphone -f“phone_book.pbk”-d“vpn_connection”

     

net stop my_windows_service

     

net start my_windows_service

该任务通常正常运行且没有错误。但有时会返回错误The application failed to initialize properly (3221225794)。该任务配置为在system帐户下运行,因此它应具有运行该批处理脚本所需的所有权限。

为什么我一直收到此错误?是什么导致它,我该如何调试它?

编辑:从选项

开始

该任务使用"D:\"作为工作目录/从位置开始。 reconnect.cmd脚本位于"D:\"。这可能是原因吗?

2 个答案:

答案 0 :(得分:1)

我今天早些时候发布了这篇文章,介绍了如何解码错误Error 2147463168 when trying to bind to an AD User Object

//
// MessageId: STATUS_DLL_INIT_FAILED
//
// MessageText:
//
// {DLL Initialization Failed}
// Initialization of the dynamic link library %hs failed. The process is terminating abnormally.
//
#define STATUS_DLL_INIT_FAILED           ((NTSTATUS)0xC0000142L)

3221225794 = 0xC0000142(使用计算器)

这应该确定哪个进程(cmd或rasphone)和哪个dll。

您也可以从调试器开始。

windbg或ntsd(ntsd是一个控制台程序,可能已安装)。两者都来自Windows调试工具。

下载并安装适用于Windows的调试工具

http://msdn.microsoft.com/en-us/windows/hardware/hh852363

安装Windows SDK,但只需选择调试工具。

在C:\

中创建名为Symbols的文件夹

开始Windbg文件菜单 - 符号文件路径并输入

srv*C:\symbols*http://msdl.microsoft.com/download/symbols

然后

windbg -o -g -G C:\windows\system32\cmd.exe /k d:\batfile.bat

您可以按F12停止它,kb将显示调用堆栈(g继续程序)。如果出现错误,它也会停止并显示它们。

答案 1 :(得分:1)

不知道为什么,但在SYSTEM帐户下运行任务是原因。当我们简单地将帐户更改为local admin时,任务运行完美无缺。