我们目前使用 WSUS,它对我们的工作站非常有用,可以跟踪我们的服务器需要哪些更新。
我宁愿不要让 WSUS 在凌晨自动为我们的服务器安装补丁,但我希望能够单击“立即更新这些服务器”按钮,而不需要花时间登录到每个服务器,启动 IE,转到 Windows 更新等。
请问有什么关于以低成本方式实现这一目标的建议吗?
我知道 Shavlik,但是对于几十台服务器来说它并不是最便宜的选择。
如果相关的话,服务器几乎都是 vSphere 上的所有虚拟机。
多谢。
答案1
嗯,我可以想象一种方法,但做到这一点的难易程度取决于哪个版本您正在运行的 Windows Server,或者更具体地说,您是否使用 PowerShell 来执行此操作。
如果您了解 WSUS,我希望其他人比我更了解它,您就会知道它所做的只是代理,如果配置为从您的 WSUS 服务器加载更新,它也是一个缓存。然后,它会定期与客户端通信,以检查安装了哪些更新以及哪些更新失败,并将该信息记录在中央数据库中,从而生成漂亮的报告。如果您将其分解为这些组件,您会发现为自己制作一个免费的替代方案是有希望的,但您需要将所有正确的部分放到位,只要缓存部分对您来说不是必需的,并且您将让客户端直接与 Microsoft 进行上游对话。
- 将所有客户端设置为根据自己的喜好使用组策略自动接收更新;我假设如果您使用 WSUS,您就拥有它(因为用我自己的术语来说,它们都是“大男孩”工具)。
- 使用 VBScript 或 PowerShell(显然后者更容易,因此我发表了最初的评论)直接调用更新 API,或者使用 Powershell,或者使用其中任何一个来包装免费软件实用程序,例如安装为你做这件事(我会检查该选项的许可,因为有一个专业付费版本前两个问题,SF.com 上有人问过,看看吧。有人问过这之前,我怀疑这是否是第一次或最后一次。
- 一个服务器,用于托管包含所有客户端状态的数据库。它可以是任何东西,但MySQL或者 PostgreSQL 是最便宜的;您可以只使用 ODBC 和 VBS 或 PowerShell,这取决于您想要解决多少问题。如果您正在运行 SQL Server 实例,我认为您可以与它交谈。您所需要的只是一些简单的 CRUD 操作。一位同事做了类似的事情,尽管更简单,记录了我们网站上不同计算机子集的登录情况,并更新了他使用 phpMyAdmin 查询的 MySQL 数据库。这假设您不需要漂亮的界面,并且需要为您和您的团队提供报告,而不是某些经理类型的报告。
- 编写客户端脚本来与服务器通信并使用安装的更新和错误等来更新数据库。同样,我想您可以使用一些开源工具并更改数据库组织来获得相同的影响。
现在,我确信会存在局限性。
- 听起来你可以编写脚本Windows 更新 API 仅强制执行关键更新。但是,除非您投入更多时间研究更新 API(因为 WSUS 无论如何都依赖它)或寻找更好的免费软件工具,甚至编写自己的工具,否则您所寻求的细粒度控制可能会丢失。如果您能弄清楚,您可能可以将您想要跳过的某些 KB ID 的安装列入黑名单。同样,其他人也必须这样做。
- 正如我之前提到的,这些报告看起来很性感。
- 其他很多我都忘记了。
一些好处:
- 性能更佳(我个人认为,尽管 WSUS 很有魅力,但对于一个非常简单的操作来说,它需要很多开销)。
- 更好地推动客户端错误日志记录(我来自 WSUS 3.0 商店,我认为它很烦人,我经常收到更新错误,告诉我检查客户端上的事件查看器,这种情况经常发生在我身上)。那么我们为什么要付钱呢?我觉得定制的解决方案可以让你在这个部门做得更好。
- 在处理同一台计算机的不同映像或反之亦然时具有更大的灵活性。我们的工作环境有很多计算机,并且经常重新映像;一些愚蠢的技术人员使用构造不良的映像。因此,SID 可能是一个问题,尽管微软向我们保证,除了 WSUS 之外,他们制作的所有其他产品都是如此,但 Mark Russinovich 表示。现在,根据我有限的 WSUS 经验,我的印象是,在重新映像之后,您将拥有同一台计算机的大量唯一记录(而不是做一些很酷的事情并检测具有不同 SID 或其他内容的相同主机名),或者当技术人员没有正确系统准备映像时,您将会陷入混乱(我们最近在一个拥有自己技术人员的大部门中就发生过这种情况)。
- 其他的还有很多我忘记了。
所以,简而言之,你看我也想到了这一点。只要有一点诀窍,你也许可以自己做一些很酷的事情。我知道这是一个艰巨的任务,但我认为这是最便宜的路线。
答案2
您可以配置您的组策略,以便您批准的更新可以下载到您的服务器,您只需登录并安装等待的更新即可。
您仍然必须登录到每台服务器,但您不必进行 Windows Update 麻烦,并且您可以保留对要安装哪些更新以及报告哪些更新待处理的集中控制。