В настоящее время нет эквивалента .NET / управляемого API. Вы, вероятно, можете использовать функции из wtsapi32.dll . Посмотрите pinvoke.net , где приведены примеры их вызова из управляемого кода ... начиная со следующего:
WTSEnumerateSessions
WTSQuerySessionInformation
WTSLogoffSession
Или, если вы не хотите запускать свою собственную оболочку Win32, проверьте проект " cassia ". Я не использовал его и поэтому не могу ручаться за качество этого решения, однако, похоже, что это библиотека .NET, используемая для доступа к собственному API-интерфейсу Windows Terminal Services.
Ниже приведен пример того, как вы будете использовать библиотеку кассии в C # (взято с сайта проекта):
ITerminalServicesManager manager = new TerminalServicesManager();
using (ITerminalServer server = manager.GetRemoteServer("your-server-name"))
{
server.Open();
foreach (ITerminalServicesSession session in server.GetSessions())
{
Console.WriteLine("Session ID: " + session.SessionId);
Console.WriteLine("User: " + session.UserAccount);
Console.WriteLine("State: " + session.ConnectionState);
Console.WriteLine("Logon Time: " + session.LoginTime);
}
}