Windows 更新无法通过 SCCM 2012 R2 进行

Windows 更新无法通过 SCCM 2012 R2 进行

我们从 Server 2008 R2 上的 SCCM 2012 SP1 升级到 Server 2012 R2 上的 SCCM 2012 R2 CU2。站点层次结构非常简单 - 一个站点服务器提供 MP、DP、SUP 等角色,并安装了 WSUS(所有配置均由 SCCM 执行)。

我正在尝试部署 Windows 更新和 SCEP 更新;我的 SCEP 定义更新运行良好,但 Windows 7 更新(例如安全和关键)运行得不是很好。在 Windows 和 SCEP 更新之间,相应的软件更新组、ADR、部署等在相关程度上都是相同的。 、 、 、 或 中没有错误UpdatesDeployment.logUpdatesHandler.log唯一UpdatesStore.logWUAHandler.logWindowsUpdate.log特别注意的是,当我从客户端执行软件更新扫描周期(SCCM 客户端操作)时,WindowsUpdate.log会提供以下信息:

Agent   ** START **  Agent: Finding updates [CallerId = CcmExec]
Agent     * Include potentially superseded updates
Agent     * Online = Yes; Ignore download priority = Yes
Agent     * Criteria = "(DeploymentAction=* AND Type='Software') OR (DeploymentAction=* AND Type='Driver')"
Agent     * ServiceID = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7} Managed
Agent     * Search Scope = {Machine}
PT  +++++++++++  PT: Synchronizing server updates  +++++++++++
PT    + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, Server URL = http://[REDACTED]:8530/ClientWebService/client.asmx
PT  +++++++++++  PT: Synchronizing extended update info  +++++++++++
PT    + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, Server URL = http://[REDACTED]:8530/ClientWebService/client.asm
PT        + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, Server URL = http://[REDACTED]:8530/ClientWebService/client.asmx
Agent     * Added update {0BCA6C00-4FD3-4280-96BE-B89988FA1702}.101 to search result
 ~[Omitting 425 more lines identical except for the particular update GUID.]
Agent     * Found 426 updates and 75 categories in search; evaluated appl. rules of 2398 out of 3466 deployed entities
Agent   **  END  **  Agent: Finding updates [CallerId = CcmExec]
~[Omitting a lot of identical lines that describe WUA's (successful) reporting.]
COMAPI  >>--  RESUMED  -- COMAPI: Search [ClientId = CcmExec]
COMAPI    - Updates found = 426
COMAPI  --  END  --  COMAPI: Search [ClientId = CcmExec]

因此,它似乎确实找到了一些更新,但它从未安装任何内容,软件中心也没有显示更新,即使部署已配置为这样做。但是,如果我使用 Windows Update 检查客户端上的更新,我会得到以下结果WindowsUpdate.log

Agent   ** START **  Agent: Finding updates [CallerId = AutomaticUpdates]
Agent     * Online = Yes; Ignore download priority = No
Agent     * Criteria = "IsInstalled=0 and DeploymentAction='Installation' or IsPresent=1 and DeploymentAction='Uninstallation' or IsInstalled=1 and DeploymentAction='Installation' and RebootRequired=1 or IsInstalled=0 and DeploymentAction='Uninstallation' and RebootRequired=1"
Agent     * ServiceID = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7} Managed
Agent     * Search Scope = {Machine}
Setup   Checking for agent SelfUpdate
Setup   Client version: Core: 7.6.7600.320  Aux: 7.6.7600.320
~[Omitting lines about signature validation and SelfUpdate check (spoiler alert: "SelfUpdate is NOT required").]
PT  +++++++++++  PT: Synchronizing server updates  +++++++++++
PT    + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, Server URL = http://[REDACTED]:8530/ClientWebService/client.asmx
PT  +++++++++++  PT: Synchronizing extended update info  +++++++++++
PT    + ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}, Server URL = http://[REDACTED]:8530/ClientWebService/client.asmx
Agent     * Found 0 updates and 75 categories in search; evaluated appl. rules of 2398 out of 3466 deployed entities
Agent   **  END  **  Agent: Finding updates [CallerId = AutomaticUpdates]
AU  >>##  RESUMED  ## AU: Search for updates [CallId = {87B4DC09-5A34-4351-975C-EE9BB69D9346}]
AU    # 0 updates detected
AU  ##  END  ##  AU: Search for updates [CallId = {87B4DC09-5A34-4351-975C-EE9BB69D9346}]

我不知道 Windows 自动更新的结果是否与 WSUS/SCCM 问题有关,所以如果我的第二组日志没用,请原谅我。

我尝试了这个问题,结果没有变化。有人能提供其他建议吗?

额外细节:

  • WSUS 和 SCCM 之间的同步很顺利(已确认成功wsyncmgr.log)。
  • 内容在 SCCM 中分发(已确认成功distmgr.log)。
  • 服务器端日志中没有错误:PatchDownloader.logSUPSetup.logWCM.logWSUSCtrl.logwsyncmgr.log

答案1

这个问题在TechNet 主题

SCCM 2012 出色的版本控制每次下载新更新时都会增加其 SUP 目录版本,如下图所示目录版本下的列监控 -> 软件更新点同步状态. SUP 添加的每个更新都会作为一行输入到CI_配置项SCCM 数据库中的表。此表中有一列 SDMPackageDigest 包含 XML 元数据,其中包括一行指定更新添加到哪个目录版本号:<Property Name="MinCatalogVersion" Value="[x]" />,其中[x]是十进制整数。从 2012 SP1 升级到 2012 R2 时,我们将整个数据库导入到新服务器,这意味着所有更新都有一个条目MinCatalogVersion,至少达到 2200。但是,SCCM 将目录版本存储在未导入的注册表项中,这意味着在新服务器上,版本号重新启动为 1。因此,SUP 不会安装高于MinCatalogVersion目录版本的更新,而目录版本基本上是所有更新。

解决此问题的方法是更改​​ SCCM 服务器上的三个注册表值,所有值都位于键中HKLM\SOFTWARE\Microsoft\SMS\Components\SMS_WSUS_SYNC_MANAGER

  • 内容版本
  • 上次尝试版本
  • 同步版本

重新启动后SMS_Executive服务后,更新便可立即提供给部署到的所有工作站。

我承认,正确的做法是使用 XQuery 在 SQL 表中搜索 XML 数据,以找到 的最高值MinCatalogVersion;但是,我修复这个问题的时间非常紧迫,没有时间去想出一个合适的查询。因此,我只能将所有三个注册表值都设置为 10,000(十进制),并希望获得最佳效果。

相关内容