离线检查未安装的Windows更新

        昨天,接到通知,需要给服务器安装KB5003638补丁,以解决Windows打印后台处理程序远程执行代码漏洞CVE-2021-1675。补丁文件大小1.8GB,在2台服务器上顺利安装,在1台服务器上提示不适用,猜测是该服务器有之前发布的补丁未安装的原因,但是由于服务器无法连接外网,要想办法在离线状态下检查出未安装的所有Windows更新。

        在经过搜索后,发现微软提供了一种方式进行离线查询,参考链接:使用 WUA 脱机扫描更新

        看了这篇文章后,经过多番尝试,最终将未安装的Windows更新跑了出来,特此记录操作步骤。

1、下载最新的Wsusscn2.cab文件,链接地址:http://download.windowsupdate.com/microsoftupdate/v6/wsusscan/wsusscn2.cab

下载完成后,将文件复制到服务器上

2、在服务器上新建一个VBS脚本文件update.vbs,写入如下代码内容:

Set UpdateSession = CreateObject("Microsoft.Update.Session")
Set UpdateServiceManager = CreateObject("Microsoft.Update.ServiceManager")
Set UpdateService = UpdateServiceManager.AddScanPackageService("Offline Sync Service", "D:\wsusscn2.cab", 1)
Set UpdateSearcher = UpdateSession.CreateUpdateSearcher()
WScript.Echo "Searching for updates..." & vbCRLF
UpdateSearcher.ServerSelection = 3 ' ssOthers
UpdateSearcher.ServiceID = UpdateService.ServiceID
Set SearchResult = UpdateSearcher.Search("IsInstalled=0")
Set Updates = SearchResult.Updates
If searchResult.Updates.Count = 0 Then
WScript.Echo "There are no applicable updates."
WScript.Quit
End If
WScript.Echo "List of applicable items on the machine when using wssuscan.cab:" & vbCRLF
For I = 0 to searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
WScript.Echo I + 1 & "> " & update.Title
Next
WScript.Quit

注:其中第三行中的路径需指向服务器上的Wsusscn2.cab文件

3、打开cmd,跳转到update.vbs文件所在的目录,执行如下命令并耐心等待:

cscript update.vbs

4、等命令执行完成,查看结果,即可根据结果逐个尝试安装补丁

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值