我们从 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.log
。UpdatesHandler.log
唯一UpdatesStore.log
让WUAHandler.log
我WindowsUpdate.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.log
,SUPSetup.log
,WCM.log
,WSUSCtrl.log
或wsyncmgr.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(十进制),并希望获得最佳效果。