如何确定Windows何时完成重启?

时间:2009-04-21 18:27:50

标签: c# reboot windows-update

我正在使用Windows Update API来更新一堆VM。随着Windows Update的出现,不可避免的重启。任何人都可以想到一种方法,我可以告诉远程服务器,如果Windows框确实已完成重启?所有的想法或想法都会受到赞赏。

编辑: 由于VM位于Lab Manager中并使用隔离配置,因此WMI不起作用,尽管我考虑使用VM在备份时发送信号。由于等待机器的应用程序可能在任何数量的机器上,所以没有办法可靠地知道通知谁,所以它似乎不合理。但是时间并不重要(尽管我知道这会在Service Pack关闭的时候咬我)我在PING上取得了很好的成绩,然后等了5分钟到目前为止,所以我现在要用它。如果我遇到异常,那么我会尝试在重新启动时实现虚拟机。谢谢大家。

6 个答案:

答案 0 :(得分:5)

等待它响应ping。

根据您的意见:

1 - Use this script

2 - 如果您对该脚本有任何错误,follow these instructions.

答案 1 :(得分:2)

在事件日志中检查此事件:

Event Type: Information
Event Source:   EventLog
Event Category: None
Event ID:   6005
Date:       7/27/2007
Time:       12:56:24 PM
User:       N/A
Computer:   IWSDEV
Description:
The Event log service was started.

答案 2 :(得分:1)

此问题的更一般版本是How do I know if a system has powered on?

答案 3 :(得分:1)

现实是你无法知道它何时完成启动。引导过程非常异步,因此无论您使用什么标准来确定它是否已完成“引导”都可能在其他事情完成之前发生。

我建议的是确定您真正想知道的内容。具体是什么,你在等什么?找到一种方法来确定是否已经发生这种情况并忘记担心“引导”。

如果您只需要知道机器已备份但可能尚未完成所有启动后加载,请在启动序列中添加一些内容或者为代码发出信号的服务。发出此信号时,请采取您需要采取的任何措施。

答案 4 :(得分:1)

您可以在计算机上安装启动程序或服务,以便每次重新启动时发送电子邮件或某种类型的基于网络的发布。

答案 5 :(得分:0)

在完全需要重新启动之前,Windows仅稍微重启: - )

如果您特别想查询VM的状态,那么您应该查看这些处理Virtual Server 2005 API的链接:

IVMVirtualMachine界面......

http://msdn.microsoft.com/en-us/library/aa368465(VS.85).aspx

...有一个名为State的属性......

IVMVirtualMachine :: State Property

http://msdn.microsoft.com/en-us/library/aa368637(VS.85).aspx

...将从VMVMState Enumeration返回一个值...

http://msdn.microsoft.com/en-us/library/aa368922(VS.85).aspx

在更一般的层面上,您应该定义您想要和运行多少Windows。您是否认为网络堆栈已准备好“重新启动”,或者您是否需要IIS / SQL或其他一些应用程序级服务?

我可能会编写一个应用程序来检查服务器的“心跳” - 该应用程序可能与调用Windows Update的内容相同。然后,您将获得一个很好的“控制台”,向您显示服务器的状态。心跳应用程序可以ping服务器,点击静态html页面,点击远程事件日志,使用WMI或任何你定义的足以考虑重新启动服务器。