Dienstag, 3. September 2013

Windows Update: Fehler "0x80072ee2" unter Windows 8 - Dienst reagiert nicht mehr

In Windows 8 gibt es ein Verhalten, dass den Windows Update Dienst (wuauserv) zum Absturz bringen kann.

Für den wuauserv lässt sich ein Proxy-Server konfigurieren.
Standardmäßig ist jedoch kein Proxy für den Dienst gesetzt.

Die wuauserv Proxy-Einstellung:
Die Konfiguration kann mit diesem Befehl angezeigt werden:
 

netsh winhttp show proxy

Im Normalfall erscheint dann diese Config:


 Current WinHTTP proxy settings:

    Direct access (no proxy server).


Sucht ihr online nach Updates, werden die Proxy-Einstellungen des Internet Explorers verwendet.



Wenn ihr einen WSUS-Server konfiguriert habt, wird jedoch die Einstellung die
mittels "netsh winhttp ..." angezeigt wird, verwendet.

Fehler unter Windows 8:
Ist kein Proxy konfiguriert unter Windows 8 und man besitzt jedoch keine direkte Internetverbindung, so kann es passieren, dass die Suche nach Windows Updates nicht abgeschlossen werden kann:

Im Logfile "C:\Windows\WindowsUpdate.log" erscheinen diese Einträge:

2013-09-03    07:58:21:157     900    e30    Misc    WARNING: Proxy List used: <(null)> Bypass List used : <(null)> Auth Schemes used : <None>
2013-09-03    07:58:21:157     900    e30    Misc    WARNING: Send request failed, hr:0x80072ee2
2013-09-03    07:58:21:157     900    e30    Misc    WARNING: WinHttp: SendRequestUsingProxy failed for <http://ds.download.windowsupdate.com/w8/2/windowsupdate/redir/wuredir.cab>. error 0x80072ee2
2013-09-03    07:58:21:157     900    e30    Misc    WARNING: WinHttp: SendRequestToServerForFileInformation MakeRequest failed. error 0x80072ee2
2013-09-03    07:58:21:157     900    e30    Misc    WARNING: WinHttp: SendRequestToServerForFileInformation failed with 0x80072ee2
2013-09-03    07:58:21:157     900    e30    Misc    WARNING: WinHttp: ShouldFileBeDownloaded failed with 0x80072ee2
2013-09-03    07:59:03:198     900    e30    Misc    WARNING: Send failed with hr = 80072ee2.
2013-09-03    07:59:03:198     900    e30    Misc    WARNING: Proxy List used: <(null)> Bypass List used : <(null)> Auth Schemes used : <None>
2013-09-03    07:59:03:198     900    e30    Misc    WARNING: Send request failed, hr:0x80072ee2
2013-09-03    07:59:03:198     900    e30    Misc    WARNING: WinHttp: SendRequestUsingProxy failed for <http://ds.download.windowsupdate.com/w8/2/windowsupdate/redir/wuredir.cab>. error 0x80072ee2
2013-09-03    07:59:03:198     900    e30    Misc    WARNING: WinHttp: SendRequestToServerForFileInformation MakeRequest failed. error 0x80072ee2
2013-09-03    07:59:03:198     900    e30    Misc    WARNING: WinHttp: SendRequestToServerForFileInformation failed with 0x80072ee2
2013-09-03    07:59:03:198     900    e30    Misc    WARNING: WinHttp: ShouldFileBeDownloaded failed with 0x80072ee2
2013-09-03    07:59:03:198     900    e30    Misc    WARNING: DownloadFileInternal failed for http://ds.download.windowsupdate.com/w8/2/windowsupdate/redir/wuredir.cab: error 0x80072ee2
2013-09-03    07:59:24:558     900    e30    Misc    WARNING: Send failed with hr = 80072ee2.


Bei der angegebenen Datei (http://ds.download.windowsupdate.com/w8/2/windowsupdate/redir/wuredir.cab) handelt es sich um ein File, dass für den Windows-Store benötigt wird.

By design:

Nach ca. 8 Wochen Kontakt mit dem Microsoft Support lautet die finale Aussage:
By Design. D.h. "das ist einfach so".
Die Case Nummer hierzu lautet: 113070910573485

Workaround?
Mit der Fehlermeldung im Logfile könnte man sicherlich leben.
Dass jedoch sich teilweise der Windows Update Dienst verabschiedet, ist sehr unschön (und zumdem ein Sicherheitsrisiko).

Um die Funktion des Dienstes zu gewährleisten, gibt es also zwei sinnvolle Lösungen:
  1. Einen Proxy-Server mittels "netsh winhttp" konfigurieren und den Download ermöglichen + Eine Proxyausname für den WSUS-Server definieren.
  2. Einen Proxy-Server mittels "netsh winhttp" konfigurieren und den Download am Proxy-Server sperren + Eine Proxyausname für den WSUS-Server definieren.
Gesetzt werden kann dieser Proxy mit diesen Befehlen:

netsh winhttp set proxy myproxy:80 "*.domain.intern"
(es kann natürlich auch nur explizit der WSUS-Server ausgeschlossen werden) 
oder
netsh winhttp import proxy source =ie  

 Geht das nicht eleganter?
Wir sind ja hier im GPO-Blog. Deshalb lautet die Antwort: Ja :-)

Diese Einstellung wird in einem Registry-Binary gespeichert.
Dieser befindet sich unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections und nennt sich "WinHttpSettings".

Ihr könnt also Group Policy Preferences Registry benutzen um diesen Schlüssel zu setzen:



Jetzt noch eine Zielgruppenadressierung setzen und fertig: