Server 2008 R2 - 用于终止空闲会话的脚本

Server 2008 R2 - 用于终止空闲会话的脚本

正在寻找可以结束 Server 2008 R2 上的空闲会话共享的脚本。

如果会话打开的时间过长,则程序会由于文件/文件夹打开而无法更新。

我正在寻找运行一个脚本来在给定的时间段后关闭空闲会话。

我不想终止活动会话或使用终止所有命令只是在 12 小时后关闭空闲会话。

提前感谢您的帮助。

安德鲁

答案1

根据您的环境,您还可以配置组策略。使用以下位置的设置:

计算机配置\策略\管理模板\Windows 组件\远程桌面服务\远程桌面会话主机\会话时间限制

用户配置\策略\管理模板\Windows 组件\远程桌面服务\远程桌面会话主机\会话时间限制

您还可以通过远程桌面主机配置实用程序按主机执行此操作。它应该位于管理工具中。

欲了解更多信息,请查看以下有关该主题的技术网络文章: http://technet.microsoft.com/en-us/library/cc754272.aspx

希望有所帮助。

答案2

我们在 Server 2008 环境中使用以下脚本,但我确信它也适用于 R2。基本上,它会循环打开终端会话,如果会话空闲时间超过 59 分钟,它会结束会话。批处理文件:

@echo ON
setlocal ENABLEDELAYEDEXPANSION

for /F "Tokens=1-8*" %%a in ('net session^|Find "\\"') do (
     call :sess %%a %%b %%c %%d %%e %%f %%g %%h %%i
     @echo !comp! !idle!
)
endlocal
goto :EOF

:sess
set comp=%1
set idle=00:00:00
:sessL
shift
if {%1}=={} goto sessT
set idle=%1
goto sessL

:sessT

for /f "Tokens=1 Delims=:" %%x in ('@echo %idle%') do (
    if "%%x" GEQ "00" net session %comp% /DELETE /Y
)

相关内容