Cassia: Win32Exception no more data available

720 Views Asked by At

I'm using Cassia to get the sessions of two servers. - Windows 2003 R2 Terminal Server - Windows 2008 R2 Server

The second one, which is not a terminal server works fine. However the first one is getting some issues. The error message is:

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)

Can anyone help with this error message and what to do?

The code I found so far for testing purposes:

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

There are 1 best solutions below

1
On

After trying a few things I found my mistake. Code is tested and working. I needed to use Impersonation, because my user account is not working on the server. So I impersonate as the standard user on this server and you'll get the relevant information.

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.
        }
    }
}