我有一台远程计算机,我想获取所有登录用户详细信息。我使用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);
}
}
}
现在,我想使用特定的UserId
和Password
连接到此服务器。我该怎么做?我没有得到任何选择。
我尝试的是,我给了服务器IP地址并构建了解决方案。然后我尝试将exe
文件作为其他用户并提供凭据但无法登录。
任何人都可以帮忙。我已准备好并愿意放弃决心,但想要一个有效的解决方案。
请帮我标记这个问题,我无法理解它。
答案 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以及评论中的链接。