检测远程桌面是否有批处理活动

问题描述:

因此,我一直在搜寻互联网,试图找到一种方法来检测远程桌面是否正在运行。我真的从来没有找到我想找的东西,所以我开始着手自己做。我发现,当我query user我得到以下结果:检测远程桌面是否有批处理活动

USERNAME   SESSIONNAME  ID STATE IDLE TIME LOGON TIME 
>michaelh   rdp-tcp#0   1 Active  none 9/29/2014 11:14 AM 

所以我用一个for loop找到并掰开我所需要的线。这是我想出的:

@ECHO off 

setlocal EnableDelayedExpansion 

for /f "tokens=2,4" %%a in ('QUERY USER ^| FINDSTR ">"') DO (

    set "consoleTemp=%%a" 
    set "connectionState=%%b" 
    set "consoleType=!consoleTemp:~0,7!" 

) 

SET consoleTypeCorrect= 
IF "!consoleType!"=="rdp-tcp" SET consoleTypeCorrect=1 

SET connectionStateCorrect= 
IF "connectionState"=="Active" SET connectionStateCorrect=1 

set TRUE= 
set TRUE=%connectionStateCorrect%%consoleTypeCorrect% 

IF "%TRUE%"=="11" (
    echo You are connected via !consoleType! 
) else (
    ECHO Sorry, the console type is !consoleType! 
) 

endlocal 
PAUSE 

这很好,但我的问题是你们会有这样做的更好的方法吗?如果你正在看这个,不明白它是如何工作的,那么下午/给我发电子邮件,我会解释它。

+1

根据你的消息,你似乎只是检查当前用户。如果是这样,请将用户名添加到命令'query user%username%'中。至于方法,你有什么工作,很简单,所以我没有更好的方法。 – 2014-10-03 17:33:16

+0

@DavidRuhmann我不关心用户是谁,因为我在做什么。我只需要检查活动连接是否为rdp。如果在使用批处理来运行rdp时有一种方法来填充密码,我会这样做,但我找不到任何东西。 – 2014-10-07 15:04:40

+0

另一种方式(作为'查询'不适用于我的Windows):给命令窗口一个唯一的名称:'title UniqueStringToIdentify',获得'tasklist/v | find“UniqueStringToIdentify”,处理输出的方式与'query ' – Stephan 2014-10-10 08:23:38

感谢@David Ruhmann为您提供的信息!如果没有更好的方法来检测RDP是否连接,我会将其作为我的回答发布。

@ECHO off 

setlocal EnableDelayedExpansion 

for /f "tokens=2,4" %%a in ('QUERY USER ^| FINDSTR ">"') DO (

    set "consoleTemp=%%a" 
    set "connectionState=%%b" 
    set "consoleType=!consoleTemp:~0,7!" 

) 

SET consoleTypeCorrect= 
IF "!consoleType!"=="rdp-tcp" SET consoleTypeCorrect=1 

SET connectionStateCorrect= 
IF "connectionState"=="Active" SET connectionStateCorrect=1 

set TRUE= 
set TRUE=%connectionStateCorrect%%consoleTypeCorrect% 

IF "%TRUE%"=="11" (
    echo You are connected via !consoleType! 
) else (
    ECHO Sorry, the console type is !consoleType! 
) 

endlocal 
PAUSE 
+1

谢谢!在Windows 8中也很好用 – Johncze 2014-11-13 09:26:29