强制关闭等导致的XenApp会话一直处于活动状态

我们有可能强制关闭或者断开了ICA链接或者RDP的会话,但是由于非正常关闭会话,导致会话无法正常的结束或者无法结束,从而导致一些会话的问题。另外通过管理控制台强制结束一些进程等也可能导致该问题。

一般情况下,我们发布应用程序,只是指定了可执行文件,而可执行文件执行过程中可能启动新的进程和后台程序,而这些进程如果不会被主程序关闭的后台进程,将导致程序无法全部关闭。

有些程序可能会创建新窗口,有些根本就没有窗口。

在使用XenApp交互的应用程序的时,Explorer.exe不会被启动,应用程序启动以后,XenApp服务器和Windows没有一种机制用来结束用户退出后遗留的一些后台进程。

针对这个问题,XenApp会结束一些应用程序退出后的一些系统进程,该列表硬编码到了XenApp程序中。该列表包括:

  • atok1*.exe
  • clipsrv.exe
  • conime.exe
  • csrss.exe
  • ctfmon.exe
  • ddhelp.exe
  • eventlog.exe
  • iatokik*.exe
  • iatokqb*.exe
  • iatqb1*.exe
  • ibdbsch.exe
  • imejp98m.exe
  • imejpmgr.exe
  • imepadsv.exe
  • jsvschvw.exe
  • lmsvcs.exe
  • lsass.exe
  • msgsvc.exe
  • nddeagent.exe
  • nddeagnt.exe
  • netdde.exe
  • netstrs.exe
  • os2srv.exe
  • proquota.exe
  • screg.exe
  • smss.exe
  • spoolss.exe
  • ssonsvr.exe
  • wfshell.exe
  • win.com
  • winlogon.exe
  • wpabaln.exe
  • wuauclt.exe

这个列表只是一些常见的xenApp和windows系统进程,但是对于一些第三方程序的处理,显示无法处理。

针对一些第三方应用程序会启动不受主进程控制的新进程和后台程序时候,可以使用LogoffCheckSysModules来做注销清理:

注意:不要把主进程写到这里,可能会导致程序无法启动;另外不要把有可是窗口的进程写到这里,这个机制主要用来处理无窗口等类似后台进程的清理;多个进程用逗号分隔。