SCCM 2012 SP1 - DownloadContentFiles () schlug mit hr = 0x80041013 fehl

15

Wir haben festgestellt, dass unsere Regeln für die automatische Bereitstellung von Softwareupdates die Patches dieses Monats nicht automatisch von Microsoft herunterladen und anwenden konnten, obwohl sie im Katalog korrekt aufgeführt sind.

SCCM-Softwareupdates im Katalog aufgeführt


In den Regeln für die automatische Bereitstellung ist der letzte Fehlercode 0X87D20417und in der Beschreibung für den letzten Fehler "Herunterladen der Regel für die automatische Bereitstellung fehlgeschlagen" aufgeführt. Durch manuelles erneutes Ausführen der Regeln wird dieser Fehler reproduziert. Das Löschen und Neuerstellen der Regeln für die automatische Bereitstellung gibt ebenfalls den gleichen Fehler wieder.

Wenn Sie sich das Protokoll SMS_RULE_ENGINE ansehen, werden die folgenden Fehler angezeigt:

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.   


Wenn ich die Datei ruleengine.log (vermutlich die Protokolldatei, aus der das übergeordnete Protokoll SMS_RULE_ENGINE in SCCM generiert wird) durchsuche und die Paket-ID für die relevanten Bereitstellungspakete koordiniere, werden diese Aktualisierungen von den Regeln für die automatische Bereitstellung in I abgelegt finde das Folgende:

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)


Zu diesem Zeitpunkt habe ich drei verschiedene Fehler, von denen ich glaube, dass sie alle durch dasselbe Ereignis verursacht werden. Natürlich können sie nicht sein, weshalb sie alle hier enthalten sind. Ich habe die Zeiten in den Protokolldateien koordiniert und bin ziemlich sicher, dass sie alle mit dem Problem mit den Regeln für die automatische Bereitstellung zusammenhängen.

  • 0X87D20417 - Über die automatischen Bereitstellungsregeln der SCCM-Konsole
  • 8706 - Aus dem Überwachungs-SMS_RULE_ENGINE-Protokoll der SCCM-Konsole
  • Error code = 4115 - Von den SCCM-Standortserverprotokollen aus [SCCMInstallationPath] \ Logs \ ruleengine.log


Anscheinend können wir diese Updates nicht herunterladen. Anscheinend ist das PatchDownloader.log der Ort, an dem solche Probleme behoben werden können . Und siehe da, da ist noch ein weiterer Fehler vermerkt:

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)


Ich kann die Inhalts-IDs in PatchDownloader.log wieder auf die Error: 4115Einträge in ruleengine.log abstimmen. Wie bereits erwähnt, habe ich mit ziemlicher Sicherheit dasselbe Ereignis angesehen, das all diese verschiedenen Fehler erzeugt. Wenn jemand es besser weiß, bitte korrigieren Sie mich.

Wenn ich das CMTrace-Tool zur Fehlersuche verwende, werden folgende Informationen zu hr = angezeigt 0x80041013.

Provider load failure

Source: Windows Management (WMI)
-----

Und wenn ich mir den WMI-Namespace ansehe, mit dem der Software Updates Patch Downloader eine Verbindung herstellt, sieht das nicht ganz richtig aus:

\ SCCM.ad.example.com \ root \ sms \ site_REV

Unser Site Code ist eigentlich 004und lustig genug, die ersten drei Buchstaben unserer Organisation beginnen mit REV. Mächtiger Zufall, wenn Sie mich fragen. Darüber hinaus ist dies nicht die erste SCCM-Installation, die hier vorhanden ist, und es hat sich herausgestellt, dass bei der vorherigen SCCM 2007 die vorhandenen Grenzen, Sammlungen und Pakete auf unsere neue Installation migriert wurden. Waffe rauchen? Nicht ganz. Es wurde auch ein anderer Site-Code verwendet. Vielleicht wurde der REV-Site-Code für eine temporäre Testinstallation von SCCM 2012 verwendet? Vielleicht nicht. Institutionelle Kenntnisse haben keine Aufzeichnungen REVdarüber und über die Migration, die wir vor meiner Einstellung durchgeführt haben.

In unserem alten PatchDownloader.log von der SCCM 2007-Instanz wird jedoch der Patch-Downloader für Softwareupdates angezeigt, der eine Verbindung zum site_$SITECODEWMI-Namespace herstellt. Leider liegen keine Protokolle aus unserer aktuellen 2012-Installation von Mai vor, in denen bestätigt werden konnte, dass auf den richtigen WMI-Namespace verwiesen wird.

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)


IN ORDNUNG. Es sieht wirklich nach einem Problem mit WMI-Namespaces aus. Irgendwo in den Tiefen von SCCM wird der Software Updates Patch Downloader angewiesen, eine Verbindung herzustellen, \\SCCM.ad.example.com\root\sms\site_REVanstatt \\SCCM.ad.example.com\root\sms\site_004.

Auf einem WAG überprüfte ich wahrscheinliche Tabellen in der SQL-Datenbank REVauf vergebliche Verweise .

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';


Um die Sache noch weiter zu komplizieren, werden mehrere Erklärungen für den 0x80041013Fehler angezeigt.

Tipps zur Fehlerbehebung bei WMI besagen, dass das Laden eines WMI-Anbieters fehlgeschlagen ist:

WBEM_E_PROVIDER_LOAD_FAILURE - 0x80041013

Die Fehlerbehebungsklassen für Anbieterereignisse sind eine großartige Ressource, können jedoch etwas überwältigend sein. Die MSFT_WmiProvider_LoadOperationFailureEvent-Klasse ist eine, die ich ziemlich oft als nützlich empfunden habe. Die meisten Provider-Ladefehler, auf die ich gestoßen bin, sind auf eine fehlerhafte Komponentenregistrierung (entweder in der Registrierung oder in WMI) oder auf damit zusammenhängende Berechtigungen zurückzuführen.

Während WMI-Fehlerkonstanten von MSDN besagen, dass es sich um ein Berechtigungsproblem handelt:

WBEM_E_ACCESS_DENIED 2147749891 (0x80041003) Der aktuelle Benutzer hat keine Berechtigung zum Ausführen der Aktion.

Die einzige andere Information, die ich über den 0x80041013Fehler finden konnte, war ein auf TechNet geposteter Mitarbeiter, der anscheinend dasselbe Problem hatte wie ich, bis auf das Problem, bei dem er zuvor SCCM installiert hatte, auf dessen WMI-Namespace fälschlicherweise verwiesen wurde ( zB site_REVstatt site_004). Am Ende hat er den gesamten WMI-Namespace sowie die Teile der SMS_ProviderLocation überarbeitet. Ich bin mir nicht sicher, ob ich das machen will.


An diesem Punkt war es ein langer Tag, wir müssen diese Server reparieren und mein Kopf tut weh. Irgendein Rat?


quelle
1
Haben Sie versucht, die Updates manuell herunterzuladen / bereitzustellen (überspringen Sie den ADR)? Und ... vielleicht den ADR löschen und neu erstellen?
Jason Sypkens
@JasonSypkens - Wenn Sie die ADRs löschen und neu erstellen, wird der Fehler reproduziert, und ich würde das zugrunde liegende Problem lieber mit SCCM beheben, anstatt die Updates manuell herunterzuladen. Ganz so verzweifelt sind wir noch nicht.
Ist auf Ihrem primären Standortserver der WMI-Namespace root \ sms \ site_REV vorhanden? Gibt es root \ sms \ site_004? Auch das mag ein bisschen drastisch sein, aber ... haben Sie versucht, die SUP-Rolle zu entfernen und wieder hinzuzufügen und / oder WSUS neu zu installieren? Ich habe meine Verwaltungskonsole durchgesehen und sehe keinen offensichtlichen Punkt, an dem SUP mit dem falschen Standortcode konfiguriert werden könnte.
Jason Sypkens

Antworten:

5

Vielleicht wurde der REVStandortcode für eine temporäre Testinstallation von SCCM 2012 verwendet? Vielleicht nicht. Institutionelle Kenntnisse haben keine Aufzeichnungen REVdarüber und über die Migration, die wir vor meiner Einstellung durchgeführt haben.

Diese Vermutung war richtig. Ich habe meinen Vorgänger gefunden und anscheinend hat der erste und erfolglose Versuch, von SCCM 2007 auf SCCM 2010 zu migrieren, den REVSite-Code verwendet. Wie es gelungen ist, die ganze Zeit im WMI-Ruhezustand zu bleiben und warum es "aktiviert" wurde, ist mir ein Rätsel.

Ich habe die Lösung in diesem TechNet- Beitrag, in dem empfohlen wurde, die alten Namespaces zu löschen, sehr sorgfältig erneut gelesen und mich entschlossen, dies zu versuchen. Ich zögere ein bisschen, dies als Antwort zu markieren, obwohl es dieses Problem behoben hat. Dies zeigt an, dass ich es implizit befürworte, zumal ich niemanden bei Microsoft dazu bringen konnte, zu bestätigen, ob dies ein sicherer Ansatz war oder nicht oder was die Konsequenzen dafür waren. Vergewissern Sie sich jedoch, dass Sie über vollständige Sicherungen Ihres SCCM-Servers oder zumindest über weitaus gründlichere Kenntnisse von WMI verfügen, bevor Sie fortfahren. Sie könnten sehr leicht alles kaputtmachen, was dies bewirkt, besonders wenn Sie wie ich mit WMI nicht vertraut sind und wie stark SCCM es nutzt.


Ich habe wbemtest verwendet, um eine Verbindung zum root\smsNamespace auf unserem SCCM-Server herzustellen . Von dort aus habe ich die Schaltfläche [Enum_Instances ...] verwendet und __NAMESPACEals Superklasse gesucht . Ich habe den Eintrag für den REVSite-Code gelöscht . Ich habe dann die gleichen Enum_Instances für die SMS_ProviderLocationals Superklasse und löschte den alten Site-Code aus diesem Namespace. Das erneute Ausführen der Regeln für die automatische Bereitstellung und das Überprüfen der Regeln PatchDownloader.logzeigten, dass jedes Windows Update erfolgreich heruntergeladen wurde.

WBEMTEST __NAMESPACE

WBEMTEST SMS_ProviderLocation

Ich würde mich sehr über weitere Informationen darüber freuen, wie diese Namespaces von SCCM verwendet werden und wie genau dies das Problem behebt, wenn jemand detailliertere Informationen hat.


quelle