我试图弄清楚哪些客户端使用远程桌面连接到我的机器。我阅读了有关 Cassia 和 Cassia.TerminalServicesManager 的信息,但我无法完全理解它......
我以为 Cassia.TerminalServicesManager().CurrentSession.ClientName 会给我一个客户端的名称,但如果还有更多呢?我查看了参考资料,但我仍然感到困惑。有人可以帮我吗?
谢谢
我试图弄清楚哪些客户端使用远程桌面连接到我的机器。我阅读了有关 Cassia 和 Cassia.TerminalServicesManager 的信息,但我无法完全理解它......
我以为 Cassia.TerminalServicesManager().CurrentSession.ClientName 会给我一个客户端的名称,但如果还有更多呢?我查看了参考资料,但我仍然感到困惑。有人可以帮我吗?
谢谢
听起来你正在寻找这样的东西:
var manager = new TerminalServicesManager();
using (var server = manager.GetLocalServer())
{
server.Open();
foreach (var session in server.GetSessions())
{
if (session.ConnectionState == ConnectionState.Active)
{
Console.WriteLine(session.ClientName);
}
}
}
ITerminalServicesManager.CurrentSession
返回当前进程正在其中运行的会话。
默认情况下,如果您使用远程桌面连接到 Windows 机器,则会关闭本地用户,如果他们重新登录,则会关闭远程用户。如果您启用了并发远程桌面会话,则可以同时连接多个用户。我对 Cassia 不熟悉,但也许您可以遍历所有调用 Cassia.TerminalServicesManager().CurrentSession.ClientName 的会话?