C # Получение информации о сеансе RDC / RDP и «консоли»
Я пытаюсь получить некоторые RDC / RDP и "Приставка" войти в систему программно через C #.
Я хочу разработать простое консольное приложение (.EXE), чтобы я мог получить информацию из диспетчера задач -> Вкладка «Пользователи» любого удаленного компьютера в нашем домене (Windows Server 2003 x86 или 2008R2 x64).
Это показывает, зарегистрирован ли человек на сервере напрямую (то есть на консоли) или через RDC / RDP (включая клиента, если он все еще активен) или отключен, если он есть "приостановлено» (то есть они не вышли из системы, а только временно закрыли окна RDC / RDP)
У меня есть права администратора на всех серверах, и я могу настроить любые правила для служб Windows / брандмауэров, которые необходимо включить / отключить (если требуется)
Я думаю, что я, вероятно, должен использовать WMI (используя System.Management), но примеры, которые я нашел в Google, только извлекают существующего пользователя.
//Method 1
var searcher = new ManagementObjectSearcher(
"SELECT UserName FROM Win32_ComputerSystem");
var collection = Searcher.Get();
foreach(ManagementObject entry in collection)
{
Console.WriteLine(entry["UserName"]);
}
//Method 2
string computer = "somecomputername";
var searcher = new ManagementObjectSearcher(
computer + @"root\CIMV2", "SELECT * FROM Win32_TerminalService");
var collection = Searcher.Get();
foreach(ManagementObject entry in collection)
{
//Write them out (although usernames isnt listed from the example I found)
}