Команды служб терминалов, доступные в пространстве имен .NET? - PullRequest
1 голос
/ 17 декабря 2009

Существуют ли .NET-команды, эквивалентные командам служб терминалов 'QWINSTA', 'RWINSTA' и 'TSDISCON'?

Спасибо

1 Ответ

3 голосов
/ 17 декабря 2009

В настоящее время нет эквивалента .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);
    }
}
...