当任务有一个GUI时,在Windows 2003中运行计划任务是否存在问题? 我有一个在Windows 2000中工作正常,但不会在Windows 2003上运行。
细节:
我有一个.bat作业,在一台旧的Windows 2000服务器上,一整天都会运行很多年。 上个星期我终于退休了,并把作业(和相关的程序和文件)移到了Windows 2003服务器上。
.bat文件首先调用几个cmd行应用程序,但最后一步是基于GUI的.NET应用程序(它在图像文件上执行一些OCR,然后closures)。
在新的服务器上,以“计划任务”所有者的身份login,我可以成功地从命令行运行.bat文件。
从新服务器再次以“计划任务”所有者身份login,我可以右键单击“计划程序”中的任务并成功运行该任务。 这个任务只是运行相同的.bat文件。
如果计划任务所有者login到2003服务器,并且从远程服务器(用户启动计划任务并连接到此服务器)启动该任务,它也将成功运行。
如果计划的任务所有者未login到此服务器,那么在启动GUI应用程序的步骤中计划的任务将失败。 我们不能得到任何错误消息。 从监视该用户帐户的其他会话/用户帐户运行ProcMon也没有发现任何东西。
目前,我可怕的解决办法是让屏幕locking的计划任务所有者login到控制台。 当然,这个服务器每次重启都会变成痛苦的
计划的任务所有者是我们的“域服务帐户”,并与所有其他服务器上的所有其他任务一起工作。 它没有被locking或者类似的东西。
我什至尝试修改任务计划程序来检查“允许服务与桌面框交互”,但没有任何改变。 (是的,我改变后重新启动了服务。)
思考?
更新(1/19/2010)
我需要澄清一点:我提到的.NET应用程序做了一堆工作。 直到它需要打开一个应用程序然后挂起的窗口。 我们可以通过它留下的日志条目来查看应用程序的进度,所以我们可以看到它在最后一个日志条目“即将启动OCR”的情况下正常工作…并且这是她挂起的位置。
你有权访问debugging程序的源代码吗? 这听起来像创build窗口失败,因为没有Windows桌面可用的程序,除非任务的所有者login到机器。 本文http://msdn.microsoft.com/en-us/library/ms687105%28VS.85%29.aspx描述了窗口站和桌面创build的过程。
任务设置是否在特定目录中启动? 权限被正确设置在正在读/写的目录中。
我假设任务中的“运行方式”设置正确(请检查基本信息!:))
您是否检查过以确保该帐户正在运行,该任务被授予“作为批处理作业login”的权限(本地安全策略\本地策略\用户权限分配\作为批处理作业login)
这里的问题是你正在运行的程序需要一个GUI。 任务没有Windows GUI。 所以如果你可以在没有GUI的情况下运行程序,那么你会没事的。