计划任务附加到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:\"
。这可能是原因吗?
答案 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
时,任务运行完美无缺。