结束RemoteDesktop会话和待机
创建一个批处理文件(或真正的东西),我可以从我的远程PC激活该文件以结束会话并使PC进入睡眠状态(不必注销用户)
以下是两个示例脚本:
- 用
LOGOFF
; 和,
- 另一个带有RDP
DISCONNECT
(无注销)
我不确定您是否想要一个,所以我将两者都放在下面,从我测试的结果来看,它在Windows 7中应该可以正常工作。
对于注销脚本,我将一些if逻辑用于不注销控制台,系统或rdp-tpc侦听会话,因为您仅对RDP连接的远程会话感兴趣。
对于断开连接脚本,您将只断开根据需要运行该会话的会话,因此不需要在此脚本上附加逻辑(这可能是您需要的逻辑)。
假设您将手动将其作为已保存的批处理脚本运行,并且如果您决定使用注销脚本而不是断开连接脚本,则您将有权注销所有或任何适用的会话。
批处理脚本
(此脚本还将在断开当前会话后等待5秒钟,然后将PC置于睡眠状态。)
批处理脚本示例(DISCONNECT
所有会话)
@ECHO OFF
::: Disconnected current RDP session
TSDISCON
::: Pause 5seconds before going to sleep ensuring enough time
PING -n 5 127.0.0.1 > NUL
::: Put computer to sleep
%systemroot%\System32\rundll32.exe powrprof.dll,SetSuspendState 0,1,0
GOTO EOF
(此脚本还将在注销所有会话后等待30秒,然后使PC进入睡眠状态。)
警告: 双击此批处理文件以专门满足OP的需要,将无法临时运行此脚本,但我将其保留为赠品,以防其他人发现使用它。由于它将在睡眠逻辑运行之前注销帐户,因此该睡眠逻辑在特定情况下将不起作用。这将需要从Task Scheduler运行with Highest Privileges
,并且Run whether the user is logged on or not
-我以为您可以以这种方式进行设置,而不是按时间表进行设置,也可以根据需要从Task Scheduler开始/运行。(下面的屏幕截图)
批处理脚本示例(LOGOFF
所有会话)
@ECHO OFF
FOR /F %%S IN (
'"QUERY SESSION /SM"'
) DO (
IF NOT %%~S==0 IF NOT %%~S==1 IF NOT %%~S==65536 RWINSTA %%~S
)
::: Pause 5 seconds before going to sleep ensuring enough time
PING -n 5 127.0.0.1 > NUL
::: Put computer to sleep
%systemroot%\System32\rundll32.exe powrprof.dll,SetSuspendState 0,1,0
GOTO EOF
屏幕快照预定任务选项
进一步的研究,阅读和资料