终止所有 RDP 会话的脚本
Script to Kill All RDP Sessions
我正在尝试创建一个简单的脚本来终止所有远程桌面会话,无论是活动的还是断开的,而无需重新启动服务器。我的服务器 OS 是 Windows Server 2012R2,启用并许可了远程桌面服务。
我在这里找到了一个简单的批处理文件脚本来完成这个任务:enter link description here
当我在我的终端服务器本地 运行 这个脚本时,我在批处理文件 运行s 中收到一条错误消息:找不到会话光盘
并且只有控制台用户被注销。谁能告诉我这个脚本有什么问题吗?
query session >session.txt
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
我的会话文本文件如下所示:
SESSIONNAME USERNAME ID STATE TYPE DEVICE
services 0 Disc
>console Administrator 13 Active
wcunningham 18 Disc
kstarkey 25 Disc
rdp-tcp#11 cyannone 52 Active
rdp-tcp 65536 Listen
我发现一个很好的解决方法是添加一条额外的线来处理断开连接的会话。由于断开连接的会话不列出会话名称,因此 ID 位于位置 2 而不是活动会话中的位置 3。所以添加一个额外的行来指定 token=2 就可以了:
query session >session.txt
for /f "skip=1 tokens=2," %%i in (session.txt) DO logoff.exe %%i
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff.exe %%i
del session.txt
我正在尝试创建一个简单的脚本来终止所有远程桌面会话,无论是活动的还是断开的,而无需重新启动服务器。我的服务器 OS 是 Windows Server 2012R2,启用并许可了远程桌面服务。
我在这里找到了一个简单的批处理文件脚本来完成这个任务:enter link description here
当我在我的终端服务器本地 运行 这个脚本时,我在批处理文件 运行s 中收到一条错误消息:找不到会话光盘
并且只有控制台用户被注销。谁能告诉我这个脚本有什么问题吗?
query session >session.txt
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
我的会话文本文件如下所示:
SESSIONNAME USERNAME ID STATE TYPE DEVICE
services 0 Disc
>console Administrator 13 Active
wcunningham 18 Disc
kstarkey 25 Disc
rdp-tcp#11 cyannone 52 Active
rdp-tcp 65536 Listen
我发现一个很好的解决方法是添加一条额外的线来处理断开连接的会话。由于断开连接的会话不列出会话名称,因此 ID 位于位置 2 而不是活动会话中的位置 3。所以添加一个额外的行来指定 token=2 就可以了:
query session >session.txt
for /f "skip=1 tokens=2," %%i in (session.txt) DO logoff.exe %%i
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff.exe %%i
del session.txt