Sof*_*Kng 9 windows remote-desktop connection console
在远程桌面会话断开连接后,是否可以(通过组策略等)自动将控制台会话恢复到 Windows 8.1 PC?
我知道您可以在 RDP 会话期间运行命令“tscon 1 /dest:console”来断开自己的连接并重新连接控制台会话,但是是否可以自动进行这种操作?
小智 5
创建一个包含以下内容的批处理文件,名称类似于 restore_console.bat:
@echo off
set LOG_FILENAME=%TEMP%\restore_console_log.txt
echo Script executed at %TIME% > %LOG_FILENAME%
echo qwinsta: >> %LOG_FILENAME%
qwinsta >> %LOG_FILENAME%
echo Checking for pending connection... >> %LOG_FILENAME%
for /f %%i in ('qwinsta ^| findstr /r /C:"^ [ ]*[0-9][0-9]* Disc"') do (
echo Pending connection detected, finishing. >> %LOG_FILENAME%
goto end
)
echo Checking for disconnection... >> %LOG_FILENAME%
for /f "tokens=2" %%i in ('qwinsta ^| findstr /r /I /C:"^ [ ]*[^ ][^ ]* [ ]*[0-9][0-9]* Disc"') do (
echo Redirecting session id %%i >> %LOG_FILENAME%
tscon %%i /dest:console /v >> %LOG_FILENAME%
goto end
)
:end
Run Code Online (Sandbox Code Playgroud)
在任务计划程序中,使用以下设置创建一个新任务:
实施注意事项:
这是通过通过 findstr 正则表达式解析 qwinsta 输出来工作的,即从此处的第 3 行中提取 ID:
SESSIONNAME USERNAME ID STATE TYPE DEVICE
>services 0 Disc
###### 2 Disc
console 7 Conn
#############... 65536 Listen
rdp-tcp 65537 Listen
Run Code Online (Sandbox Code Playgroud)中间块是必要的,因为出于某种原因计划任务在连接和断开时执行。发生这种情况时,输出将采用以下形式:
SESSIONNAME USERNAME ID STATE TYPE DEVICE
>services 0 Disc
###### 2 Disc
3 Disc
console 8 Conn
#############... 65536 Listen
rdp-tcp 65537 Listen
Run Code Online (Sandbox Code Playgroud)
因此,我们从第 4 行寻找模式的线条。
这在一台 Windows 8.1 机器上对我有用 - 我不知道它是否可以在全球推出。
归档时间: |
|
查看次数: |
7278 次 |
最近记录: |