如何通过 Win XP 脚本注销并进入待机状态?

如何通过 Win XP 脚本注销并进入待机状态?

我正在寻找一种方法来编写一个脚本(任何类型的脚本),既可以注销我的本地 Windows 帐户,又可以立即使计算机进入睡眠/待机状态。我找到了可以执行其中一项但不能注销然后睡眠的解决方案,只需一个脚本即可。SHUTDOWN 命令不提供此功能,我也找不到任何其他选项。

目前这是针对 Win XP、SP3 的,但很快我也会想要一个 Windows 7 解决方案。

感谢您提出任何想法或者解释为什么这是不可能的。:)

答案1

看一眼关机。应该完全按照您的意愿进行。

答案2

这个批处理文件很棒!我做了一些调整,使其能够与 Windows XP 兼容,同时将等待待机计划任务的时间降到最低。计划任务每​​分钟只运行一次,因此我将最大等待时间设置为 1 分 15 秒。现在,我只需单击批处理文件图标即可注销并待机!

以下是我一步步设置的方法:

  1. 创建目录"C:\MyProg"

  2. 创建并保存文本文件"C:\MyProg\Standby.bat"

     rem * Standby *  
     rundll32.exe powrprof.dll,SetSuspendState
    
  3. 创建并保存文本文件“C:\MyProg\Logoff-Standby.bat”

     rem * Logoff & Standby *  
     rem  
     rem from http://superuser.com/questions/122432/how-can-i-logoff-and-go-to-stand-by-via-win-xp-script
    
     rem  
     rem * Find time to schedule the standby task *  
     rem  
     rem Get current time hours, minutes, and seconds  
     set curtime=%time%  
     set curhh=%curtime:~0,2%  
     set curhh=%curhh: =%  
     set curmm=%curtime:~3,2%  
     set curmm=%curmm: =%  
     set curss=%curtime:~6,2%  
     set curss=%curss: =%  
     rem Set values for near seconds, minutes, and hours  
     rem Scheduled tasks can only run at a new minute, so bump the time up by 1 min, 15 sec and then round down to zero seconds
     set /a nearss=%curss% + 15  
     set /a nearmm=%curmm% + 1  
     set /a nearhh=%curhh%  
     if %nearss% gtr 59 (  
         set /a nearss=%nearss% - 60  
         set /a nearmm=%nearmm% + 1  
     )  
     if %nearmm% gtr 59 (  
         set /a nearmm=%nearmm% - 60  
         set /a nearhh=%nearhh% + 1  
     )  
     if %nearhh% gtr 23 set /a nearhh=%nearhh% - 24  
     rem Add leading zero to minutes and hours  
     if %nearmm% lss 10 set nearmm=0%nearmm%  
     if %nearhh% lss 10 set nearhh=0%nearhh%  
     rem Set neartime to result rounded down to zero seconds  
     set neartime=%nearhh%:%nearmm%:00  
     rem  
     rem * Schedule task to standby *  
     rem  
     schtasks /create /tn "standby" /tr C:\MyProg\standby.bat /sc once /st %neartime% /ru System  
     rem  
     rem * Logout *  
     rem  
     shutdown -l -f
    
  4. 右击C:\MyProg\Logoff-Standby.bat>发给>桌面(创建快捷方式)

答案3

创建批处理文件,

schtasks /create /tn "sleep" /tr c:\scripts\sleep.bat /sc once /st %neartime% /ru System
rundll32 user32.dll,ExitWindowsEx

第一行创建一个计划任务,从现在起 1 分钟后以系统用户身份运行 sleep.bat。第二行将注销您的帐户。

在 sleep.bat 文件中,您需要添加以下行,以使 PC 进入睡眠状态。

rundll32.exe powrprof.dll,SetSuspendState

在第一个批处理文件中,你需要计算出从现在起 1 分钟后的时间 (%neartime%)

set curtime=%time%
set curhh=%curtime:~0,2%
set curhh=%curhh: =%
set curmm=%curtime:~3,2%
set curmm=%curmm: =%
if "%curmm:~0,1%" == "0" set curmm=%curmm:~1,1%
set /a nearmm=%curmm% + 2
set /a nearhh=%curhh%
if %nearmm% gtr 59 (
    set /a nearmm=nearmm% - 60
    SET /A nearhh=%nearhh% + 1
)
if %nearmm% gtr 59 if %nearhh% gtr 23 set /a nearhh=%nearhh% - 24
if %nearmm% lss 10 set nearmm=0%nearmm%
set neartime=%nearhh%:%nearmm%

这不会立即发生,但会实现自动化。

或者,您可以将您的电脑设置为从睡眠状态恢复时锁定,然后睡眠命令本身将锁定该站(虽然这不会将您注销,但它已关闭!)

相关内容