我们有一个应用程序执行一些日志logging和报告,它必须不断运行,以便运行(开发人员没有听说过Windows服务,显然)。 通常情况下,我们只是让他们在断开的远程桌面会话中运行,以便我们可以远程连接来检查统计信息,报告等等。
但是,当服务器重新启动时,这些应用程序不会自动启动。 这可能是一个问题,因为被logging的数据本质上是高度暂时的,并且来自不同的服务器。 有没有办法让这个日志服务器在启动时自动login到一个断开连接的RDP会话? 我已经做了自动控制台login之前,但从来没有RDP。 如果可能的话,我可以把必要的程序放入启动。
编辑添加:
各种应用程序到服务的转换包装器之一可能工作,但我们特别想保持接口,只要有人连接到程序工作。 也就是说,即使没有人正在使用它,也必须保持打开,并且当服务器重新引导(例如应用OS更新)时,程序不会自动重新启动。
我们的电话系统的其中一个元素有一个非常相似的问题。
假设2008年是2003年,你可以做一个自动控制台login来启动你的应用程序,并通过RDP远程连接到现有会话。 不理想,但function。
@巴特的解决scheme是真正的最好的途径,如果你能做到这一点。 我提到的电话系统问题有一些奇怪的GUI挂钩问题,停止了从我的情况下工作。
谷歌的“运行程序作为服务的Windows 2008”的东西,你会发现一些程序,将作为服务运行可执行文件。 它可能笨重,你将不得不testing它,看它是否与你的应用程序兼容,但是,因为你的程序被devise成这样运行。 不知道它会如何反应没有一个控制台显示…但如果它将作为一个服务运行它可能比离开一个RDP会话运行。
真的,你是在试图撬动一些东西来适应它不是为了devise的function。 Windows并不意味着运行RDP会话只是为了在开始会话时运行特定的应用程序,据我所知,还没有办法让它这样做。
另一种方法是在另一个系统上运行一个监视程序,该程序可以“ping”服务器以查看是否存在特定服务,或者在启动时运行批处理/脚本文件,以发送服务器重新启动的警报,可以login并启动RDP会话。 如果您有适当的系统监视服务,可以检测服务器上的正常运行时间或特定进程,这可能是您的最佳解决方法。
您可以尝试使用任务计划程序创build自动化任务。 在“触发器”选项卡下,您可以select“在启动时”。 另外,在“常规”选项卡下,您可以select进程将以哪个用户身份运行。 你可以尝试的另一件事是在设置选项卡下,如果失败时重新启动任务,您可以select。
我会尝试FireDaemon! http://www.firedaemon.com/
我们在运行win 2008r2的客户端服务器上这样做,没有问题。 它的虚拟化,所以到控制台很容易。 该应用程序必须交互式运行,并不作为服务工作…一件事是它不响应正常的Windows关机指令,并会阻止系统关机,直到您手动干预。
MS有一个叫www.sysinternals.com的autologon.exe工具
它工作正常。 自动login后,只需在启动文件夹中有一个正常的条目。
我不得不同意上面的评论,这不是一个好主意 – 但是当你面对一个必须开放的应用程序,那么你没有太多的select。 最好你能做的就是向开发者投诉。
看看Sysinternals的Autologon: http : //technet.microsoft.com/en-us/sysinternals/bb963905