终止Citrix会话C#
本文关键字:会话 Citrix 终止 | 更新日期: 2023-09-27 18:28:26
我为Enterprise Architect
应用程序运行一个Citrix
会话。
我做了一些修改,需要关闭Citrix会话。
当我关闭Citrix窗口时,它似乎只是关闭了,但仍在后台运行。(我可以在丢失的运行程序中看到它。)
如何使用C#强制关闭Citrix会话?
所以我已经读了几遍了,我仍然不能100%确定您是否在服务器会话内部运行Citrix Receiver的客户端上运行C#,所以我会双向回答。
1) 如何从客户端关闭会话
您可以使用通过ICO访问的实时监控API。ICO是ICA客户端对象,是一个基于COM的API,用于控制win32 Citrix接收器。下面的PowerShell示例向您展示了如何枚举客户端上的会话并将其注销。在C#中执行此操作的代码将非常相似。此示例与服务器名称匹配,但您可以使用不同的名称。例如,注销所有会话,或根据发布的应用程序的名称进行匹配。
http://smulpuru.wordpress.com/2013/06/27/client-side-xenapp-session-enumeration-and-selective-logoff-based-on-xenapp-server-using-ica-client-object-wficalib/
注意:必须设置PowerShell示例顶部提到的两个注册表项,否则Live Monitoring API将无法工作(由于安全原因)。
2) 如何从服务器关闭会话
这要容易得多,你所需要做的就是简单地触发注销——有很多方法可以做到这一点。其中一种更常见的方法是使用WTSLogoffSession。你需要从C#中筛选,但定义很简单:
[DllImport("wtsapi32.dll", SetLastError = true)]
public static extern bool WTSLogoffSession(IntPtr hServer, int sessionId, bool bWait);