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
這很好,但我的問題是你們會有這樣做的更好的方法嗎?如果你正在看這個,不明白它是如何工作的,那麼下午/給我發電子郵件,我會解釋它。
根據你的消息,你似乎只是檢查當前用戶。如果是這樣,請將用戶名添加到命令'query user%username%'中。至於方法,你有什麼工作,很簡單,所以我沒有更好的方法。 – 2014-10-03 17:33:16
@DavidRuhmann我不關心用戶是誰,因爲我在做什麼。我只需要檢查活動連接是否爲rdp。如果在使用批處理來運行rdp時有一種方法來填充密碼,我會這樣做,但我找不到任何東西。 – 2014-10-07 15:04:40
另一種方式(作爲'查詢'不適用於我的Windows):給命令窗口一個唯一的名稱:'title UniqueStringToIdentify',獲得'tasklist/v | find「UniqueStringToIdentify」,處理輸出的方式與'query ' – Stephan 2014-10-10 08:23:38