Phy*_*dha 11 powershell wsus windows-update windows-server-2012-r2
在每个 Microsoft 补丁日,我都有大量的新更新要批准给我的客户。但我不是“批准所有更新并继续”,而是在其知识库文章中收集有关每个更新的信息,以决定这对我们来说是否是重要更新。
这是一项非常乏味的任务,因为我必须在客户端的浏览器中输入相应的 KB 编号并等待网页加载。我想知道为什么 Microsoft 不使用 WSUS 控制面板上的更新描述框来显示真正有用的详细信息。相反,我所有的更新都是:
安装此更新以解决 Windows 中的问题。有关此更新中包含的问题的完整列表,请参阅相关的 Microsoft 知识库文章以获取更多信息。安装此项目后,您可能必须重新启动计算机。
我开始考虑一个小的 Powershell 脚本,它为我添加了必要的信息。但是我在第一步失败了,即手动更改更新描述:
PS C:\Users\Administrator> $wsus = Get-WsusServer
PS C:\Users\Administrator> $update = $wsus.SearchUpdates('KB3013791')
PS C:\Users\Administrator> $update[0].Description
安装此更新以解决 Windows 中的问题。有关此更新中包含的问题的完整列表,请参阅相关的 Microsoft 知识库文章以获取更多信息。安装此项目后,您可能必须重新启动计算机。PS C:\Users\Administrator> $update[0].Description = '"0x00000133" 当 Windows 8.1 或 Windows Server 2012 R2 中的硬件有故障时停止错误'
PS C:\Users\Administrator> $update[0].Description
"0x00000133" Windows 8.1 或 Windows Server 2012 R2 硬件故障时停止错误PS C:\Users\Administrator> $update = $wsus.SearchUpdates('KB3013791')
PS C:\Users\Administrator> $update[0].Description
安装此更新以解决 Windows 中的问题。有关此更新中包含的问题的完整列表,请参阅相关的 Microsoft 知识库文章以获取更多信息。安装此项目后,您可能必须重新启动计算机。
似乎我的更改没有提交到数据库。要么我遗漏了某种东西,$wsus.SubmitChanges()
要么$wsus.SearchUpdates()
命令返回一个“update.Clone()”,这样我的更改就不会被保存到任何地方。
如何实现更改 WSUS 更新描述的目标?
通过使用下面的答案,我创建了一个小工具,可以自动将描述添加到我的 WSUS 服务器。我决定在 Github 上发布我的工具,所以请随意尝试和测试。
https://github.com/Physikbuddha/wsus-online-descriptions/releases/latest
正如mortenya在评论部分所建议的那样,我尝试使用 Get-Member 解决该问题,但没有成功。
最后,我最终直接编辑 WSUS 数据库来更改描述。
当心!仅当您完全确定自己在做什么时才使用我的解决方案。编辑您的服务器所依赖的数据库,就像对您最好的朋友进行心脏直视手术。
我的 WSUS 安装使用Windows 内部数据库来存储更新信息。由于这个版本不允许远程查询,我不得不使用本地安装的 SQL Server Management Studio。
使用上面链接的文章提供的服务器名称连接到数据库。
我能够通过运行此查询来更改更新描述:
UPDATE tbPreComputedLocalizedProperty
SET Description = '"0x00000133" Stop error when there''s faulty hardware in Windows 8.1 or Windows Server 2012 R2'
FROM tbPreComputedLocalizedProperty p
JOIN tbUpdate u ON p.UpdateID = u.UpdateID
JOIN tbRevision r ON u.LocalUpdateID = r.LocalUpdateID
JOIN tbKBArticleForRevision kb ON r.RevisionID = kb.RevisionID
WHERE kb.KBArticleID LIKE '3013791' AND p.ShortLanguage = 'en'
GO
Run Code Online (Sandbox Code Playgroud)
这只是手动设置描述的一种方式,因此我将进一步试验如何直接从 KB 网站获取描述并将它们自动应用于所有新更新。我会把信息添加到这篇文章中。
归档时间: |
|
查看次数: |
562 次 |
最近记录: |