2014-10-03 100 views
2

因此,我一直在搜尋互聯網,試圖找到一種方法來檢測遠程桌面是否正在運行。我真的從來沒有找到我想找的東西,所以我開始着手自己做。我發現,當我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

回答

0

感謝@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