是否可以(如果是,如何)在Server 2008中设置一个任务(控制台应用程序),以便它既可以在用户登录时运行,也可以在没有用户登录时运行,如果用户登录(本地或通过RDP),则在程序运行时控制台出现在屏幕上吗?
即。程序应该在定义的用户上下文下运行,并将状态消息写入标准控制台窗口的stdout。这个控制台窗口要么显示(如果定义的用户当前在本地或通过RDP登录),要么不显示(但应用程序仍在运行)。
我可以访问控制台应用程序的源代码,所以如果它需要一些额外的代码(比如专门打开一个新的控制台窗口或什么的),那就没有问题了。
目前,我可以将任务设置为“只在用户登录时运行”,这将在用户登录(本地或RDP)时运行应用程序,然后我可以看到状态消息,也可以将其设置为“运行用户是否登录”,并且状态输出是不可见的--即使用户已登录。
发布于 2012-03-30 13:38:45
我对此的处理方式略有不同。我会将控制台程序的输出重定向到日志文件。
for /f "usebackq tokens=1,2,3,4,5,6,7 delims=/:. " %%a in (`echo %DATE% %TIME%`) do set NOW=%%d%%b%%c_%%e%%f%%g
myprogram.exe > c:\logs\job_%NOW%.log 2>&1
rem if user is logged in, display the file
type c:\logs\job_%NOW%.log如果没有人登录,那么最后一个“type”命令将是无关紧要的。如前所述,请使用“运行是否记录用户”选项。
发布于 2010-08-23 11:55:25
我不需要在服务器2008上进行测试,但是在以前的所有版本中,您只是作为将要登录的用户运行该任务。当用户未登录但不可见时,colsole/GUI仍将运行。
https://serverfault.com/questions/173451
复制相似问题