排查 Configuration Manager 中的软件更新部署问题
本文介绍如何排查未成功运行的软件更新部署问题。
原始产品版本: Microsoft System Center 2012 Configuration Manager,Microsoft System Center 2012 R2 Configuration Manager
原始 KB 数: 3090264
总结
在 Configuration Manager 中部署软件更新时,通常会将更新添加到软件更新组。 然后将软件更新组部署到客户端。 创建部署时,更新策略将发送到客户端计算机。 更新内容文件将从分发点下载到客户端计算机上的本地缓存。 然后,更新可用于在客户端上安装。 通常,此过程已成功完成,但工作量很少。 但是,有时可能会出现导致更新部署失败的问题。 我们介绍两种最常见的故障方案,并为每个方案提供故障排除建议。
有关 Configuration Manager 中的软件更新的详细信息,请参阅 软件更新简介。
软件更新部署失败时,问题通常分为两类之一:
- 更新无法下载。
- 遇到意外的重新启动,或更新安装在维护时段外。
更新无法下载
当更新未下载到客户端时,请先检查CAS.log、ContentTransferManager.log和DataTransferService.log文件是否存在错误。 若要了解如何下载更新,请参阅 在 Configuration Manager 中跟踪软件更新部署过程
验证客户端是否位于与分发点的边界组关联的相应边界中。 有关边界组的详细信息,请参阅 Configuration Manager 中的配置边界和边界组。
检查软件更新包状态,并验证更新是否已下载并安装在分发点上。 如果未在与客户端边界组关联的分发点上安装内容,请检查是否必须启用内容位置的回退。 有关详细信息,请参阅“什么是回退”及其含义?
如果客户端收到下载位置但无法下载内容,请尝试通过访问内容的 URL 手动下载内容。 可以通过查看DataTransferServices.log来查找 URL。
特定更新的安装、取代或检测问题
- 检查扫描是否在部署评估期间失败。 有关扫描失败的详细信息,请参阅 Configuration Manager 中的软件更新扫描失败疑难解答。
- 查看WUAHandler.log和WindowsUpdate.log,查找在更新安装过程中收到的错误。
- 若要排除更新本身的安装问题,请手动安装更新或从Microsoft更新安装更新(如果可能)。 查看更新安装是否成功。
- 大多数 .NET Framework 更新失败是由损坏的 .NET Framework 安装引起的。 在这些情况下,请尝试手动安装更新。 如果安装过程失败,请参阅修复Windows 更新错误。
有关详细信息,请参阅 安装、取代或检测特定更新的问题。
在维护时段外安装意外重启或更新
如果可能,可以重现问题, 请启用详细日志记录和调试日志记录 。
查看客户端上的ServiceWindowManager.log文件,并确定可用的服务窗口。
ServiceWindowManager.log包含有关维护时段及其开始和结束时间的信息。 排查与客户端上的软件更新安装相关的问题时,此信息非常有用。
若要在客户端上查找可用维护时段(服务时段)的列表,请打开ServiceWindowManager.log,然后搜索 “刷新服务 Windows ”字符串。 紧跟在此行之后,你将看到计算机上的适用服务窗口列表,如以下示例所示:
Refreshing Service Windows..... ServiceWindowManager Populating instance of ServiceWindow with ID=7cb56688-692f-4fae-b398-0e3ff4413adb, ScheduleString=02C159C0381A200002C159C0381B200002C159C0381C200002C159C0381D200002C159C0381E2000, Type=6 ServiceWindowManager This is a one shot Service Window that has already finished. ServiceWindowManager Duration for the Service Window is Total days: 0, hours: 00, mins: 00, secs: 00 ServiceWindowManager Populating instance of ServiceWindow with ID=90a5f436-364c-48c7-8dc7-c5014abcbea8, ScheduleString=00084AC028592000, Type=6 ServiceWindowManager StartTime is 02/09/14 00:00:00 ServiceWindowManager Duration for the Service Window is Total days: 1, hours: 05, mins: 00, secs: 00 ServiceWindowManager Populating instance of ServiceWindow with ID=45dca355-3249-4845-b8aa-72d0e604548e, ScheduleString=02C24AC0381C2000, Type=6 ServiceWindowManager StartTime is 02/12/14 22:00:00 ServiceWindowManager Duration for the Service Window is Total days: 0, hours: 07, mins: 00, secs: 00 ServiceWindowManager Populating instance of ServiceWindow with ID=87e4759c-2884-45e6-9261-c33ba53f596c, ScheduleString=02C24AC0381D2000, Type=6 ServiceWindowManager StartTime is 02/13/14 22:00:00 ServiceWindowManager Duration for the Service Window is Total days: 0, hours: 07, mins: 00, secs: 00 ServiceWindowManager Populating instance of ServiceWindow with ID={1E957DDD-0A26-434C-952A-586F3E31E319}, ScheduleString=00302B0018192000, Type=1 ServiceWindowManager StartTime is 02/16/14 01:00:00 ServiceWindowManager Duration for the Service Window is Total days: 0, hours: 03, mins: 00, secs: 00 ServiceWindowManager Populating instance of ServiceWindow with ID=36da6950-3d1e-4027-be0e-7b16a4daee7e, ScheduleString=02C24AC0101E2000, Type=6 ServiceWindowManager StartTime is 02/14/14 22:00:00 ServiceWindowManager Duration for the Service Window is Total days: 0, hours: 02, mins: 00, secs: 00 ServiceWindowManager Populating instance of ServiceWindow with ID=028bfbc0-7120-4081-a268-0e664a92ac4a, ScheduleString=00074AC0005F2000, Type=6 ServiceWindowManager StartTime is 02/15/14 00:00:00 ServiceWindowManager Duration for the Service Window is Total days: 1, hours: 00, mins: 00, secs: 00 ServiceWindowManager Populating instance of ServiceWindow with ID=49fd80be-ac4b-4877-974d-ecd09958926d, ScheduleString=02C24AC0381B2000, Type=6 ServiceWindowManager StartTime is 02/11/14 22:00:00 ServiceWindowManager Duration for the Service Window is Total days: 0, hours: 07, mins: 00, secs: 00 ServiceWindowManager Populating instance of ServiceWindow with ID=ad27b0ca-8c74-43c7-8200-1f601880bd75, ScheduleString=02C24AC0381A2000, Type=6 ServiceWindowManager StartTime is 02/10/14 22:00:00 ServiceWindowManager Duration for the Service Window is Total days: 0, hours: 07, mins: 00, secs: 00 ServiceWindowManager
通常,包含所有小写字母数字字符的服务时段都是非工作时间(NBH)维护时段。 它们基于软件中心中配置的工作时间。 但是,包含所有大写字母数字字符的 ID 的服务时段是为 Configuration Manager 控制台中的集合定义的维护时段。 在此示例中,除 ID 为 1E957DDD-0A26-434C-952A-586F3E31E319 的服务时段除外。 此窗口是为保存客户端的集合定义的维护时段。
查看UpdatesDeployment.log文件。 找到以下行,检查是否已将部署设置为忽略维护时段:
Notify reboot with deadline = Sunday, Feb 09, 2014. - 21:30:17, Ignore reboot Window = True, NotifyUI = True
查看MaintenanceCoordinator.log文件。 找到以下行以检查部署是否已设置为忽略维护时段。 值为
swoverride
1 表示启用忽略维护时段设置。RequestPersistence(id=Update download job, persist=1, swoverride=1, swType=4, pendingWFDisable=0, deadline=1)
查看SCNotify.log文件,并查找以下行以检查用户是否单击了重启通知以启动重启:
ConfirmRestartDialog: User chose to restart/logoff. (Microsoft.SoftwareCenter.Client.Pages.ConfirmRestartDialog at ButtonRestart_Click) ConfirmRestartDialog: user is allowed to restart (Microsoft.SoftwareCenter.Client.Pages.ConfirmRestartDialog at ButtonRestart_Click) The user is allowed to restart the computer. Initiating restart. (Microsoft.SoftwareCenter.Client.Data.WmiDataConnector at RestartComputer)
查看 Configuration Manager 控制台中的部署属性,检查部署是否设置为替代维护时段。 如果部署未设置为替代维护时段,但客户端日志表明部署确实覆盖了维护时段,请查看审核状态消息,以检查部署是否已由某人修改。
若要查看审核状态消息,请导航到 Configuration Manager 控制台>监视>系统状态>消息查询。 右键单击“所有状态消息”,单击“显示消息”,选择时间范围,然后单击“确定”。
在 Configuration Manager 状态消息查看器窗口中,导航到“查看>筛选器”,然后筛选消息 ID = 30197。 如果部署已修改,你将看到如下所示的状态消息:
Severity Type Site code Date / Time System Component Message ID Description Information Audit PR1 2/9/2014 11:57:49 PM PR1SITE.CONTOSO.COM Microsoft.ConfigurationManagement.exe 30197 User "DOMAIN\User" modified updates assignment 4 ({BAFB1BDB-7A6C-4DCF-9866-6C22DF92346A}).