有没有人遇到过一种方法来创建一个类似于终端服务管理器在 Windows2003/XP 中所做的应用程序。
我想写一些东西,要么每隔 n 秒去查询一个服务器场,然后给我一个登录的用户列表,那里有进程等,或者可能输入一个用户名,然后它会在场中找到用户,然后返回他们的详细信息。
干杯卢克
有没有人遇到过一种方法来创建一个类似于终端服务管理器在 Windows2003/XP 中所做的应用程序。
我想写一些东西,要么每隔 n 秒去查询一个服务器场,然后给我一个登录的用户列表,那里有进程等,或者可能输入一个用户名,然后它会在场中找到用户,然后返回他们的详细信息。
干杯卢克
我建议使用Cassia,这是一个 .NET 库,它在内部使用了 Arnshea 提到的 Wtsapi32 库。例如,列出所有登录到服务器的用户:
Dim manager As New TerminalServicesManager()
Using server As ITerminalServer = manager.GetRemoteServer("your-server-name")
server.Open()
For Each session As ITerminalServicesSession In server.GetSessions()
If Not string.IsNullOrEmpty(session.UserName) Then Console.WriteLine(session.UserName)
Next
End Using
我已经使用 qwinsta(查询 winstation 是助记符)和字符串解析/正则表达式破解了这个问题。谨防防火墙和假冒。
看看Microsoft 的psexec和其他 ps* 实用程序(最初来自 SysInternals)。