我目前在任务计划程序下的cmd文件中每隔5分钟使用以下代码来获取已登录用户的总数并将该数字写入文本文件。我的目标是确定服务器在一天中的使用情况。我抓取文本文件并导入Excel并创建一个显示给定日期内使用情况的抓取。有没有人有另一种方法可以做到这一点?
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date=%mm%_%dd%_%yyyy%
for /f "tokens=1-3 delims=:,.: " %%I in ("%TIME%") do set BCKP_TIME=%%I:%%J
::md C:\Stats\%date%
setlocal EnableDelayedExpansion
set EX=0
set MS=OK
SET /a COUNT=0
SET USER=
FOR /f "TOKENS=1" %%i IN ('query session ^|find "rdp-tcp#"') DO SET /a COUNT+=1
echo %bckp_time%_%count%>>C:\Stats\%date%.txt
答案 0 :(得分:0)
有很多方法,但这取决于你使用的是什么。如果您正在运行服务器,那么您可能有一个监控解决方案,那么该监控解决方案可能具有WMI功能甚至插件来执行此操作,这将绘制会话数量。我使用Zenoss and there is a ZenPack for that。这给了我一个会话数的图表。
还有tons of PowerShell scripts列出了用户会话 - 因此您可以使用此功能并进行统计 - 我确信有一种PowerShell方法可以计算。