代码示例:
$UpdateSession = New-Object -ComObject 'Microsoft.Update.Session'
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
$Updates = $UpdateSearcher.Search('IsInstalled=1')
$Updates | Where-Object { $_.Title -like '*KB2506143*' }
我正在尝试以编程方式卸载 WMF3,但在尝试使用 wusa.exe 时不断出现错误,
wusa /uninstall /kb:2506143 /quiet /norestart /log:C:\log.evt
CbsClient::CbsClient.00110: 未能创建 CBS 会话实例
CbsClient::CbsClient.00127: 退出并显示错误代码 0X80040154(未注册类)
UninstallWorker.00664: 开始搜索
CbsClient::OpenPackageByKB.00268: CBS 会话未初始化.
CbsClient::OpenPackageByKB.00320:退出,错误代码为 0X8000ffff(灾难性故障)
UninstallWorker.00667:失败:KB2506143 的 OpenPackageByKB()
UninstallWorker.00799:退出,错误代码为 0X8000ffff(灾难性故障)
RebootIfRequested.01446:未安排重新启动。IsRunWizardStarted:0,IsRebootRequired:0,RestartMode:1由于错误 2147549183“灾难性故障”(命令行:“ ”)
而无法卸载 Windows 更新C:\windows\System32\wusa.exe /uninstall /kb:2506143 /quiet /norestart /log:C:\log.evt
wWinMain.01962: 卸载更新失败;错误:0X8000ffff,灾难性故障。命令行:C:\windows\System32\wusa.exe /uninstall /kb:2506143 /quiet /norestart /log:C:\log.evt
wWinMain.01998:退出,错误代码为 0X8000ffff(灾难性故障)
所以我正在追求使用 WUA API。上面的代码片段给了我一个$Null
回报,但我可以使用Get-Hotfix -ID KB2506143
orGet-WmiObject -Class Win32_QuickFixEngineering -Filter 'HotFixID="KB2506143"'
来查找更新。
这个问题类似,但是在找到补丁后尝试卸载补丁时访问被拒绝,而我的问题是:我如何首先找到补丁?
我不确定补丁是如何应用的,所以如果我在找到它后遇到同样的问题,至少我有这个解决方案。