如何使用SCCM回滚补丁|使用ConfigMgr卸载Windows Update
在本文中,我将解释如何使用SCCM回滚补丁。我们将查看在远程Windows 10/11计算机上使用ConfigMgr卸载Windows更新的过程。
我经常收到电子邮件,询问如何回滚SCCM中的补丁?经过一段时间,我意识到大多数ConfigMgr管理员发现很难删除补丁。为了节省您的时间,我决定发布一个指南,介绍使用SCCM回滚补丁更新的步骤。
在Windows系统上,想要回滚已安装的更新可能有多种原因。让我们想象一下,你在Windows电脑上安装了一组更新,但是其中一个实际上导致了全面的问题。我指示你找到那个更新并将其从所有系统中删除。
要做到这一点,您必须定位更新;找到它可能需要大量调试。这样做之后,应该将其从所有系统中删除。有一个简单的过程可以做到这一点,我将在下一节中解释。
配置管理器使它更容易部署软件更新华体会体育系列甚至回滚Windows电脑上的软件更新。华体会体育系列确保Configuration Manager客户端在尝试回滚补丁之前,已在计算机上安装。
使用ConfigMgr卸载Windows Update的方法
总的来说,有三种使用ConfigMgr回滚Windows更新的方法:
- 在运行命令行中使用自定义任务序列
- 使用PowerShell脚本回退需要的补丁
- 创建一个程序并使用VB脚本删除补丁
的任务序列卸载补丁的方法似乎比使用脚本更简单。尽管有许多可用的PowerShell脚本,但其中一些可能对您卸载更新无效。在这篇文章中,我们将向您展示如何使用自定义任务序列从远程Windows计算机卸载补丁。
如何使用SCCM回滚补丁(ConfigMgr)
我们将使用以下步骤使用SCCM回滚补丁。
- 确定需要卸载的更新。
- 创建回滚补丁的自定义任务序列。
- 将任务序列部署到SCCM集合。
1.标识回滚的更新
使用SCCM卸载更新的第一步涉及识别更新。一个更新可以用它的KB号来标识,这是一个由Microsoft分配的唯一的数字。
使用以下步骤识别用于回滚的KB更新:
- 在计算机上启动控制面板。
- 去项目>项目和特性>安装更新。
- 从已安装的更新列表中,查找要卸载的更新并记下其KB号。例如,KB3004394是我们将使用SCCM回滚的那个。
2.创建自定义补丁回滚任务顺序
一旦确定了要使用SCCM回滚的补丁的KB数,下一步就是在SCCM中创建自定义任务序列。自定义任务序列允许您添加运行命令行步骤,这里你可以用WUSA.exe命令行实用程序回滚补丁。
在Configuration Manager控制台中,导航到华体会体育系列软件库>概述>操作系统>任务序列。右键单击任务序列节点,并选择创建任务序列。
从TS选项列表中选择创建一个新的自定义任务序列并点击下一个。
对于自定义任务序列,请指定任务序列名称。您可以添加一个简短的描述,说明这个TS是关于什么的。确保您没有为这个任务序列选择任何引导映像,因为它不是必需的。点击下一个。
的总结页面显示任务序列的详细信息和配置。点击下一个。
在完成在任务序列向导页面,单击关闭。这就完成了在SCCM中创建自定义任务序列的步骤。
您在上面的步骤中创建的任务序列是一个空白的TS,它没有做任何事情,因为我们没有为任务序列添加任何指令。我们现在就做。右键单击您创建的自定义任务序列,选择编辑。在任务序列编辑器中,选择添加>一般>运行命令行。
在命令行类型中wusa.exe /uninstall /kb:KBNUMBER/quiet /norestart. exe点击好吧。请确保将KB号替换为希望回滚的KB号。任务序列现在已经为部署做好了准备。
如果你正在寻找命令的解释,它是:
- wusa.exe: Windows Update Standalone Installer可执行文件。
- /卸载:安装程序将卸载该软件包。
- / kb: KBNUMBER:安装/卸载与KBNumber相关的软件包。
- /安静:安静模式,这里没有用户交互。静默卸载补丁。
- / norestart:当与安静模式结合使用时,将不会启动重启。
3.部署回滚补丁的任务顺序
我们现在已经准备好了任务序列,它将从计算机上回滚或卸载补丁。右键单击Task序列并选择部署。在一般页面,点击浏览并选择目标任务序列的集合。点击下一个。
在部署设置页,指定要如何部署任务序列。动作设置为安装,您必须选择目的。根据需要选择目的,单击下一个。请参考以下文章了解Available和Required之间的差异SCCM中的部署选项。
在调度选项卡,您可以为任务序列部署指定计划。根据您配置的时间表,将从计算机上卸载更新。点击下一个。
为分发点配置所需的选项并单击下一个。
中的TS部署设置总结页面并点击关闭在完成。
4.验证使用SCCM卸载补丁
在使用SCCM部署回滚补丁的任务序列之后,我们将在计算机上验证部署。登录客户端计算机(Windows 10或Windows 11)。启动软件中心。华体会体育系列我们看到任务序列执行已经完成,补丁删除成功。
验证是否使用SCCM卸载了补丁的另一种方法是查看位于客户机机器上的smsts.log文件。在smsts.log,下面一行确认补丁已成功卸载。
成功完成操作(运行命令行),退出win32代码3010
你好Brajwal,
如果我推送一个任务序列来删除一个特定的KB,而这个KB已经使用ADR推送了,这是否保证不会使用ADR再次安装该KB ?
wusa卸载命令静默模式不适用于服务器2016和2019。你知道一种方法可以悄悄地删除2016/2019年的更新吗?
带有/quiet选项的命令不适用于win2019服务器。在没有/安静的情况下,它会起作用。如何在win2019服务器上卸载没有用户交互的更新?
嗨。
现在有了累积更新,这个突击队就不起作用了。
尝试使用命令- dism /Online /Remove-Package /PackageName
对我来说效果很好
我试图删除2020年6月的Windows 10更新。但是在软件中心,状态是华体会体育系列正在安装,但是什么都没有发生。另外,检查了smsts.log,没有找到任何东西。
任务序列命令为:
C:\windows\system32\wusa.exe /uninstall /kb:4561602 /quiet /norestart
嗨,Prajwal,一旦您使用任务序列删除了KB,您是否需要做些什么来确保它不会随着软件更新部署而再次安装?华体会体育系列我有一个问题,在KB只有一个国家
嗨,我们可以从应用程序和包模型中删除补丁吗?如果可能的话,请给我提供两个过程的信息。
我试图在windows10操作系统中修补卸载命令,如果它不接受此命令。
我在单个系统上测试了这个命令,它也出现了错误。
由于错误2147942487 "参数不正确,无法卸载Windows更新。(命令行:“C:WINDOWSsystem32wusa.exe /uninstall /kb4230204. exe”)。Msu /quiet /log”)。
这是因为当您使用/log开关时,必须提供日志文件的路径
我也尝试命令没有/log仍然得到错误。
我尝试了windows 7和windows 10操作系统的命令C:WINDOWSsystem32wusa.exe /uninstall /kb4230204 /quiet /norestart
在windows7工作,但不工作在windows10请协助我。
应该是/kb:4230204
我们可以从应用程序和包模型中删除补丁吗?如果可能的话,请提供我包装模型的流程。
我认为在WINDOWS和system32之后还有缺失。所以它应该是“C:WINDOWSsystem32wusa.exe /uninstall /kb4230204。msu /quiet /log”,根据Prajwal的评论,可能会排除/log。
你好,
我按照这些步骤在Windows 10上卸载了一个KB,退出码是87。
执行命令行:smsswd.exe /run: wusa.exe /uninstall /kb:3163912 /quiet /norestart TSManager 8/8/2016 12:21:23 PM 768 (0x0300)
[smsswd.exe] InstallSo华体会体育系列ftware 8/8/2016 12:21:24 PM 4540 (0x11BC)
PackageID = " Install华体会体育系列Software 8/8/2016 12:21:24 PM 4540 (0x11BC) "
BaseVar = ", ContinueOnError= " Instal华体会体育系列lSoftware 8/8/2016 12:21:24 PM 4540 (0x11BC)
ProgramName = ' wusa.exe /uninstall /kb:3163912 /quiet /norestart ' Insta华体会体育系列llSoftware 8/8/2016 12:21:24 PM 4540 (0x11BC)
SwdAction = ' 0001 ' Insta华体会体育系列llSoftware 8/8/2016 12:21:24 PM 4540 (0x11BC)
命令行扩展名。exe是“%1”%* InstallSoftware 8/8/2016 12:21:2华体会体育系列4 PM 4540 (0x11BC)
设置命令行:运行命令行InstallSoftware 8/8/2016 12:21:华体会体育系列24 PM 4540 (0x11BC)
InstallSoftware 8/8/2016 12:2华体会体育系列1:24 PM 4540 (0x11BC)
执行命令行:运行命令行InstallSoftware 8/8/2016 12:21:24 PM 华体会体育系列4540 (0x11BC)
进程完成,退出代码为87 InstallSoftware 8/8/2016 12:21华体会体育系列:24 PM 4540 (0x11BC)
InstallSoftware 8/8/2016 12:21:2华体会体育系列4 PM 4540 (0x11BC)
流程完成,退出代码为87 TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
!——————————————————————————————–!TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
执行操作:移除更新KB3163912失败。
参数不正确。(错误:00000057;来源:Windows) TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
在传输中设置验证器TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
设置全局环境变量_SMSTSLastActionRetCode=87 TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
设置全局环境变量_SMSTSLastActionSucceeded=false TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
清除本地默认环境TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
事件解释执行引擎忽略操作(Remove Update KB3163912)失败,继续执行TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
在传输中设置验证器TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
更新了对象C:_SMSTaskSequence的安全性。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
设置全局环境变量_SMSTSNextInstructionPointer=1 TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
设置TS执行环境变量_SMSTSNextInstructionPointer=1 TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
设置全局环境变量_SMSTSInstructionStackString= TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
设置TS执行环境变量_SMSTSInstructionStackString= TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
保存当前环境块TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
设置全局环境变量_SMSTSLastActionRetryCount=0 TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
任务执行引擎执行成功TSManager 8/8/2016 12:21:24 PM 768 (0x0300)告警解释
在传输中设置验证器TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
**************************************************************************** TSManager 8/8/2016 12:21:24点768 (0 x0300)
执行引擎结果代码:Success (0) TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
清理。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
移除认证器TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
清理任务序列文件夹TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
无法删除文件C:_SMSTaskSequenceTSEnv.dat (0x80070005)。继续。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
删除目录“C:_SMSTaskSequence”失败事件解释TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
SetNamedSecurityInfo()失败。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
SetObjectOwner()失败。0 x80070005。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
RemoveFile()操作C:_SMSTaskSequenceTSEnv.dat失败。0 x80070005。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
RemoveDirectoryW failed (0x80070091) for C:_SMSTaskSequence TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
删除卷ID文件C:_SMSTSVolumeID。7159644d-f741-45d5-ab29-0ad8aa4771ca…TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
成功注销任务排序环境COM接口。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
执行命令行:" C:WindowsCCMTsProgressUI.exe " /Unregister TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
==========[TsProgressUI started in process 4432]========== TsProgressUI 8/8/2016 12:21:24 PM 3752 (0x0EA8)
命令行:" C:WindowsCCMTsProgressUI.exe " /Unregister TsProgressUI 8/8/2016 12:21:24 PM 3752 (0x0EA8)
取消注册COM类TsProgressUI 8/8/2016 12:21:24 PM 3752 (0x0EA8)
取消注册类对象TsProgressUI 8/8/2016 12:21:24 PM 3752 (0x0EA8)
关闭完成。TsProgressUI 8/8/2016 12:21:24 PM 3752 (0x0EA8)
进程完成,退出代码为0 TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
成功注销TS进度界面。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
开始清理TS策略TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
结束TS策略清理TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
任务序列管理器ServiceMain执行完毕。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
任务序列管理器服务将被重新配置TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
任务序列管理器服务重新配置成功TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
发送成功状态消息TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
在传输中设置验证器TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
RegQueryValueExW is failed for Softwa华体会体育系列reMicrosoftSMSTask Sequence, SMSTSEndProgram TSManager 8/8/2016 12:21:24 PM 768 (0x0300)日志含义
GetTsRegValue()不成功。0 x80070002。TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
结束程序:TSManager 8/8/2016 12:21:24 PM 768 (0x0300)
日志从C:WindowsCCMLogs TSManager 8/8/2016 12:21:25 PM 768 (0x0300)
我得到同样的错误87。这几天我都被这玩意搞疯了。尝试了所有可能的和不可能的wusa -软件包和TS -没有工作。一旦我从32位CMD/Powershell运行命令,它就会失败,显示“安装程序遇到错误:0x8000fffff /灾难性失败”。禁用64位文件系统重定向也没有帮助。我需要在windows 101909上运行它。任何帮助都将不胜感激。谢谢。
你好,我在使用WUSA时遇到了很多麻烦,我认为在WUSA过程中必须在线检查。我发现dism " disc .exe /online /add-package /packagepath: " C:\Windows\Temp\Windows10.0-KB4601345-x64_PSFX。Cab”/quiet /norestart
不确定它是否适用于TS,但它比WUSA成功得多?
你好,
在任务序列方法中,TS中可以有多个KB吗?例如,我可以有KB123456和KB654321在同一个TS?
再次感谢你的精彩文章!
是的,这可以做到。您可以在命令中链接超过1 KB。
如何连接KB的指挥
wusa.exe /uninstall /kb:KBNUMBER1 /kb:KBNUMBER2 /quiet /norestart .exe
或
wusa.exe /uninstall /kb:KBNUMBER1 /quiet /norestart .exe
wusa.exe /uninstall /kb:KBNUMBER2 /quiet /norestart .exe
告诉我它是否有效。
我试着删除Office更新。但是在软件中心,状态是华体会体育系列正在安装,但是什么都没有发生。另外,检查了smsts.log,没有找到任何东西。
它能在服务器2003上工作吗?
它会在服务器2003中工作吗?
当您可以创建应用程序并验证已删除更新时,为什么要选择使用TS呢?
是的,你是对的。但我想展示任务序列也可以做到这一点。
在这种情况下,您应该在开头段落中明确指出,这不是最好的解决方案,在任务序列引擎中包装命令是不必要的复杂性和客户端的开销;更多的错误,更多的日志要检查。
如果您将更新作为应用程序创建,并输入命令行删除它,那么您可以使用powershell脚本扫描系统以确认热修复程序已被删除,您还可以更好地控制重新启动。
我认为,上述解决方案远不是SCCM 2012中可用的最佳方案。