0

我正在使用 Cassia 来获取两台服务器的会话。- 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);
}
}
4

1 回答 1

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.
        }
    }
}
于 2016-06-24T07:56:32.213 回答