服务器 08 RDP:如果同一用户已经连接,是否可以发出警告?

服务器 08 RDP:如果同一用户已经连接,是否可以发出警告?

目前,我们通过 1 个 RDP 帐户(管理员)对一台 Server 2008 R2 机器进行一些开发和监控,因为每个人都需要共享所有事物的同一个实例以确保一致性。问题是,当一个人连接并工作时,如果其他人尝试使用同一个帐户连接,它将启动第一个人并将控制权交给第二个人。唯一的警告来得有点晚,当第一个人收到一条消息说“另一个用户连接到远程计算机,因此您的连接丢失”时。

是否有任何已知的方法可以警告来访用户有人已经连接(类似于使用不同帐户时可能收到的消息类型),或者允许受害者选择不被启动?

答案1

以下是一些坏消息:当您即将登录现有会话时,RDP 无法发出警告。它只会在您通过 RDP 登录时发出警告,并且其他用户已经登录。悲伤的脸


等等……理论上,使用远程脚本是可行的。您可以使用命令queryuser选项获取已登录用户的列表。然后,您可以搜索您感兴趣的用户名,看看标签是否ACTIVESTATE列中。从那里,如果用户未登录,您可以调用 .rdp 文件,或者如果用户已登录。

这是自制的,但应该能用。

来自我的一台 Windows 服务器的示例:

C:\Users\BigKahuna>query user
 USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
>BigKahuna          rdp-tcp#0           1  Active          .  3/26/2012 6:51
PM

答案2

此 vbs 脚本可用于避免踢出已经使用相同用户名登录 Windows 服务器的用户:

Set objShell = WScript.CreateObject("WScript.Shell")
Set p = objShell.Exec("qwinsta /server:serverName")
Do While p.Status = 0
    WScript.Sleep 100
Loop
If InStr(p.StdOut.ReadAll, "Active") <= 0 then objShell.Run("mstsc C:\Users\username\Documents\Default.rdp")

它实际上只是检查是否有任何活跃用户,但知道您的用户名后,您可以修改最后一行来专门检查它。

相关内容