Кассия: Win32Exception больше нет данных
Я использую Кассию, чтобы получить сеансы двух серверов. - Терминальный сервер Windows 2003 R2 - Сервер Windows 2008 R2
Второй, который не является терминальным сервером, работает нормально. Однако первый получает некоторые проблемы. Сообщение об ошибке:
System.ComponentModel.Win32Exception: No more data is available
at Cassia.Impl.NativeMethodsHelper.GetSessionInfos(ITerminalServerHandle server)
at Cassia.Impl.TerminalServer.GetSessions()
at Server_Sessions.Program.Main(String[] args)
Может кто-нибудь помочь с этим сообщением об ошибке и что делать?
Код, который я нашел до сих пор для тестирования:
ITerminalServicesManager manager = new TerminalServicesManager();
using (ITerminalServer server = manager.GetRemoteServer("server"))
{
server.Open();
foreach (ITerminalServicesSession session in server.GetSessions())
{
Console.WriteLine("Session ID: " + session.SessionId);
Console.WriteLine("User: " + session.UserAccount);
}
}
1 ответ
Попробовав несколько вещей, я нашел свою ошибку. Код протестирован и работает. Мне нужно было использовать олицетворение, потому что моя учетная запись не работает на сервере. Поэтому я выдаю себя за обычного пользователя на этом сервере, и вы получите соответствующую информацию.
using(Impersonation.LogonUser(domain, user, password, LogonType.NewCredentials))
{
ITerminalServicesManager manager = new TerminalServicesManager();
using (ITerminalServer server = manager.GetRemoteServer(server))
{
server.Open();
foreach (ITerminalServicesSession session in server.GetSessions())
{
//Do your stuff here.
}
}
}