终止Citrix会话C#

本文关键字:会话 Citrix 终止 | 更新日期: 2023-09-27 18:28:26

我为Enterprise Architect应用程序运行一个Citrix会话。

我做了一些修改,需要关闭Citrix会话。

当我关闭Citrix窗口时,它似乎只是关闭了,但仍在后台运行。(我可以在丢失的运行程序中看到它。)

如何使用C#强制关闭Citrix会话?

终止Citrix会话C#

所以我已经读了几遍了,我仍然不能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);