加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 23:58:17 所属栏目:Windows 来源:网络整理
导读:问题: 我有一台运行第三方ERP系统的Windows 2008 R2 VM.他们有一个实用程序,它将运行预定作业,每晚备份Oracle数据库及其应用程序数据,并进行7天轮换. 问题是它必须在会话中以交互方式作为桌面应用程序运行.它无法作为服务运行.虽然我对于登录帐户并不感到兴
问题:

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

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

题:

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

要么

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

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

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

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

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

@echo off
:restart
start "" "C:Program FilesEQFUEQWin32eqalert.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–即如果它的消息泵仍然是 – 呃 – 抽水 – 是一个更复杂的前景.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读