Кассия: 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.
        }
    }
}
Другие вопросы по тегам