我们使用虚拟专用服务器来托管我们的生产 Windows Server 2003 R2 Web 服务器。托管提供商会根据自己的时间表自动安装 Windows 补丁(更新)。
我们在虚拟机上还有一个测试服务器。到目前为止,我一直在测试服务器上使用自动更新来使其保持完全最新。但是,如果生产服务器尚未安装其中一个更新,这可能会带来问题。基本上,我们不会真正在类似生产的环境中测试我们的软件。
所以我想知道的是:
- 是否有一个软件包可以比较 2 个 Windows 2003 服务器之间的 Windows 更新?理想情况下,解决方案能够并排比较 2 个服务器(想想 BeyondCompare),下载并安装/卸载更新以将测试与生产同步。
- 如果当前不存在软件,可以使用什么 API 来检索此信息以构建自定义应用程序?
- 由于我无法控制其中一个环境,您对如何在 Windows 更新时保持两个环境同步还有其他建议吗?
我发现更新列表它可以列出单台机器上的所有更新,但没有内置的比较机制,也没有说明它是否支持 Windows Server 2003。但是,从两个单独的列表中手动比较数百个更新并不是一个选择。
我还发现这个帖子它提供了一个代码示例,说明如何确定是否安装了特定更新,可以轻松对其进行调整以获取完整的更新列表。但是,当我尝试时,它不起作用 - 大概是因为代码依赖于自动更新服务,而该服务未在生产中运行。事实上,由于生产服务器在 Parallels Virtuozzo 容器中运行,启动自动更新服务可能会导致服务器文件损坏。
更新
这对我们来说最终不是什么问题,因为事实证明 Virtuozzo 非常不稳定,可能会陷入无法启动的状态。我们(勉强)设法让它运行了足够长的时间以迁移到 Hyper-V。实际上,我们必须在 Hyper-V 服务器完全验证之前进行迁移,因为 Virtuozzo 关闭了虚拟服务器,然后所有备份都无法启动。
使用 Hyper-V,我们可以管理自己的 Windows 更新。因此,我们可以先在测试环境中安装它们,然后在准备就绪时在生产环境中安装它们。只要我们保持服务器完全更新,就很容易看到生产中缺少哪些更新,并且不需要比较工具。
答案1
由于您找到的列出的应用程序可以另存为 .XML,因此只需这样做即可。然后从 Microsoft 获取 XML 比较工具,您就可以得到差异。