Windows服务器管理员经常遇到一个头疼的问题是,很多用户登录到服务器(尤其是跳转机)之后,从来不主动注销。大家在服务器上干完活之后,往往习惯于直接关闭远程桌面窗口。在服务器的任务管理器里面经常能看到很多个“已断开”状态的远程连接。例如:
一方面可能会达到远程桌面最大连接数导致其他用户无法登陆。另一方面会浪费大量的CPU、内存等系统资源,甚至引起宕机。
可以使用批处理代码批量注销“已断开”的用户连接,或者注销除当前用户之外的其他所有用户连接。也可以把脚本放在计划任务里面定期注销用户连接。
1、注销“已断开”的用户连接
@echooff
chcp437>nul
REM Log off Disconnected sessions
for/f"tokens=1,2"%%i in('query user ^| findstr /c:" Disc "')do(
echologoff%%i
logoff%%j
)
2、注销除当前用户之外的其他所有用户连接
@echooff
chcp437>nul
REM Log off Disconnected sessions
for/f"tokens=1,2"%%i in('query user ^| findstr /c:" Disc "')do(
echologoff%%i
logoff%%j
)
REM Log off Active sessions except for current session
for/f"skip=1 tokens=1,3"%%i in('query user ^| findstr /v /c:" Disc "')do(
if/i"%%i"neq">%username%"(
echologoff%%i
logoff%%j
)
)
注意:有些工程师可能没有把应用(Tomcat、WebLogic等)注册成系统服务,而是直接用启动脚本(通常是应用自带的bat或cmd后缀的脚本)打开应用。如果注销远程连接的话,会导致应用中断。所以服务器管理员在执行上面的脚本之前,最好跟应用工程师沟通好,让他们把应用注册成系统服务。
领取专属 10元无门槛券
私享最新 技术干货