SP1 für Windows Server 2008 R2 und Windows 7 x64 kann nicht über WSUS verteilt werden

Szenario:

Man verteilt die Updates mittels WSUS 3.0 welcher auf einem Windows Server 2003 SP2 installiert ist.

KB976932 (x64) wird für Windows Server 2008 R2 und Windows 7 x64 in der WSUS Console genehmigt.

Man erwartet jetzt dass die Windows Server 2008 R2 und Windows 7 x64 Maschinen aus dem Unternehmen den SP1 zur Installation angeboten bekommen, jedoch erscheint im Windows Update Fenster folgender Fehler:

Im EventLog erscheit folgender Eintrag:

ERROR 3/14/2011 9:29:55 AM Windows Server Update Services

Synchronization 364 N/A SWELO06SWD

Content file download failed. Reason: File cert verification failure. Source File: /Content/AB/74865EF2562006E51D7F9333B4A8D45B7A749DAB.exe Destination File: d:\WSUS\WsusContent\AB\74865EF2562006E51D7F9333B4A8D45B7A749DAB.exe.

 

In den WSUS Logs sieht man:

2011-03-14 08:29:11.847 UTC Change mmc.8 Update.ResumeDownload Windows 7 Service Pack 1 for x64-based Systems (KB976932) has resumed to download

[…]

2011-03-14 08:29:55.380 UTC Info WsusService.24 CabUtilities.CheckCertificateSignature File cert verification failed for d:\WSUS\WsusContent\AB\74865EF2562006E51D7F9333B4A8D45B7A749DAB.exe with 2148204800

2011-03-14 08:29:55.411 UTC Warning WsusService.24 ContentSyncAgent.ProcessBITSNotificationQueue Invalid file deleted: d:\WSUS\WsusContent\AB\74865EF2562006E51D7F9333B4A8D45B7A749DAB.exe

 

# for decimal -2146762496 / hex 0x800b0100 :

  TRUST_E_NOSIGNATURE winerror.h

# No signature was present in the subject.

Ein Löschen des SP1 Paketes aus dem WSUS Content (WsusContent\AB\74865EF2562006E51D7F9333B4A8D45B7A749DAB.exe) und ein erneute Synchronisation mit Windows Update bringen die selben Fehler.

Wenn man die Eigenschaften der oben genannten Datei aufruft dann sieht man dass es gar keinen “Digital Signatures” Tab gibt.

 

Ursache:

Die WinVerifyTrust Funktion in Windows Server 2003 kann keine Zertifikate für große Dateien (meistens über 500MB) validieren:

You cannot distribute or install a software package in Windows Server 2003 if the software package contains a very large signed file

https://support.microsoft.com/kb/938759

 

Lösung:

Man muss auf dem WSUS Server das Update KB938759 istallieren welches die Wintrust.dll und die Crypt32.dll aktualisiert.

 

Stefan Chivu
Platforms Core Team