TerminalServicesManager().CurrentSession.ClientName
Я пытаюсь выяснить, какие клиенты подключены к моей машине с помощью удаленного рабочего стола. Я читал о Cassia и Cassia.TerminalServicesManager, но я не могу обдумать это...
Я думал, что Cassia.TerminalServicesManager().CurrentSession.ClientName даст мне имя клиента, но что если их будет больше? Я посмотрел на ссылки, но я все еще в замешательстве. Кто-нибудь может мне помочь?
Спасибо
2 ответа
Похоже, вы ищете что-то вроде этого:
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 каждый раз?