windows-server-2008-r2 – 任务计划程序:在启动时登录会话并启动桌面应用程序?

问题:

我有一台运行第三方ERP系统的Windows 2008 R2 VM.他们有一个实用程序,它将运行预定作业,每晚备份Oracle数据库及其应用程序数据,并进行7天轮换.

问题是它必须在会话中以交互方式作为桌面应用程序运行.它无法作为服务运行.虽然我对于登录帐户并不感到兴奋,但我已经学会了允许它.这里的主要问题是,如果服务器重新启动,我可能需要几天才意识到该应用程序打开时该帐户不再登录到服务器.

题:

可以(如果是这样,如何)我创建一个在启动时运行的任务,将用户登录到VM(创建会话)并在该会话的桌面上启动应用程序?

要么

如果这太难或不可能,任何人都有关于如何检查并查看该应用程序是否在该帐户的会话中运行以及是否发送警报的想法?即使是自定义事件日志错误,我也很酷,因为我可以通过远程监控来选择它.

我假设程序需要显示其UI,并且您不能以非交互方式运行它. (我喜欢这些软件的“宝石”…)

以下是我个人所做的事情:

>使用AutoAdminLogon作为要运行应用程序的用户配置服务器计算机.这将导致服务器的控制台在启动时自动登录用户.
>将脚本添加自动登录用户的个人“启动”组中,该组以异步方式启动任务,监视正在进行的任务的进程列表(我个人使用WMIC PROCESS LIST),如果进程列表中的任务丢失则发出警报并且,如果需要,重新启动该过程.我也会锁定工作站.

启动组中的脚本可以很简单(调用您必须运行的程序eqalert.exe):

@echo off
:restart
start "" "C:\Program Files\EQFU\EQWin32\eqalert.exe"
:check_loop
rem Delay 30 seconds between checks
ping -n 30 127.0.0.1 >NUL 2>NUL
wmic process list | find /i "eqalert.exe" >NUL 2>NUL
if not errorlevel 1 goto check_loop
echo eqalert.exe not running - restarting
eventcreate /T ERROR /ID 1 /L APPLICATION /D "eqalert.exe not running - restarting"
goto restart

此脚本假定只有一个任务实例在运行,并且只检查任务在进程列表中的存在.如果进程挂起并以其他方式终止,则此脚本将无法捕获. (监控程序是否“响应”Windows–即如果它的消息泵仍然是 – 呃 – 抽水 – 是一个更复杂的前景.)

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...