I am trying to figure out what clients are connected to my machine using remote desktop. I read about Cassia and the Cassia.TerminalServicesManager, but I can't wrap my mind around it...

I thought that Cassia.TerminalServicesManager().CurrentSession.ClientName would give me a name of the client, but what if there are more? I looked at the references, but I am still confused. Can someone help me out?

Thanks

有帮助吗?

解决方案

It sounds like you're looking for something like this:

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 returns the session in which the current process is running.

其他提示

By default If you connect to a windows machine using remote desktop it kicks the local user off, if they log back in it kicks the remote user off. If you have enabled Concurrent Remote Desktop Sessions there can be multiple users connected at once. I am not familiar with Cassia but perhaps you could loop over all of the sessions calling Cassia.TerminalServicesManager().CurrentSession.ClientName each time?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top