带有 GUI 问题的计划任务

Chr*_*s_K 7 windows scheduled-task batch-file graphical-user-interface

当任务具有 GUI 时,在 Windows 2003 中运行计划任务是否存在问题?我有一个在 Windows 2000 中运行良好,但不能在 Windows 2003 上运行。

细节:

我有一个 .bat 作业,多年来在旧的 Windows 2000 服务器上全天每小时运行一次。我终于在上周退役了那台服务器,并将工作(以及相关的程序和文件)移到了 Windows 2003 服务器上。

.bat 文件首先调用几个 cmd 行应用程序,但最后一步是基于 GUI 的 .NET 应用程序(它对图像文件执行一些 OCR,然后自行关闭)。

在新服务器上,以计划任务所有者身份登录,我可以从命令行成功运行 .bat 文件。

在新服务器上,再次以计划任务所有者的身份登录,我可以在计划程序中右键单击该任务并成功运行它。此任务只是运行相同的 .bat 文件。

如果计划任务所有者登录到 2003 服务器并且任务是从远程服务器(用户启动计划任务并连接到此服务器的位置)启动的,它也会成功运行。

如果计划任务所有者不能登录到该服务器,则计划任务在GUI应用程序启动步骤失败。我们无法收到任何错误消息。从不同的会话/用户帐户运行 ProcMon 监控该用户帐户也没有出现任何问题。

目前,我可怕的解决方法是让计划任务所有者在屏幕锁定的情况下登录控制台。当然,每次重新启动服务器时,这都会变得很痛苦......

计划任务所有者是我们的“域服务帐户”,并且正在处理所有其他服务器上的所有其他任务。它没有被锁定或类似的东西。

我什至尝试修改任务计划程序以检查“允许服务与桌面框交互”,但这并没有改变任何东西。(是的,我在更改后重新启动了服务。)

想法?

更新(1/19/2010)

我需要澄清一下:我提到的 .NET 应用程序做了很多工作。直到它需要打开一个窗口时,应用程序才会挂起。我们可以通过它留下的日志条目来查看应用程序的进度,因此我们可以看到它运行良好,最后一个日志条目是“即将启动 OCR”……这就是她挂起的地方。

小智 5

您是否可以访问用于调试的程序的源代码?听起来 Windows 创建失败了,因为除非任务所有者登录到计算机,否则程序没有可用的 Windows 桌面。这篇文章http://msdn.microsoft.com/en-us/library/ms687105%28VS.85%29.aspx描述了窗口站和桌面创建的过程。