使用cassia获取用户名和密码的会话

时间:2013-01-25 14:48:47

标签: impersonation remote-desktop terminal-services

我有一台远程计算机,我想获取所有登录用户详细信息。我使用cassia使用this link

编写代码
    ITerminalServicesManager manager = new TerminalServicesManager();
    using (ITerminalServer server = manager.GetRemoteServer("SERVERIPADDRESS"))
    {
        server.Open();
        foreach (ITerminalServicesSession session in server.GetSessions())
        {
            NTAccount account = session.UserAccount;
            string userName = session.UserName;

            if (account != null)
            {
                Console.WriteLine(account);
            }
        }
    }

现在,我想使用特定的UserIdPassword连接到此服务器。我该怎么做?我没有得到任何选择。

我尝试的是,我给了服务器IP地址并构建了解决方案。然后我尝试将exe文件作为其他用户并提供凭据但无法登录。

任何人都可以帮忙。我已准备好并愿意放弃决心,但想要一个有效的解决方案。

请帮我标记这个问题,我无法理解它。

2 个答案:

答案 0 :(得分:3)

正如Dan Ports所提到的那样,impersonation绝对是可行的方法。

如果在使用模拟之后,您仍然无法连接,我发现非服务器操作系统(例如Windows 7或Windows 8.1)需要在以下位置registry edit才能发出Cassia请求工作:

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer

在此位置,将 AllowRemoteRPC 的值更改为 1

答案 1 :(得分:1)

您需要使用模拟 - 底层远程桌面服务API不支持将凭据作为参数传递。有关假冒的更多信息,请参阅Cassia issue 32以及评论中的链接。