6

我正在使用 Windows Update API 来更新一堆 VM。随着 Windows 更新,不可避免的重新启动。如果windows box确实完成了重启,谁能想到我可以从远程服务器告诉我的方法?所有的想法或想法将不胜感激。

编辑:因为 VM 位于 Lab Manager 中并使用受保护的配置,WMI 将无法工作,尽管我考虑过在 VM 备份时使用 VM 发送信号。因为等待机器的应用程序可能在任意数量的机器上,所以没有办法可靠地知道通知谁,所以这似乎不合理。然而,时间并不是必需的(尽管我知道当 Service Pack 出现时这会咬我)我在 PING 上取得了很好的成功,然后到目前为止等待 5 分钟,所以我现在要使用它。如果我遇到异常,我将尝试实现虚拟机在它恢复时通知世界。谢谢大家。

4

6 回答 6

5

只需等待它响应 ping。

根据您的评论:

1 -使用这个脚本

2 - 如果您对该脚本有任何错误,请按照这些说明进行操作。

于 2009-04-21T18:31:25.543 回答
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.
于 2009-04-21T18:38:52.313 回答
1

这个问题的更一般的版本是我如何知道系统是否已开机?

于 2009-04-21T18:31:02.783 回答
1

现实情况是,您无法知道它何时完成启动。引导过程是相当异步的,因此您用来确定“引导”完成的任何标准都可能在其他事情完成之前发生。

我建议的是确定你真正想知道的。你在等什么?找到一种方法来确定这是否已经发生,而不必担心“启动”。

如果您只需要知道机器已备份但可能尚未完成所有启动后加载,请在启动序列中放置一些东西或向您的代码发出信号的服务。当这个信号发生时,采取任何你需要的行动。

于 2009-04-21T18:33:49.877 回答
1

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

于 2009-04-21T18:37:18.073 回答
0

Windows 在需要再次重新启动之前只完成了一点点重新启动:-)

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

IVMVirtualMachine 接口...

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

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

IVMVirtualMachine::State 属性

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

...这将从 VMVMState 枚举中返回一个值...

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

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

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

于 2009-04-21T19:16:49.773 回答