我有一个在 Windows Server 2003 上运行的 .NET 控制台应用程序,作为计划任务。
这使用 Process 类来运行另一个小控制台应用程序,但它使用 Process.StartInfo.Username 来模拟用户来运行它。
如果在管理员的计划任务中模拟的帐户,那么它可以正常工作,但如果不是,那么我会收到错误:
'应用程序初始化失败(0xc0000142)'</p>
我曾尝试让用户“作为批处理作业登录”和“本地登录”,但这似乎没有任何效果。控制台应用程序确实以模拟用户身份启动,但随后失败。
查看 Process Monitor,它失败之前的最后一个事件是:
Tool1.exe - 加载映像 - C:\WINDOWS\system32\kernel32.dll - 成功
我已经运行了 Depends on the tool,它报告这是错误:
GetProcAddress(0x77E40000 [c:\windows\system32\KERNEL32.DLL], "FlsAlloc") 从地址 0x7900746D 的 "c:\windows\system32\MSCOREE.DLL" 调用并由线程 1 返回 0x77E6B49C。退出 "c:\stfinstall \stf\tools\tool1\TOOL1.EXE"(进程 0xB3C),线程 1 的代码为 1282 (0x502)。
如果有人知道可能导致此错误的原因,或者更好的是,我该如何解决它,请告诉我!
也欢迎提出替代方法的建议
谢谢 :)