我们注意到,我们的软件更新自动部署规则无法自动下载并应用本月的Microsoft补丁程序,尽pipe它们在目录中正确列出。

自动部署规则列出其最新的错误代码为0X87D20417和最后错误说明为“自动部署规则下载失败”。 手动重新运行规则会重现此错误。 删除并重新创build自动部署规则也会重现相同的错误。
查看SMS_RULE_ENGINE日志显示以下错误:
Error Milestone 004 6/19/2013 3:42:21 PM SCCM.ad.example.com SMS_RULE_ENGINE 8706 Content download failed. Message: Failed to download one or more content files. Source: SMS Rule Engine. Error Milestone 004 6/19/2013 3:42:07 PM SCCM.ad.example.com SMS_RULE_ENGINE 8706 Content download failed. Message: Failed to download one or more content files. Source: SMS Rule Engine. Error Milestone 004 6/19/2013 2:45:44 PM SCCM.ad.example.com SMS_RULE_ENGINE 8706 Content download failed. Message: Failed to download one or more content files. Source: SMS Rule Engine. Error Milestone 004 6/19/2013 2:43:29 PM SCCM.ad.example.com SMS_RULE_ENGINE 8706 Content download failed. Message: Failed to download one or more content files. Source: SMS Rule Engine.
如果我查看ruleengine.log(这可能是SCCM中更高级别的SMS_RULE_ENGINE日志从中生成的日志文件),并协调自动部署规则应将这些更新放在I中的相关部署包的Package IDfind以下内容:
Contents 16821586 is already present in the package "0040000F". Skipping download. SMS_RULE_ENGINE 6/19/2013 3:41:58 PM 9068 (0x236C) Downloading contents (count = 10) for UpdateID 16829711 SMS_RULE_ENGINE 6/19/2013 3:41:58 PM 9068 (0x236C) List of update content(s) which match the content rule criteria = {16821659,16821660,16821661,16821662,16821663,16821664,16821665,16821666,16821667,16821668} SMS_RULE_ENGINE 6/19/2013 3:41:58 PM 9068 (0x236C) Downloading content with ID 16821659 in the package SMS_RULE_ENGINE 6/19/2013 3:41:58 PM 9068 (0x236C) Failed to download the update from internet. Error = 4115 SMS_RULE_ENGINE 6/19/2013 3:41:58 PM 9068 (0x236C) Failed to download ContentID 16821659 for UpdateID 16829711. Error code = 4115 SMS_RULE_ENGINE 6/19/2013 3:41:58 PM 9068 (0x236C)
在这一点上,我有三个不同的错误,我相信都是由同一事件产生的。 当然,他们可能不是这就是为什么他们都包括在这里。 我确实在日志文件中协调了时间,并且有理由相信它们都与“自动部署规则”有关。
0X87D20417 – 从SCCM控制台的自动部署规则 8706 – 从SCCM的控制台的监控SMS_RULE_ENGINE日志 Error code = 4115 – 从[SCCM安装path] \ Logs \ ruleengine.log中的SCCM站点服务器日志 看起来我们无法下载这些更新。 显然,解决这种事情的地方是PatchDownloader.log 。 而且还有另一个错误logging在那里:
Trying to connect to the \\SCCM.ad.example.com\root\sms\site_REV namespace on the SCCM.ad.example.com machine. Software Updates Patch Downloader 6/19/2013 3:42:21 PM 9068 (0x236C) Connected to \\SCCM.ad.example.com\root\sms\site_REV Software Updates Patch Downloader 6/19/2013 3:42:21 PM 9068 (0x236C) GetContentFileInfoForDownload() failed for ContentID 16821994. hRes = 0x80041013 . Software Updates Patch Downloader 6/19/2013 3:42:21 PM 9068 (0x236C) ERROR: DownloadContentFiles() failed with hr=0x80041013 Software Updates Patch Downloader 6/19/2013 3:42:21 PM 9068 (0x236C)
我可以将PatchDownloader.log中的Content ID协调回到Ruleengine.log中logging的Error: 4115条目,如前所述,我非常肯定的是在查看产生所有这些不同错误的相同事件,但如果有人知道更好,请纠正我。
如果我使用CMTrace的错误查找工具,它告诉我以下关于hr = 0x80041013 。
Provider load failure Source: Windows Management (WMI) -----
果然,如果我看一下Software Updates Patch Downloader连接到的WMI名称空间,它看起来不太正确:
\ SCCM.ad.example.com \根\ SMS \ site_REV
我们的网站代码实际上是004而且我们组织的前三个字母都是从REV开始的。 如果你问我,这个强大的巧合。 此外,这不是第一次在这里存在的SCCM安装,事实certificate,以前的SCCM 2007已经将现有的边界,集合和软件包迁移到我们的新安装中。 吸烟枪? 不完全的。 它也使用了不同的网站代码。 也许REV站点代码被用于SCCM 2012的临时testing安装? 也许不是。 机构知识没有任何关于REVlogging,也没有我们录用之前所做的移民logging。
但是,SCCM 2007实例中的旧PatchDownloader.log显示Software Updates Patch Downloader连接到site_$SITECODE WMI名称空间。 不幸的是,我没有从我们目前的2012年5月安装的日志,我可以确认正在引用正确的WMI命名空间。
Trying to connect to the root\SMS namespace on the SCCM07.ad.example.com machine. Software Updates Patch Downloader 8/3/2011 3:18:37 PM 25128 (0x6228) Connected to \\SCCM07.ad.example.com\root\SMS Software Updates Patch Downloader 8/3/2011 3:18:37 PM 25128 (0x6228) Trying to connect to the \\SCCM07.ad.example.com\root\sms\site_DOR namespace on the machine. Software Updates Patch Downloader 8/3/2011 3:18:37 PM 25128 (0x6228) Connected to \\SCCM07.ad.example.com\root\sms\site_DOR Software Updates Patch Downloader 8/3/2011 3:18:37 PM 25128 (0x6228) Download destination = \\SCCM07.ad.example.com\WSUSContent\be128fa4-0c6b-418a-893d-3450e38c658d.1\windows-kb890830-v3.21.exe . Software Updates Patch Downloader 8/3/2011 3:18:37 PM 25128 (0x6228) Contentsource = http://download.windowsupdate.com/msdownload/update/software/uprl/2011/07/windows-kb890830-v3.21_2aba440b72071ff17cad1ca2a39f0e40aa85c76e.exe . Software Updates Patch Downloader 8/3/2011 3:18:37 PM 25128 (0x6228) Downloading content for ContentID = 31068, FileName = windows-kb890830-v3.21.exe. Software Updates Patch Downloader 8/3/2011 3:18:37 PM 25128 (0x6228)
好。 这看起来像是WMI命名空间的问题。 在SCCM深处某处,有一些内容告诉Software Updates Patch Downloader连接到\\SCCM.ad.example.com\root\sms\site_REV而不是\\SCCM.ad.example.com\root\sms\site_004 。
在一个WAG上,我检查了SQL数据库中的可能的表,以引用REV无济于事。
SELECT * FROM SysResList WHERE SiteCode = 'REV'; SELECT * FROM SiteControl WHERE SiteCode = 'REV'; SELECT * FROM SiteControlNotification WHERE SiteCode = 'REV'; SELECT * FROM Sites WHERE SiteCode = 'REV'; SELECT * FROM Sites_DATA WHERE SiteCode = 'REV'; SELECT * FROM SiteWork WHERE SiteCode = 'REV'; SELECT * FROM PkgServers WHERE sitecode = 'REV'; SELECT * FROM PkgStatus WHERE sitecode = 'REV';
为了进一步复杂的事情,我看到0x80041013错误的多个解释。
WMI疑难解答提示说,加载WMI提供程序失败:
WBEM_E_PROVIDER_LOAD_FAILURE – 0x80041013
提供者事件故障排除类是一个很好的资源,但可能有点压倒一切。 MSFT_WmiProvider_LoadOperationFailureEvent类是我发现很常用的一个类。 我遇到的大多数提供程序加载失败都是由于组件注册不正确(无论是在registry中还是在WMI中)或与权限相关的结果。
而来自MSDN的WMI错误常量说,这是一个权限问题:
WBEM_E_ACCESS_DENIED 2147749891(0x80041003)当前用户没有执行操作的权限。
关于0x80041013错误,我唯一能find的其他信息是在TechNet上发布的那个似乎和我有同样问题的人,甚至到他之前安装了SCCM的问题上,他的WMI命名空间被错误地引用(例如, site_REV而不是site_004 )。 他结束了整个WMI命名空间以及SMS_ProviderLocation的部分。 我不确定我想这样做。
在这一点,这是一个漫长的一天,我们需要得到这些服务器补丁,我的头痛。 任何build议?
也许
REV站点代码被用于SCCM 2012的临时testing安装? 也许不是。 机构知识没有任何关于REVlogging,也没有我们录用之前进行的移民logging。
这个预感是正确的。 我抓住了我的前任,显然从SCCM 2007迁移到SCCM 2010的第一次也是不成功的尝试使用了REV站点代码。 它如何设法在WMI中hibernate,为什么它被“激活”对我来说是一个完全的谜。
我非常认真地重新阅读这个TechNet博客中的解决scheme,build议删除旧的命名空间,然后决定尝试一下。 虽然这个问题确实解决了这个问题,但我还是很犹豫,这表明我暗中赞同这个答案,特别是因为我不能让任何一个在微软“官方”的人来确认这是否是一个安全的方法或者这样做的后果是什么。 这就是说,确保你有完整的备份您的SCCM服务器或至less有更深入的知识WMI之前继续。 你可以很容易地打破所有这一切,特别是如果像我一样,你不熟悉WMI,以及SCCM如何利用它。
我使用wbemtest连接到SCCM服务器上的root\sms命名空间。 从那里我使用了[Enum_Instances …]button并search__NAMESPACE作为超类。 我删除了REV网站代码的条目。 然后我做了与超类一样的SMS_ProviderLocation的SMS_ProviderLocation ,并从该命名空间中删除旧的站点代码。 重新运行自动部署规则并查看PatchDownloader.log显示每个Windows Update的成功下载。


我将不胜感激SCCM使用这些命名空间的更多信息,以及如何解决这个问题,如果有人有更详细的信息。