我想每晚重新启动 Windows Server 2003。
如果我使用“shutdown -r”,则只有在没有用户连接到控制台或连接的用户没有任何打开的文档(例如,记事本在关闭前会询问权限)的情况下,此方法才能正常工作。如果用户连接到控制台但会话被锁定,这也会导致重启失败。
如果我使用“shutdown -r -f”,每次都能成功,但没有应用程序提供关闭的机会。它们被杀死了。不太好。
我也测试了 psshutdown,但没有得到我想要的结果。
我还测试了先使用“psshutdown -o”注销控制台用户,但遇到了同样的问题。然后我先使用“psshutdown -o”进行测试,20 秒后使用“psshutdown -o”进行测试,但第二个测试因操作已在进行中而出现错误退出。
在任何情况下,如果我按下物理电源按钮,Windows 几乎都会顺利关闭。所以这是可能的。
我正在寻找一种方法来:
- 礼貌地要求关闭应用程序
- 经过一段时间后,杀死其余的人或者模拟电源按钮的动作(可能使用 ACPI)
答案1
那么类似这样的情况怎么样:shutdown /t 60 /f
shutdown /f 的帮助表明它意味着 /t xx 大于 0。这应该给用户 60 秒的时间在重启前关闭设备。
答案2
我找到了一个很好的解决方法:tsshutdn.exe
\
即使未启用终端服务器,这也会彻底关闭所有可能的程序,并终止不合作的程序。
查看tsshutdn.exe \?
命令行选项。
答案3
这是终端服务器吗?也就是说它是否安装了终端服务器角色?如果是,那么这将是另一个选择。
http://technet.microsoft.com/en-us/library/cc773312(WS.10).aspx
此外,我还没有测试过,但这个自定义应用程序(poweroff)看起来也值得一试。