加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-server-2012-r2 – 当没有用户登录到Windows终端服务器

发布时间:2020-12-13 23:49:50 所属栏目:Windows 来源:网络整理
导读:作为这个问题的背景:我们有一个 Windows Server 2012 R2终端服务器,用户可以在其中执行长时间运行的工作,因此我们非常努力不会不必要地重新启动服务器.但是,有时我们需要(安装更新是最重要的),这当前需要大量的通信和手动干扰. 如果重新启动可能在服务器未
作为这个问题的背景:我们有一个 Windows Server 2012 R2终端服务器,用户可以在其中执行长时间运行的工作,因此我们非常努力不会不必要地重新启动服务器.但是,有时我们需要(安装更新是最重要的),这当前需要大量的通信和手动干扰.

如果重新启动可能在服务器未处于活动状态时自动发生,则会对此进行大量修改.到目前为止,我最好的尝试涉及在事件安全/安全审计/ 4634(注销)上触发的计划任务,但我未能确定刚刚断开的会话是否是最后一个会话,这可能不是最好的方法.

一旦没有活动会话(交互式或断开连接),是否有办法执行任务(即PS重启 – 计算机)?

这样的事可能有用.需要重启时,使用身份系统将其作为一次性计划任务运行.
SET LOGFILE=C:TEMPReboot.log
ECHO. (*)    %DATE% %TIME% > %LOGFILE%
:CHECKSESSIONS
ECHO. (*)    %DATE% %TIME% Waiting one minute... >> %LOGFILE%
REM WAIT ONE MINUTE
TIMEOUT /T 60
QUERY USER >> %LOGFILE% 2>&1
FOR /F "tokens=*" %%i IN ('QUERY USER ^| FIND /C "Active"') DO SET ACTIVESESSIONS=%%i >> %LOGFILE% 2>&1
IF %ACTIVESESSIONS% GTR 0 (
    ECHO Active sessions: %ACTIVESESSIONS% >> %LOGFILE% 2>&1
    GOTO :CHECKSESSIONS
)
FOR /F "tokens=*" %%i IN ('QUERY USER ^| FIND /C "Disc"') DO SET DISCONNECTEDSESSIONS=%%i >> %LOGFILE% 2>&1
IF %DISCONNECTEDSESSIONS% GTR 0 (
    ECHO Disconnected sessions: %DISCONNECTEDSESSIONS% >> %LOGFILE% 2>&1
    GOTO :CHECKSESSIONS
)

ECHO. (*)    %DATE% %TIME% Restarting computer >> %LOGFILE%
SHUTDOWN /F /R /T 0 >> %LOGFILE% 2>&1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读