2016-06-15 3 views
0

두 개의 서버 세션을 가져 오는 데 Cassia를 사용하고 있습니다. - Windows 2003 R2 터미널 서버 - Windows 2008 R2 서버Cassia : Win32Exception 사용할 수있는 데이터가 없습니다.

두 번째 터미널 서버가 아니어도 문제가 없습니다. 그러나 처음에는 몇 가지 문제가 있습니다. 오류 메시지는 다음과 같습니다

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); 
} 
} 

답변

0

내 실수를 발견 몇 가지 시도 후. 코드가 테스트되고 작동합니다. 내 사용자 계정이 서버에서 작동하지 않기 때문에 가장을 사용해야했습니다. 따라서이 서버의 표준 사용자로 가장하고 관련 정보를 얻을 수 있습니다.

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