了解和排查 Configuration Manager 中的更新和维护问题

本文可帮助管理员了解 Configuration Manager(Current Branch)中的“更新”和“服务 ”节点。 它还可以帮助你排查在此过程中可能会遇到的常见问题。

原始产品版本: Configuration Manager(Current Branch)
原始 KB 数: 4490424

Configuration Manager 与 Microsoft 云服务同步,以获取适用于基础结构和版本的更新。 可以从 Configuration Manager 控制台中安装这些更新。

若要查看和管理更新,请确保你具有 所需的权限。 然后导航到 Configuration Manager 控制台中的 Administration>云服务>Updates 和服务。 有关详细信息,请参阅 安装 Configuration Manager 的控制台内更新。

用于更新和维护服务的主要组件列表

名称 构成名称 友好名称 二进制 说明
Configuration Manager 更新 CONFIGURATION_MANAGER_UPDATE CMUpdate CMUpdate.exe 安装更新的服务
分发管理器 SMS_DISTRIBUTION_MANAGER DistMgr Distmgr.dll 管理内容并为 PkgXferMgr 创建作业
层次结构管理器 SMS_HIERARCHY_MANAGER Hman HMAN.dll 创建、检查、处理更新并将更新复制到站点层次结构
发送方 SMS_SENDER 发送方 Sender.dll 跨 TCP/IP 网络启动站点间通信
Despooler SMS_DESPOOLER Despooler Despool.dll 处理来自父站点或子站点的传入复制文件
计划程序 SMS_SCHEDULER 计划程序 Schedule.dll 创建发送方作业
数据库通知监视器 SMS_DATABASE_NOTIFICATION_MONITOR SmsDbMon Smsdbmon.dll 监视数据库以更改某些表,并在负责处理这些更改的组件的收件箱中创建文件
DMP 下载 SMS_DMP_DOWNLOADER DmpDownloader Dmpdownloader.dll 负责将新的服务更新下载到顶级站点服务器
SMS 提供程序 SMS 提供程序 SMSProv Smsprov.dll 为站点上的 Configuration Manager 数据库分配读取和写入访问权限的 Windows Management Instrumentation (WMI) 提供程序

下载更新

服务 连接点 负责下载适用于 Configuration Manager 基础结构的更新。 在联机模式下,它每隔 24 小时自动检查一次更新。 它下载当前基础结构和产品版本的可用新更新,使其在 Configuration Manager 控制台中可用。 当服务连接点处于脱机模式时,使用 服务连接工具 手动与Microsoft云同步。

以下步骤说明了 联机服务连接点下载控制台内更新的流

步骤 1:服务连接点每 24 小时检查一次是否有可用更新 - DMPDownloader 用于下载清单 cab

每隔 24 小时,服务连接点(SCP)就会下载ConfigMgr.Update.Manifest.cab,并将其复制到 inboxes\hman.box\CFD 该文件夹。 清单标识是否有新的更新或修补程序可供下载。 DMPDownloader.log记录以下条目:

下载manifest.cab
重定向到 URL https://download.microsoft.com/download/5/2/C/52C5F0D5-2095-4227-BBA4-D3205D9B9714/ConfigMgr.Update.Manifest.cab
获取 fwd 链接并重新创建 httprequest/response
文件“C:\Program Files\Microsoft Configuration Manager\EasySetupPayload\ConfigMgr.Update.Manifest.cab”已签名并受信任。
签名根证书的指纹:cdd4eeae6000ac7f40c3802c171e30148030c072
已完成调用验证清单
已成功将Manifest.cab移动到连接器发件箱

步骤 2:层次结构管理器 (Hman) 检查下载签名、提取清单,然后处理清单并检查包的适用性

  1. SMSDBMon 删除一个空白文件(<SiteCode>。SCU) 到 C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box. 它触发 Hman 开始处理,如下所示:

    STATMSG:ID=3306 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_HIERARCHY_MANAGER” SYS=PrimarySiteMG.MGLAB.com SITE=MG1 PID=2168 TID=4888 GMTDATE=Wed Dec 21 16:15:08.957 2016 ISTR0=“C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CAS。SCU”

  2. Hman 检查下载签名,提取清单,然后处理清单并检查包的适用性。 Hman.log记录以下条目:

    文件“C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CF\ConfigMgr.Update.Manifest.CAB”已签名并受信任。
    签名根证书的指纹:cdd4eeae6000ac7f40c3802c171e30148030c072
    将文件 C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CF\ConfigMgr.Update.Manifest.CAB 提取到 C:\Program Files\Microsoft Configuration Manager\CMUStaging\
    提取的 C:\Program Files\Microsoft Configuration Manager\CMUStaging\Manifest.xml
    处理 Configuration Manager 更新清单文件 C:\Program Files\Microsoft Configuration Manager\CMUStaging\manifest.xml
    C:\Program Files\Microsoft Configuration Manager\CMUStaging\ApplicabilityChecks\CM1610-KB3209501_AppCheck_10AA8BA0.sql 具有哈希值 SHA256:EB2C2D2E27EA0ACE8D4B6E4806FD2698BDE472427F28E60FB969A11BC5D811AB
    Configuration Manager 更新(PackageGuid=10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C)适用

    如果包不适用,Hman.log中记录以下条目:

    C:\Program Files\Microsoft Configuration Manager\CMUStaging\ApplicabilityChecks\CM1610-KB3211925_AppCheck_9390F966.sql具有哈希值 SHA256:048DA8137C249AAD11340A855FF7E0E8568F5325FED5F503C4D9C329E73AD464
    SQL MESSAGE: - 不是 1610 FR2 版本,请跳过此修补程序
    Configuration Manager 更新(PackageGuid=9390F966-F1D0-42B8-BDC1-8853883E704A)不适用,应进行筛选。

    Hman 从数据库运行 ApplicabilityCheck SQL 查询。 启用 SQL 日志记录时,可以看到针对数据库运行的每个查询。 若要手动运行此过程,请执行以下步骤:

    1. 下载 cab 文件,并将其解压缩到本地计算机。

    2. 若要手动下载 cab 文件,请转到 https://download.microsoft.com/download/5/2/C/52C5F0D5-2095-4227-BBA4-D3205D9B9714/ConfigMgr.Update.Manifest.cab

    3. 使用 7-zip 或类似的工具提取 cab 文件。

    4. 提取文件后,可以看到到目前为止已发布的每个更新的所有更新 GUID。 每个 GUID 都是唯一的。

    5. 转到 ApplicabilityChecks 文件夹。

      注意

      此文件夹包含要针对站点服务器数据库运行的 SQL 查询,以确定哪个更新适用,以及安装了哪个更新。 例如,Applicability_1602Release_public.sql文件。

    6. 运行每个查询后,它会更新表中的状态标志CM_UpdatePackages。 State 的值显示包的当前状态。

步骤 3:DMPdownloader 下载有效负载和可再发行文件

如果更新适用,DMPdownloader 将使用 Setupdl.exe 下载有效负载和可再发行文件。 记录以下条目:

信息:setupdl.exe:启动 Configuration Manager 设置
INFO:将文件下载到 \\CAS.Contoso.com\EasySetupPayload\c63b412d-7c4b-4c0d-be8c-18fb35b2ff79\redist
信息:正在下载组件清单...
信息: http://go.microsoft.com/fwlink/?LinkID=746984 下载为ConfigMgr.LN.Manifest.cab
未指定代理信息。 在没有代理的情况下连接。
信息:Download() 中的 WinHttpQueryHeaders() 返回 OK (200)
信息: http://go.microsoft.com/fwlink/?LinkID=746986 下载为ConfigMgr.Manifest.cab
INFO:提取的文件 C:\windows\TEMP\ConfigMgr.LN.Manifest.xml
信息:将从 . 下载 http://go.microsoft.com/fwlink/?LinkID=808179文件。

成功下载更新后,ConfigMgrSetup.log记录以下条目:

信息:文件哈希检查成功检查DeviceClient_WinCE7.0_X86.CAB
信息:setupdl.exe:完成

若要下载可再发行文件,DMPDownloader 将从 InstallDir>\Bin\x64 文件夹中的Manifest.xml文件<读取。 例如:

<RedistManifestVersion>201702</RedistManifestVersion>
<Redist ManifestUrl=http://go.microsoft.com/fwlink/?LinkID=841450“/>
<LanguagePack ManifestUrl=“”http://go.microsoft.com/fwlink/?LinkID=841442/>

可以使用以下命令手动下载可再发行文件:

setupdl.exe /RedistUrl http://go.microsoft.com/fwlink/?LinkID=841450 /LnManifestUrl http://go.microsoft.com/fwlink/?LinkID=841442 /RedistVersion 201702 /NoUI "C:\temp\redist"

步骤 4:DMPDownloader 将 CMU 文件放入服务连接点发件箱

  • 如果发件箱具有远程角色,则它位于 MP\OUTBOXES\MCM.box
  • 如果发件箱位于站点服务器上,则位于 inboxes\hman.box\ForwardingMsg

文件排量管理器(FDM)将 .CMU 文件从服务连接点发件箱移动到 inboxes\hman.box\ForwardingMsg 站点服务器。 此通知文件标记更新包可供安装。

如果尚未将层次结构配置为具有 Microsoft Intune 订阅,则会在Hman.log中记录以下条目:

验证 CMU 文件 C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CF\e8e74b72-504a-4202-9167-8749c223d2a5。没有 Intune 订阅的 CMU。

如果已配置订阅,则会处理包,并且不会创建任何日志条目。

步骤 5:使用适用于环境的更新更新更新管理控制台

Configuration Manager 管理控制台将显示可用的适用更新。 可以通过检查表中的 “状态 ”列 CM_UpdatePackages 来验证它。 以下状态类型显示控制台中可用的更新:

  • APPLICABILITY_SUCCESS = 327682
  • APPLICABILITY_HIDE = 393213
  • APPLICABILITY_NA = 393214
  • 可用 = 262146

请考虑以下相关文件夹:

  • %Program Files%\Microsoft Configuration Manager\CMUStaging

    此文件夹包含 ConfigMgr 清单 cab(例如:https://download.microsoft.com/download/5/2/C/52C5F0D5-2095-4227-BBA4-D3205D9B9714/ConfigMgr.Update.Manifest.cab),下载并解压缩。Hman

  • %Program Files%\Microsoft Configuration Manager\EasySetupPayload

    此文件夹包含更新的实际安装文件。 没有Setup.exe文件。 而是使用 Install.map 文件进行安装。

  • %Program Files%\Microsoft Configuration Manager\CMUClient

    此文件夹包含最新的客户端安装文件。 文件直接从 EasySetupPayload 文件夹复制。 它们将成为名为 Configuration Manager 客户端包 的包,并复制到所有子主站点。

排查下载问题

在开始故障排除之前收集以下数据:

  • Hman.log

  • DMPDownloader.log

  • Hman.box 的每个子文件夹中的文件

  • 以下 SQL 查询的输出:

    select * from CM_UpdatePackages
    select * from CM_UpdatePackageSiteStatus
    
  • 以下注册表项的输出:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\COMPONENTS\SMS_DMP_DOWNLOADER
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\AIUS
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\SMS_DMP_CONNECTOR

当更新停滞在 控制台中下载 时,请检查DMPDownloader.log以查看服务连接点现在是否正在下载文件。 对于连接问题,请检查是否 满足 Internet 访问要求

下载失败可能在以下阶段发生:

可以使用以下 SQL 查询返回的 GUID 替换示例 URL 中的包 GUID:

select * from CM_Updatepackages

问题 1:无法下载简单的安装有效负载,但出现异常:远程服务器返回错误:(400) 错误请求

DMPDownloader.log中记录以下错误:

警告:无法下载简单的安装有效负载,但出现异常:远程服务器返回错误:(400) 错误请求。

要解决该问题,请执行以下步骤:

  1. ProxyName检查注册表子项的值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\AIUS

  2. 运行以下命令验证当前代理配置:

    netsh winhttp show proxy
    
    netsh winhttp show proxy source=ie
    
  3. 检查旁路列表,并确保 将 *.microsoft.com*.windowsupdate.com 添加到绕过列表。 否则,请运行以下命令:

    netsh winhttp set proxy proxy-server="ProxyServerName" bypass-list="*.microsoft.com", "*.windowsupdate.com"
    
  4. 重启 SMS 执行服务(SMSExec)。

  5. 如果问题仍然存在,请重新安装服务连接点角色。

问题 2:无法下载管理员 UI 内容有效负载,但异常:基础连接已关闭

DMPDownloader.log中记录以下错误:

错误:无法下载管理员 UI 内容有效负载,但异常:基础连接已关闭:无法建立 SSL/TLS 安全通道的信任关系。
...
根据验证过程,远程证书无效。

若要解决此问题,请在 Internet Explorer 中输入以下 URL,并检查是否可以下载它:

http://download.windowsupdate.com/windowsupdate/redist/standalone/7.4.7600.226/windowsupdateagent30-x86.exe

如果无法下载该文件,请检查防火墙以确保它不会阻止连接。 TCP 端口 443 和 80 必须从以下源和目标中免除:

  • 源 = SiteServer 或代理服务器(如果使用代理)
  • 目标 = windowsupdate.com 和 microsoft.com

问题 3:未能调用 AdminUIContentDownload。 error = [错误代码: -2147467261,错误消息:指针无效]

DMPDownloader.log中记录以下错误:

未能调用 AdminUIContentDownload。 error = [错误代码: -2147467261,错误消息:指针无效]

若要解决此问题,请使用问题 1 的解决方法

问题 4:未能调用 Initialize。 error = [错误代码: -2147467261,错误消息:指针无效]

DMPDownloader.log中记录以下错误:

未能调用 Initialize。 error = [错误代码: -2147467261, 错误消息: 指针无效]。

若要解决此问题,请检查注册表子项是否存在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\SMS_DMP_CONNECT 。 如果没有,请创建子项。 然后,删除文件夹中的所有文件 Hman.box\CFD ,然后重新启动 SMS Executive Service (SMSExec)。

安装更新之前

在 Configuration Manager 控制台中安装更新之前,请查看以下步骤。

步骤 1:查看更新清单

查看以下适用的更新清单,了解在开始更新之前要执行的操作:

步骤 2:测试数据库升级

由于 Configuration Manager 中引入的更改,因此,如果满足以下条件,则不再需要测试数据库升级或推荐步骤:

  • 数据库并不怀疑。
  • 数据库不受 Configuration Manager 显式支持的自定义项修改。

如果从旧版产品(如 System Center 2012 Configuration Manager)升级到 Configuration Manager,仍建议测试数据库升级。

有关详细信息,请参阅 安装更新时测试数据库升级。

步骤 3:在安装更新之前运行先决条件检查器

安装更新之前,请考虑运行针对该更新的先决条件检查。 有关详细信息,请参阅 在安装控制台内更新之前。

更新复制

以下步骤说明了 安装复制到其他站点的控制台内更新的流

步骤 1:该过程从管理中心站点或独立主站点开始

当管理员选择“安装以启动更新安装或运行先决条件检查时,该过程将启动。

步骤 2:层次结构管理器 (Hman) 使用共享文件夹 \\[servername]\EasySetupPayload 作为源创建或更新包

  1. CM_UpdatePackages_UPD_HMAN 开始该过程,SMSDBMON 删除文件以唤醒 Hman 以开始处理。 Smsdbmon.log记录以下条目:

    RCV:更新 CM_UpdatePackages_UPD_HMAN CM_UpdatePackages [2 ] SMS_DATABASE_NOTIFICATION_MONITOR
    已修改层次结构管理器的触发器定义[CM_UpdatePackages_UPD_HMAN]:更新时表CM_UpdatePackages(State),在 dir C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CF\
    SND:已删除 C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CF\2.ESC

  2. Hman 运行以下查询来检查选择哪个更新进行安装:

    SELECT TOP 1 convert(NVARCHAR(40), PackageGuid) FROM CM_UpdatePackages WHERE State=2
    

    Hman.log记录以下条目:

    INFO:找到 2.ESC 文件。 需要更新简单的安装包。
    获取更新包 10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C、\SiteServerFQDN\EasySetupPayLoad\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C

  3. 如果下载的包的包哈希相同,则会记录以下条目:

    设置源文件夹哈希不会更改。 跳过更新。

    否则,将记录以下条目:

    信息:已成功请求的包CAS10001从其源更新。
    信息:更新的包CAS10001和SMS_DISTRIBUTION_MANAGER会将内容复制到除辅助站点以外的所有站点服务器。 内容将存储在站点服务器上的内容库中。 检查distmgr.log是否为复制状态。

有一个用于 HMAN 的收件箱触发器,该触发器在看到文件夹中的文件 Hman.box\CFD 时被调用。 验证此触发器是否存在。 为此,请检查站点服务器上的以下注册表子项(在版本 1511 中引入的新收件箱):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Triggers\<SiteServer>\CM_UpdatePackages_UPD_HMAN

值名称和数据:

  • 筛选器 - (状态 = 2 或状态 = 196612) 和 UPDATE(状态)
  • 目标服务 - 层次结构管理器 (CF)

步骤 3:在站点数据库中,EasySetupSettings 表将更新为更新的 PackageID

记录以下条目:

获取更新包 10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C、\\SiteServerFQDN\EasySetupPayLoad\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C
使用 EXEC sp_UpdateEasySetupSettings N'CAS10001','2',N'561BE7B704CA99A8DB6697886E75BD7C4812324D0A637708E863EC9DF97EFB94'

可以通过运行以下 SQL 查询之一来查找 PackageID 更新的值:

Select * from EasySetupSettings
Select PkgID from SMSPackages where name = 'Configuration Manager Easy Setup Package'

SMSDBMon 删除 <PackageGUID>。CME 以 Hman.box\CFD 保持 HMAN 繁忙,以便不会处理其他文件。 以下条目记录在Smsdbmon.log中:

SND:已删除 C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CF\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C。CME

步骤 4:分发管理器(Distmgr)将更新文件从 \\[servername]\EasySetupPayLoad 复制到管理中心站点或独立主站点服务器计算机上的内容库文件夹 ContentLib

Distmgr.log中记录以下条目:

找到包属性更新了包“CAS10001”通知
信息:包“CAS10001”设置为仅复制到站点服务器。
从源 \\SiteServerFQDN\EasySetupPayLoad\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C 为包CAS10001创建包快照

可以筛选线程 ID Distmgr.log以检查状态。 若要获取线程 ID,请检查注册表项的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\COMPONENTS\SMS_DISTRIBUTION_MANAGER包处理队列值。

步骤 5:分发管理器创建一个小型作业,用于将内容复制到子主站点(如果适用)

Distmgr.log中记录以下条目:

将 CMiniJob 传输根设置为 C:\SMSPKG\CAS10001。PCK.1
创建了小型作业,用于将包的压缩副本CAS10001发送到站点 MG1。 传输根 = C:\SMSPKG\CAS10001。PCK.1

步骤 6:计划程序计划文件复制作业,将内容传输到子主站点

Scheduler.log中记录以下条目:

在内存中找到 1 个作业,在作业源中找到 10 个作业。
~指令文件 = C:\Program Files\Microsoft Configuration Manager\inboxes\schedule.box\tosend\00000391.Idb
<更新 JOB 00000391> [Configuration Manager 简易安装包的软件分发, 包 ID = CAS10001]~
<作业状态 - 完成>~

步骤 7:发件人管理将更新传输到所有子主站点(如果适用)

Sender.log中记录以下条目:

~包文件 = C:\SMSPKG\CAS10001。DLT.5.6
~指令文件 = C:\Program Files\Microsoft Configuration Manager\inboxes\schedule.box\tosend\00000391.Idb
~发送已启动 [C:\SMSPKG\CAS10001。DLT.5.6]
~已完成向站点 PRI 发送 SWD 包CAS10001版本 6
~发送成功完成

步骤 8:复制过程在主站点继续。 发送方完成更新到子主站点的传输后,站点服务器将唤醒以开始处理更新

记录以下条目:

在内存中找到 1 个作业,在作业源中找到 10 个作业。
~指令文件 = C:\Program Files\Microsoft Configuration Manager\inboxes\schedule.box\tosend\00000391.Idb
<更新 JOB 00000391> [Configuration Manager 简易安装包的软件分发, 包 ID = CAS10001]~
<作业状态 - 完成>~

步骤 9:Despooler 将内容文件移动到主站点服务器计算机上的 ContentLib 内容库文件夹中

Despool.log中记录以下条目:

收到的包MG100006版本 1。 压缩文件 - C:\SMSPKG\CAS10001。PCK.1 作为 C:\Program Files\Microsoft Configuration Manager\inboxes\despoolr.box\receive\ds_r7or9.pkg
内容库:C:\SCCMContentLib
从 C:\SMSPKG\CAS10001提取。PCK.temp
提取包CAS10001
提取内容 CAS10001.1
为CAS10001编写包定义
包CAS10001(版本 0)存在于分发源中,保存较新版本(版本 1)。
存储的包CAS10001。 存储包版本 = 1

步骤 10:分发管理器将包的进程标记为成功

Distmgr.log中记录以下条目:

找到包属性更新了包“CAS10001”通知
将包“CAS10001”添加到包处理队列。
包“CAS10001”的启动包处理线程,
开始更新包CAS10001...
已成功创建/更新包CAS10001

然后,将为子主站点中的 Configuration Manager 更新创建通知文件:

已创建通知文件 (10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C。用于CONFIGURATION_MANAGER_UPDATE的 CMI

排查复制问题

常规故障排除步骤:

步骤 1:检查包的历史记录和当前状态

PackageGUID确定有问题的包。 为此,请运行以下 SQL 查询:

select * from EasySetupSettings
select SourceVersion, StoredPkgVersion from SMSPackages where PkgID in (select packageid from EasySetupSettings)

运行以下 SQL 查询,然后查看 问题的状态PackageGUID

select * from CM_UpdatePackages
select * from CM_UpdatePackages_Hist order by RecordTime desc

步骤 2:查看管理中心站点和相关主站点的相关日志

查看以下日志:

  • Hman.log或Hman.lo_
  • CMUpdate.log或CMUpdate.lo_
  • Distmgr.log或Distmgr.lo_
  • Sender.log或Sender.lo_
  • Scheduler.log或Scheduler.lo_

步骤 3:确定包是否已成功复制到管理中心站点和相关主站点上的 SCCMContentLib 文件夹中

为此,请比较以下文件夹:

  • \\<Service Connection Point>\EasySetupPayloader\<PackageGUID>
  • SCCMContentLib\DataLib\<PackageGUID> (站点服务器上)

步骤 4:重试 EasySetup 包的内容复制

为此,请按照以下步骤操作:

  1. 启动 Windows PowerShell。

  2. 运行下面的命令:

    (gwmi -Namespace "ROOT\SMS\site_<SITE CODE>" -query "select * from SMS_CM_UpdatePackages where PackageGuid = '<PACKAGE GUID>'").RetryContentReplication($true)
    
  3. 输出应如下面的示例所示:

    __GENUS          : 2
    __CLASS          : __PARAMETERS
    __SUPERCLASS     : 
    __DYNASTY        : __PARAMETERS
    __RELPATH        : 
    __PROPERTY_COUNT : 1
    __DERIVATION     : {}
    __SERVER         : 
    __NAMESPACE      : 
    __PATH           : 
    ReturnValue      : 0
    PSComputerName   : 
    
  4. 查看 Distmgr.log ,检查包是否成功复制。

问题 1:错误“无法计算哈希SMS_HIERARCHY_MANAGER”

症状

在Hman.log中收到类似于以下示例的错误消息:

获取更新包 91406B1D-7C14-42D8-A68B-484BE5C5E9B8, \\<SiteServer>\EasySetupPayLoad\91406B1D-7C14-42D8-A68B-484BE5C5E9B8 SMS_HIERARCHY_MANAGER 12/19/2016 5:15:34 PM 13688 (0x3578)
未能计算哈希SMS_HIERARCHY_MANAGER 2016/12/19 5:15:34 PM 13688 (0x3578)

在这种情况下,无法访问该 \\<SiteServer>\EasySetupPayLoad 文件夹。

分辨率

若要解决此问题,请确保在站点服务器上共享 EasySetupPayLoad 文件夹。

先决条件检查

以下步骤说明了在管理中心站点或主站点上安装更新之前提取更新以运行先决条件检查的过程。

步骤 1:通知

选择更新包并选择“运行先决条件检查后,smsdbmon.log中记录以下条目:

RCV:更新CM_UpdatePackages_UPD_HMAN的CM_UpdatePackages [2 ][1009663]
更新时,已修改层次结构管理器 [CM_UPDATEPACKAGES_UPD_HMAN](CM_UpdatePackages_UPD_HMAN): 表CM_UpdatePackages(状态)的触发器定义,在 dir C:\Program Files\Microsoft Configuration Manager 中使用文件 ESC
\inboxes\hman.box\CF\
SND:已删除 C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CF\2.ESC [1009663]

SMSDBMON 删除 2.ESC 文件 Hman.box\CFD后,将调用 HMAN 的收件箱触发器。 若要验证触发器,请检查站点服务器上的以下注册表子项(在版本 1511 中引入了新收件箱):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Triggers\<SiteServer>\CM_UpdatePackages_UPD_HMAN

值名称和数据:

  • 筛选器 - (状态 = 2 或状态 = 196612) AND UPDATE(状态)
  • 目标服务 - 层次结构管理器 (CF)

步骤 2:准备

HmanpackageGUID获取通过清单下载并更新表。EasySetupSettings 记录以下条目:

获取更新包 79FB5420-BB10-44FF-81BA-7BB53D4EE22F, \\CAS\EasySetupPayLoad\79FB5420-BB10-44FF-81BA-7BB53D4EE22F
使用 EXEC sp_UpdateEasySetupSettings N'CAS00008','6',N'' 更新简单的设置设置

若要查找 PackageID 更新的值,请运行以下 SQL 查询:

select PkgID from smspackages where name = 'Configuration Manager Easy Setup Package'

SMSDBMon 删除 <PackageGUID>。CME 以 Hman.box\CFD 保持 Hman 忙碌状态,以便不会处理其他文件。 Smsdbmon.log中记录以下条目:

SND:已删除 C:\Program Files\Microsoft Configuration Manager\inboxes\hman.box\CF\79FB5420-BB10-44FF-81BA-7BB53D4EE22F。CME

步骤 3:复制

HMAN 调用 Distmgr 将包复制到所有子主站点。 请考虑简易安装包不会复制到辅助站点或分发点。

Hman.log中记录以下条目:

信息:更新的包CAS00008和SMS_DISTRIBUTION_MANAGER会将内容复制到除辅助站点以外的所有站点服务器。 内容将存储在站点服务器上的内容库中。 检查distmgr.log是否为复制状态。

SMSDBmon 删除文件 .pkn 以通知 Distmgr 启动复制。 记录以下条目:

已删除 C:\Program Files\Microsoft Configuration Manager\inboxes\distmgr.box\CAS00008。PKN [1009665]
找到包属性更新了包“CAS00008”通知
将包“CAS00008”添加到包处理队列。
~包“CAS00008”的已启动包处理线程,线程 ID = 0x16E8 (5864)

可以使用线程 ID 检查状态来筛选Distmgr.log。 若要查找队列,请检查 以下注册表子项的包处理队列 值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\COMPONENTS\SMS_DISTRIBUTION_MANAGER

Distmgr 为发送方创建一个小型作业,用于将压缩包发送到子主站点。 Distmgr.log中记录以下条目:

从源 \\CAS\EasySetupPayLoad\79FB5420-BB10-44FF-81BA-7BB53D4EE22F 为包CAS00008生成包快照
~使用驱动器 C 存储压缩包。
~已成功创建/更新包CAS00008
~将包的副本CAS00008发送到站点 PRI
~使用驱动器 C 存储压缩包。
~将 CMiniJob 传输根目录设置为 C:\SMSPKG\CAS00008。DLT.5.6
~已创建小型作业,用于将包的压缩副本CAS00008发送到站点 PRI。 传输根 = C:\SMSPKG\CAS00008。DLT.5.6.

DistMgr 通知计划程序计划作业以发送压缩包。 Scheduler.log中记录以下条目:

在内存中找到 1 个作业,在作业源中找到 10 个作业。
~指令文件 = C:\Program Files\Microsoft Configuration Manager\inboxes\schedule.box\tosend\00000391.Idb
<更新 JOB 00000391> [Configuration Manager 简易安装包的软件分发, 包 ID = CAS00008]~
<作业状态 - 完成>~

Sender.log中记录以下条目:

~包文件 = C:\SMSPKG\CAS00008。DLT.5.6
~指令文件 = C:\Program Files\Microsoft Configuration Manager\inboxes\schedule.box\tosend\00000391.Idb
~发送已启动 [C:\SMSPKG\CAS00008。DLT.5.6]
~已完成将 SWD 包CAS00008版本 6 发送到站点 PRI
~发送成功完成

包的元数据和设置也会使用 CMUpdates 复制组更新到子主站点。 下表已更新:

SMS_Package_ins_upd_SMSProv SMSPackages_G更新 [CAS00008 ][1009664]
PkgNotify_Add的 PkgNotification 上的 INSERT [CAS00008 ][1009665]
CM_UpdatePackageSiteStatus_INS_UPD_HMAN CM_UpdatePackageSiteStatus上的 INSERT [79FB5420-BB10-44FF-81BA-7BB53D4EE22F ][1009666]
CM_UpdatePackageSiteStatus_INS_UPD_HMAN的 CM_UpdatePackageSiteStatus 上的 INSERT [79FB5420-BB10-44FF-81BA-7BB53D4EE22F ][1009667]

以下条目在子主站点Despool.log登录:

~包CAS00008(版本 6)存在于分发源中,保存较新版本(版本 7)。
~存储的包CAS00008。 存储包版本 = 7
删除了旧包版本 CAS00008.6。

然后创建通知文件。 以下条目在子主站点Hman.log登录:

已创建通知文件 (79FB5420-BB10-44FF-81BA-7BB53D4EE22F)。用于CONFIGURATION_MANAGER_UPDATE的 CMI

Smsdbmon.log中记录以下条目:

SMS_Package_ins_upd_SMSProv SMSPackages_G更新 [CAS00008 ][1009664]

与简易安装包不同,客户端升级包将复制到所有子主站点、辅助站点和 DP。 下面是一个示例日志条目:

已成功从 DB 加载客户端升级设置。 FullClientPackageID=CAS00001、StagingClientPackageID=CAS00012、ClientUpgradePackageID=CAS00002、PilotingUpgradePackageID=CAS00013、ClientUpgradeAdvertisementID=CAS20000、ClientPilotingAdvertisementID=(null)
信息:检测到完整的客户端包(ID=CAS00001)~

步骤 4:对子主站点进行复制和先决条件检查

在顶级站点的Hman.log中,将重复以下行:

成功检查站点服务器准备情况以更新。

这意味着 spCMUProcessUpdateReadiness 该过程正在运行并检查下表的就绪情况:

SELECT PackageGuid FROM EasySetupSetting
SELECT flag, State FROM CM_UpdatePackages
Select * from CM_UpdateReadiness
Select * from CM_UpdateReadinesssite

此过程负责通知数据库更新已安装并准备好用于主站点。

继续监视Despool.log和Distmgr.log以查看复制是否成功。

步骤 5:先决条件检查完成

主站点上的复制完成后,DistMgr 会收到包成功更新的通知。

CMUpdate.log中记录以下条目:

内容复制成功。 开始提取包以运行预发布检查...

Distmgr.log记录以下条目:

STATMSG: ID=2301 SEV=I LEV=M SOURCE=“SMS Server” COMP=“SMS_DISTRIBUTION_MANAGER” SYS=CAS SITE=CAS PID=12812 TID=5864 ISTR0=“Configuration Manager Easy Setup Package” ISTR1=“CAS00008” ISTR2=“” ISTR3=“” ISTR4=“” ISTR5=“” ISTR6=“” ISTR7=“” ISTR8=“” ISTR9=“” NUMATTRS=1 AID0=400 AVAL0=“CAS00008”
~退出包处理线程的包CAS00008。

Hman<创建 PackageGUID>。收件箱下的 CMUpdate CMI 文件。 记录以下条目:

已创建通知文件 (79FB5420-BB10-44FF-81BA-7BB53D4EE22F)。用于CONFIGURATION_MANAGER_UPDATE的 CMI
INFO:设置类型:8,顶级:1。

在日志中, 顶级:1 表示它是顶级站点。

Hman.log中记录以下条目:

预先检查通过。 安装程序不会继续,因为它仅预先发布。

CMUpdate 然后控制进程并开始运行更新。 CMUpdate.log中记录以下条目:

更新包内容 79FB5420-BB10-44FF-81BA-7BB53D4EE22F 已扩展到文件夹 \\?\C:\Program Files\Microsoft Configuration Manager\CMUStaging\79FB5420-BB10-44FF-81BA-7BB53D4EE22F\

排查先决条件检查问题

重要

请勿从数据库中删除任何内容。 在修改 State 数据库中的值之前,请确保了解状态。

在开始之前,必须了解的内容:

  • 轻松安装包的先决条件检查不同于媒体安装。

  • 在先决条件检查期间,将完成各种检查,包括(包括但不限于)以下检查:

    • 网站是否为顶级网站
    • 站点是否处于互操作模式
    • 轻松安装、客户端升级和客户端试点包的复制是否成功
    • DRS 是否处于活动状态
  • 大多数更新通常不会进行先决条件检查。 它仅在主要升级时发生,例如版本 1610、1606 或 1602。

在先决条件检查期间排查问题时,请从管理中心站点和所有主站点收集以下 SQL 查询的结果:

Select PackageGuid, State, Flag from CM_updatepackages
Select PackageGUID, SiteNumber, Name, State, SiteStatus, RecoveryCount from CM_UpdatePackageSiteStatus a inner join serverdata b on a.SiteNumber = b.ID
Select * from CM_UpdatePackagePrereqStatus where PackageGUID = 'GUID of the package to be installed'
Select * from CM_UpdateReadiness
Select * from CM_UpdateReadinessSite
Select * from EasySetupSettings

检查简易安装包的版本,并将其与 Distmgr 版本和 Smspackages 表匹配。

请参阅先决条件检查过程,并确定进程停滞的步骤。 此外,查找指示要修复的问题的特定状态消息。

安装更新

以下步骤说明了站点开始安装更新的过程。

步骤 1:检查站点服务器就绪情况,确保站点服务器已准备好应用更新

Hman.log记录以下条目:

成功检查站点服务器准备情况以更新。
信息:等待CONFIGURATION_MANAGER_SERVICE准备好应用更新:10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C
C:\Program Files\Microsoft Configuration Manager\CMUStaging\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C\SMSSetup\update.map 具有哈希值 SHA256:A19A48371F031C5E93CD8850E59E24DAE1217E1B37C7A74D98A92F053B5381FB
已成功验证的文件 C:\Program Files\Microsoft Configuration Manager\CMUStaging\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C\SMSSetup\update.map
成功读取文件 C:\Program Files\Microsoft Configuration Manager\CMUStaging\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C\SMSSetup\update.map

步骤 2:Configuration Manager 更新服务已停止,然后更新到较新版本。 然后,重启服务以开始升级

记录以下条目:

检测到组件CONFIGURATION_MANAGER_UPDATE update.map 中的更改。 它将首先更新。
已成功将文件从 C:\Program Files\Microsoft Configuration Manager\CMUStaging\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C\SMSSetup\bin\x64\cmupdate.exe复制到 C:\Program Files\Microsoft Configuration Manager\bin\x64\cmupdate.exe
信息:启动服务CONFIGURATION_MANAGER_UPDATE

步骤 3:提取更新包并验证可再发行包

CMUpdate.log记录以下条目:

检查 CMU 暂存文件夹是否已提取内容。
为算法 32780 创建哈希
临时文件夹的哈希 = 8CF9F066B452F35EE723DD2016E99392C1433B2287EDEA8BA8635D22E32E9C84
临时文件夹 (\\?\C:\Program Files\Microsoft Configuration Manager\CMUStaging\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C) 具有哈希 561BE7B704CA99A8DB6697886E75BD7C4812324D0A637708E863EC9DF97EFB94 与内容库 8CF9F066B452F35EE723DD2016E99392C1433B2287EDEA8BA8635D22E32E9C84
删除文件夹 \\?\C:\Program Files\Microsoft Configuration Manager\CMUStaging\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C\ 返回 0。 正在从内容库提取内容...
更新包内容 10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C 已扩展到文件夹 \\?\C:\Program Files\Microsoft Configuration Manager\CMUStaging\10AA8BA0-04D4-4FE3-BC21-F1874BC8C88C\

步骤 4:Configuration Manager 服务已停止并开始安装

下面是详细步骤。 可以在CMUpdate.log中找到日志条目。

  • 验证 Configuration Manager 更新服务是否已更新。
  • 检查服务窗口以确保可以应用更新。
  • 关闭 SQL Server Service Broker。
  • 停止 Configuration Manager 服务。
  • 卸载 WMI 提供程序。
  • 删除 SMSDBMON 触发器。
  • 保存网站控件设置。
  • 升级 Configuration Manager 数据库。
  • 更新 SQL 注册表。
  • 更新 RCM 注册表。
  • 安装文件、语言包、组件和控件。
  • 升级站点控制设置。
  • 配置 SQL Server Service Broker。
  • 启动 WMI 并安装服务。
  • 更新站点表。
  • 更新管理控制台二进制文件。
  • 打开 SQL Server Service Broker。

步骤 5:安装后任务运行并更新安装标记为成功

以下为详细步骤:

  1. 验证是否已安装SMS_Executive服务。
  2. 验证是否已安装 SMSDBMon 组件。
  3. 验证是否已安装 SMSHman 组件。
  4. 验证是否已安装 RCM 组件。
  5. 监视复制初始化。
  6. 更新 Configuration Manager 客户端预生产包。
  7. 更新站点服务器上的客户端文件夹。
  8. 更新 Configuration Manager 客户端包。
  9. 打开升级向导中指定的功能。 然后重新打开控制台以显示功能。

注意

  • Update.map 包含要替换和添加的更新和文件列表。 若要查看文件列表,请在记事本中打开 update.map。
  • Install.map 包含安装进程运行的步骤列表。 它充当Cmupdate.exe的工作流,提供按顺序运行的步骤和参数。
  • 有关主要升级,请查看ConfigMgrSetup.log以了解详细信息。
  • 有关次要升级,请查看CMUpdate.log以了解详细信息。

安装问题疑难解答

当更新停滞在 控制台中的安装 状态时,原因可能是以下原因之一:

  • 顶级站点正在安装更新。 在这种情况下,请检查CMUpdate.log以了解详细信息。

  • 内容复制尚未完成。 在这种情况下,请使用 PackageID 该值检查DistMgr.log和Sender.log。

  • 子主站点仍在安装更新。

  • 安装由于错误而 CMUpdate无法启动。

    在这种情况下,请查看CMUpdate.log。 由于 CMUpdate 是单线程,因此你可以查找线程 ID,然后使用线程 ID 筛选日志。

    如果错误与权限相关,请验证权限。

    如果错误显示脚本或表故障,请收集更多日志,例如 SQL Server 日志,然后查找相关表。

问题 1:无法打开文件 \\?\C:\Program Files\Microsoft Configuration Manager\CMUStaging\ApplicabilityChecks\CM1606-KB3184153_AppCheck.sql 进行读取。 代码0x80070003

症状

在CMUpdate.log中收到类似于以下示例的错误消息:

无法打开文件“\\?\C:\Program Files\Microsoft Configuration Manager\CMUStaging\ApplicabilityChecks\CM1606-KB3184153_AppCheck.sql”进行读取。 代码0x80070003

分辨率

若要解决此问题,请检查该文件是否存在。 否则,请删除 CMUStaging 文件夹,然后重启 Smsexec。 如果未下载文件,请重新安装服务连接点角色以开始下载。

问题 2:验证文件 \\?\C:\Program Files\Microsoft Configuration Manager\CMUStaging\79FB5420-BB10-44FF-81BA-7BB53D4EE22F\SMSSetup\update.map.cab

症状

在CMUpdate.log中收到类似于以下示例的错误:

更新包内容 79FB5420-BB10-44FF-81BA-7BB53D4EE22F 已扩展到文件夹 \\?\C:\Program Files\Microsoft Configuration Manager\CMUStaging\79FB5420-BB10-44FF-81BA-7BB53D4EE22F\
验证文件“\\?\C:\Program Files\Microsoft Configuration Manager\CMUStaging\79FB5420-BB10-44FF-81BA-7BB53D4EE22F\SMSSetup\update.map.cab”的信任时出错。

原因

出现此问题的原因是文件未正确下载。

分辨率

若要解决此问题,请执行以下步骤:

  1. 停止 Smsexec。
  2. 删除 Easy Setup 包和 CMUStaging 文件夹。
  3. 重启 Smsexec。
  4. 卸载服务连接点角色,然后重新安装该角色。

问题 3:显示“正在下载”的控制台停滞

症状

即使CMUpdate.log显示安装失败,也会出现此问题。

分辨率

若要解决此问题,请执行以下步骤:

  1. 重启 SMS 执行服务(Smsexec)。
  2. 运行更新重置工具

问题 4:内容复制失败

如果在内容复制期间出现故障,请运行以下 cmdlet 重试复制:

(gwmi -Namespace "ROOT\SMS\site_<SITE CODE>" -query "select * from SMS_CM_UpdatePackages where PackageGuid = '<PACKAGE GUID>'").RetryContentReplication($true)

它告知 HMan 在 DistMgr 中启动包通知和更新线程以重新开始复制内容。 请考虑更改包版本,并将内容再次复制到所有子主站点。

问题 5:管理中心站点和主站点上安装更新,但控制台仍显示“正在安装”

主站点完成安装后,它会删除站点和服务器数据表的状态消息。 它会更改站点表中站点的实际状态,但它不会更改 CM 表中的状态。 命名 CMUpdates 的全局复制组用于将更改复制到所有站点。 默认情况下, CMUpdates 同步时间为 1 分钟。

若要查找复制的表,请运行以下 SQL 查询:

select * from ReplicationData where ReplicationGroup = 'CMUpdates'
select * from ArticleData where ReplicationID in (select ID from ReplicationData where ReplicationGroup = 'CMUpdates')

若要获取初始化 CMUpdates的状态,请运行以下 SQL 查询:

select * from RCM_DrsInitializationTracking where ReplicationGroup = 'CMUpdates'

如果返回的状态值小于 6 或 7,则初始化仍挂起。 在这种情况下,可能需要排查 DRS 复制问题。

在控制台中重试安装失败的更新

为此,请参阅 重试安装失败的更新

状态代码的完整列表

以下是状态代码及其表示的状态:

  • UNKNOWN = 0x0
  • ENABLED = 0x2
  • DOWNLOAD_IN_PROGRESS = 262145
  • DOWNLOAD_SUCCESS = 262146
  • DOWNLOAD_FAILED = 327679
  • APPLICABILITY_CHECKING = 327681
  • APPLICABILITY_SUCCESS = 327682
  • APPLICABILITY_HIDE = 393213
  • APPLICABILITY_NA = 393214
  • APPLICABILITY_FAILED = 393215
  • CONTENT_REPLICATING = 65537
  • CONTENT_REPLICATION_SUCCESS = 65538
  • CONTENT_REPLICATION_FAILED = 131071
  • PREREQ_IN_PROGRESS = 131073
  • PREREQ_SUCCESS = 131074
  • PREREQ_WARNING = 131075
  • PREREQ_ERROR = 196607
  • INSTALL_IN_PROGRESS = 196609
  • INSTALL_WAITING_SERVICE_WINDOW = 196610
  • INSTALL_WAITING_PARENT = 196611
  • INSTALL_SUCCESS = 196612
  • INSTALL_PENDING_REBOOT = 196613
  • INSTALL_FAILED = 262143
  • INSTALL_CMU_VALIDATING = 196614
  • INSTALL_CMU_STOPPED = 196615
  • INSTALL_CMU_INSTALLFILES = 196616
  • INSTALL_CMU_STARTED = 196617
  • INSTALL_CMU_SUCCESS = 196618
  • INSTALL_WAITING_CMU = 196619
  • INSTALL_CMU_FAILED = 262142
  • INSTALL_INSTALLFILES = 196620
  • INSTALL_UPGRADESITECTRLIMAGE = 196621
  • INSTALL_CONFIGURESERVICEBROKER = 196622
  • INSTALL_INSTALLSYSTEM = 196623
  • INSTALL_CONSOLE = 196624
  • INSTALL_INSTALLBASESERVICES = 196625
  • INSTALL_UPDATE_SITES = 196626
  • INSTALL_SSB_ACTIVATION_ON = 196627
  • INSTALL_UPGRADEDATABASE = 196628
  • INSTALL_UPDATEADMINCONSOLE = 196629

有用的 SQL 查询

  • 检查总体状态:

    select * from CM_UpdatePackages
    

    以下是“状态”列中的一些值及其表示的状态:

    • 327681 = APPLICABILITY_CHECKING

    • 262146 = DOWNLOAD_SUCCESS

    • 2 = ENABLED

      当 Flag = 1 时,它仅表示先决条件检查。 当 Flag = 2 时,表示继续安装。

    • 65537 = CONTENT_REPLICATING

    • 65538 = CONTENT_REPLICATION_SUCCESS

    • 196609 = INSTALL_IN_PROGRESS

    • 196612 = INSTALL_SUCCESS

  • 检查每个站点的状态:

    select * from CM_UpdatePackageSiteStatus
    
  • 检查总体状态历史记录:

    select * from CM_UpdatePackages_Hist order by RecordTime desc
    
  • 检查每个站点的状态历史记录:

    select * from CM_UpdatePackageSiteStatus_HIST order by RecordTime desc
    
  • 检查服务器就绪情况:

    select * from CM_UpdateReadiness
    
  • 检查Configuration_Manager_Update服务就绪情况:

    select * from CM_UpdateReadinessSite
    
  • 检查用于更新的当前软件分发包:

    select * from EasySetupSettings
    
  • 检查存储在内容库中的包的内容版本:

    select SourceVersion, StoredPkgVersion, * from SMSPackages where PkgID in (select packageid from EasySetupSettings)
    
  • Hman 确定要安装的内容:

    SELECT TOP 1 convert(NVARCHAR(40), PackageGuid) FROM CM_UpdatePackages WHERE State=2
    
  • 确定如何 Hman 获取简易设置设置:

    SELECT TOP 1 PackageID,PackageVersion,PackageHash FROM EasySetupSettings
    

    Hman 检查准备好升级的站点服务器:

    Stored procedure spCMUCheckSiteServerReadyForUpdate
     if (EXISTS (SELECT * FROM EasySetupSettings WHERE PackageGuid = @packageGuid))
         BEGIN
             SELECT @readyParent = Flag FROM CM_UpdateReadiness
             WHERE SiteNumber = dbo.fnGetSiteNumber() AND PackageGuid = @packageGuid
             SELECT @cmuUpdated = Flag FROM CM_UpdateReadinessSite
             WHERE SiteNumber = dbo.fnGetSiteNumber() AND PackageGuid = @packageGuid
         END
    
  • Hman 返回正在进行中的包更新:

    SELECT @flag = ISNULL(Flag, 0), @state = ss.State, @redistVersion = ISNULL(oa.RedistVersion, N''), @pubFlag = ISNULL(oa.PublisherFlags, 2)
         FROM CM_UpdatePackages oa
         INNER JOIN CM_UpdatePackageSiteStatus ss ON oa.PackageGuid = ss.PackageGuid AND ss.SiteNumber = dbo.fnGetSiteNumber()
         WHERE oa.State IN (
                         65538,      -- CONTENT_REPLICATION_SUCCESS = 0x00010002
                         131073,     -- PREREQ_IN_PROGRESS          = 0x00020001
                         131074,     -- PREREQ_SUCCESS              = 0x00020002
                         196609,     -- INSTALL_IN_PROGRESS         = 0x00030001
                         196610,     -- INSTALL_WAITING_SERVICE_WINDOW  = 0x00030002
                         196611,     -- INSTALL_WAITING_PARENT      = 0x00030003
                         196619,     -- INSTALL_WAITING_CMU         = 0x0003000B
                         131075      -- PREREQ_WARNING              = 0x00020003
                             )
         AND oa.PackageGuid = @packageGuid
    
  • 检查 Configuration Manager 更新历史记录:

  • 检查使用生成版本版本名称映射的 Configuration Manager 内部版本号:

提示

  • 不要手动清理正在下载或处理的 Configuration Manager 更新的 EasySetupPayload 文件夹。
  • 如果不验证简易安装包的正确状态和内容库,请不要手动清理 CMUStaging 文件夹。
  • 如果出现 CMUpdate错误,请不要还原 Configuration Manager 数据库和 Configuration Manager 站点服务器。 具体而言,也从不尝试从虚拟机快照还原。 修复此问题,然后重试安装。
  • 如果正在进行更新,请不要重新安装服务连接点。
  • 不要使用文件夹中的文件 CD.Latest 来安装独立的主站点。
  • 请勿使用该 CD.Latest 文件夹升级运行版本 1511 的站点,或运行 2012 R2 SP1 或更低版本的站点。
  • 请勿在任何 Cm_Update* 表中手动清理或更改值。
  • 不要在安装过程中重启 CMUpdate 服务。
  • 不要在安装过程中使 CMUStaging\<GUID> 文件夹保持打开状态。

启用详细跟踪日志记录

若要启用 SQL 跟踪日志记录,请将SQLEnabled注册表项下HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing的值设置为 1。

若要增加维护的日志文件大小和副本数,请增加以下注册表项的值和LogMaxHistory以下注册表项下的值MaxFileSize

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\CONFIGURATION_MANAGER_UPDATE
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\SMS_HIERARCHY_MANAGER
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Tracing\SMS_DMP_DOWNLOADER

捕获进程监视器跟踪

使用 进程监视器 捕获进程监视器跟踪。

捕获 WinHTTP 日志

有关详细信息,请参阅 捕获 WinHTTP 日志

参考

有关 Configuration Manager 中的更新和维护服务的详细信息,请参阅以下文章:

还可以在我们的 Configuration Manager 支持论坛中发布问题。

请访问 我们的博客 ,获取有关 Configuration Manager 的技术提示和所有最新新闻和信息。