如何识别通过远程桌面连接到Windows服务器的用户

在我的工作场所,我们有用于testing的实验室机器。

预约机器进行testing的标准程序是在办公室周围走动,以确保没有人使用机器。

这是非常低效和耗时的。

起初,我build立了一个网页,人们可以预约实验室的机器,但没有人保持页面更新,使其变得毫无用处。

我终于find了一个使用Microsoft日志parsing器的解决scheme,并希望将其分享给堆栈溢出社区。

这是一个在机器上运行的batch file,因此用户可以识别使用机器的最后一个用户,并轻松地通过IM来询问机器是否空闲。

有没有更好的解决scheme来做到这一点?

使用内置命令qwinsta (Query Win Station)来确定会话(包括控制台)处于活动状态还是非活动状态(断开连接),然后根据给定的信息(声明为krusty.ar btw来链接它)。

如果您觉得有人滥用相关机器,请参阅rwinsta将其会话彻底清除

您将需要安装Microsoft Log Parser

然后创建以下2个文件

TSLoginsDetails.sql

SELECT timegenerated, EXTRACT_TOKEN(Strings,1,'|') AS Domain, EXTRACT_TOKEN(Strings,0,'|') AS User, EXTRACT_TOKEN(Strings,3,'|') AS SessionName, EXTRACT_TOKEN(Strings,4,'|') AS ClientName, EXTRACT_TOKEN(Strings,5,'|') AS ClientAddress, EventID FROM Security WHERE EventID=682 ORDER BY timegenerated DESC 

TSLogins.bat

 echo off cls c: cd "c:\Program Files\Log Parser 2.2\" logparser.exe file:TSLoginsDetails.sql -o:DATAGRID 

现在通过将这个批处理文件放置在桌面上,用户可以看到谁是最后一个登录的人,并通过IM与他们联系,以验证他们是否完成。

如何将日志文件中的信息发布到网站上,告诉谁正在使用本机器。

  1. 检查并通知他们登录。
  2. 更新了您之前制作的“正在使用本机的人”页面。
  3. 运行一份AT作业,每隔几小时检查一次。

完全开箱:

您可以在您的服务器和桌面上安装软件测试自动化框架(STAF)来管理您的测试。 它是用Java编写的,所以你可以在Windows和Unix / Linux桌面和服务器上使用它。

使用STAF,您可以创建测试服务器的资源池,然后编写测试服务器,然后编写STAX作业(STAX是STAF执行框架)来执行测试。 作业可以从资源池中获取第一个可用的服务器,运行测试,监视测试状态,记录结果,通知提交者,然后在完成时将服务器释放回池中。 如果您有多个人员提交测试作业,STAF将管理请求队列并在他们进入时满足他们。用户可以从他们的桌面监控作业,也可以设置电子邮件警报以在测试完成时通知他们。

我不确定我是否理解你,但是有一组命令行工具来处理终端服务器会话 ,还有一个Windows API也可以做到这一点,如果你需要从程序中这样做的话。

由于这听起来像是一家微软商店,所以您可以将这些机器设置为outlook / exchange中的资源,并以这种方式进行保留。