在 Windows 7 中,如何知道计算机何时计划关机?

在 Windows 7 中,如何知道计算机何时计划关机?

假设我使用“shutdown -s -f -t 13600”来启动计划关机。

在 Windows XP 中,我总是会看到一个对话框,提醒我即将关机。

然而在 Windows 7 中,它会在系统托盘中显示一个弹出窗口,该窗口会在几秒钟后消失。

我如何查询或启用类似 Windows XP 的对话框以便知道何时关机?

答案1

我找到办法了。

如果不是使用shutdown -s -f -t 13600

你用shutdown -s -f -t 13600 -c "13600"

-c选项为记录的关机事件添加注释Windows 事件查看器

您的评论“13600”将显示在事件查看器中,如红色椭圆所示: 事件查看器显示系统事件

要亲自查看此视图​​:在开始菜单中键入事件查看器,然后转到 Windows 日志 -> 系统您将看到系统事件列表。

任何带有事件 ID1074将会延迟关闭。

因此,我们想要的是一些代码来获取最后一个1074事件,查找事件注释中的值并将该值(以秒为单位)添加到事件创建的时间,从而给出关闭时间。

我为 Windows PowerShell(Windows 7 附带)创建了一个函数来执行此操作:

function nextShutdownTime
{
    $events = Get-WinEvent -FilterHashtable @{logname="system"; id=1074}
    $event = $events[0]
    $eventXML = [xml]$event.ToXml()
    return $event.TimeCreated.addSeconds([int]$eventXML.Event.EventData.Data[5])
}

只需将其添加到您的 PowerShell 配置文件中,然后在 PowerShell 中运行命令nextShutdownTime即可查看预计的关机时间。

答案2

要确定是否正在进行关机,最简单的方法就是安排另一次关机。为确保万无一失,请至少设置 200 秒的超时时间。要么您会收到一条错误消息,指出已在进行关机,要么它会启动定时关机,您可以通过键入 shutdown /a 来中止该关机。

因此你输入

shutdown /r /t 600

现在你要么得到

C:\Users\Administrator>shutdown /r /t 600
A system shutdown has already been scheduled.(1190)

或者将安排新的关机。

如果您只想确保没有安排关机,您可以简单地尝试中止。要么会中止,要么会声明没有安排关机。

C:\Users\Leon>shutdown /a
Cannot abort a system shutdown. There is no shutdown in progress (1116)

答案3

我花了大约一个小时尝试让它完全按照你的要求工作。我试验了,搜索了又搜索,但还是无法做到完美,不过我还是想出了一个办法。

我尝试了所有关机组合(-i -c -d 选项),但没有效果。

我也尝试了 -i 选项后的 GUI 界面。

我也尝试过改变气球时间显示,以便它能够在系统托盘中停留更长时间,但它仍然消失了。

我最接近使用这个示例命令的是:shutdown -i -r -t 300

我认为事实是他们只是改变了它的工作方式,我不认为有任何方法可以完全解决这个问题,但现在-i会弹出一个对话框,而以前它会弹出你想要的屏幕。当我-i在 Windows 7 中使用时,我必须填写该框,结果如下:

在此处输入图片描述

然后我点击Enter并得到了这个:

在此处输入图片描述

我测试了一下,似乎“显示警告 X 秒”中可以输入的上限值只有 600,尽管实际上您最多可以输入 999(非常奇怪的编程)。

答案4

我如何查询或启用类似 Windows XP 的对话框以便知道何时关机?

Windows 7 中的原生关机程序不像以前版本的 Windows 那样提供倒计时对话框(或取消按钮)。

如果您需要安排关机并提供倒计时和取消按钮,您可以使用 HTA 应用程序,它可以包含文本、图像、倒计时和取消按钮。

以下是一个例子: HTA 脚本 - 关闭脚本和警告消息

关机对话框

来源是我的个人博客。

相关内容