我可以在WSUS中更改更新说明吗?


11

在每个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]。说明
安装此更新可解决Windows中的问题。有关此更新中包含的问题的完整列表,请参阅相关的Microsoft知识库文章,以了解更多信息。安装此项目后,您可能必须重新启动计算机。

PS C:\ Users \ Administrator> $ update [0] .Description ='“ 0x00000133”当Windows 8.1或Windows Server 2012 R2中的硬件出现故障时停止错误'

PS C:\ Users \ Administrator> $ update [0]。说明
“ 0x00000133”当Windows 8.1或Windows Server 2012 R2中的硬件出现故障时停止错误

PS C:\ Users \ Administrator> $ update = $ wsus.SearchUpdates('KB3013791')

PS C:\ Users \ Administrator> $ update [0]。说明
安装此更新可解决Windows中的问题。有关此更新中包含的问题的完整列表,请参阅相关的Microsoft知识库文章,以了解更多信息。安装此项目后,您可能必须重新启动计算机。

我的更改似乎没有提交到数据库。我丢失某种类型$wsus.SubmitChanges()$wsus.SearchUpdates()命令,或者命令返回了“ update.Clone()”,因此我的更改未保存到任何地方。

如何实现更改WSUS更新说明的目标?


$update[0].Description | Get-Member您也许可以使用.Replace()成员函数,但尚不清楚如何处理它。您需要以某种方式致电给a,Set()但我暂时看不到它是如何工作的。
mortenya

关于SuperUser的一个相关问题询问您可能已经解决的问题:如何获得每个更新的有意义的描述。看来您已经解决了这一部分,如果您能看一看,我将不胜感激。superuser.com/q/878753/99136
krlmlr

@krlmlr我一定错过了您对此问题的评论。现在,我为这里描述的问题创建了一个实际的程序,我在其超级用户页面上发布了上述问题的答案。
Physikbuddha 2015年

Answers:


7

更新资料

通过使用下面的答案,我创建了一个小工具,可以自动将说明添加到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

这只是手动设置描述的一种方式,因此我将做进一步的实验,以了解如何直接从KB网站获取描述并将其自动应用于所有新更新。我将信息添加到这篇文章中。


您几乎应该肯定将自己的答案标记为已接受甚至鼓励自己回答
jscott 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.