我可以使用控制面板中的计划任务安排在 Windows Server 系统启动时执行的 .bat 脚本,并指定一个用户代表执行此执行。
但是当这个脚本启动并运行其他程序时,即使我登录系统,它们对我来说都是不可见的。我在任务管理器中看到它们,并且只建立了一个用户会话。
他们的问题是,是否有办法让这些控制台和应用程序可见,以便我可以看到执行过程并在需要时停止它?
我可以使用控制面板中的计划任务安排在 Windows Server 系统启动时执行的 .bat 脚本,并指定一个用户代表执行此执行。
但是当这个脚本启动并运行其他程序时,即使我登录系统,它们对我来说都是不可见的。我在任务管理器中看到它们,并且只建立了一个用户会话。
他们的问题是,是否有办法让这些控制台和应用程序可见,以便我可以看到执行过程并在需要时停止它?
只要你的用户有管理员权限,这很简单:任务管理器左下角有一个按钮,你可以“显示所有用户的进程”
我每天都在做这个...
如果您对每个程序的标准输出感兴趣,则必须将其通过管道传输到文本文件/日志文件中。
用于创建和写入新的日志文件使用:
program.exe > logfile.txt
附加到现有的一个用途:
program.exe >> logfile.txt
使用类似 tail ( http://tailforwin32.sourceforge.net/ ) 的日志文件滚轮在程序执行时查看这些日志文件。
除此之外,我不认为,无需以该用户身份登录,就可以将另一个用户的 UI 输出获取到您的屏幕上。但是如果你真的在同一个用户会话上登录,我认为程序 UI 应该在脚本执行程序时弹出。
在任务计划程序中,当您选择要在系统启动时运行的任务时,右侧的“操作”窗格在“选定项目”菜单下有一个“结束”操作,您可以使用它来停止进程(作为终止进程的替代方法)任务管理器)。正如 Jurgen 在他的回答中解释的那样,似乎没有任何方法可以像从 Windows 资源管理器运行脚本时所期望的那样在控制台窗口上实际查看当前进程输出。
在你的批处理文件的末尾,你可以放一个
pause
这将需要用户输入才能继续。或者,如果您愿意,可以将其放在语句之间。
您还可以执行 @echo 并将消息传达给最终用户。