Allgemeines

Anfang des Jahres habe ich mich schon einmal mit dem Windows Update Fehler 80072EE2 beschäftigen müssen. Dieser trat nur an einem Client des Unternehmens auf, alle anderen Clients arbeiteten einwandfrei mit dem WSUS zusammen. Den Fehler konnte ich damals nicht lösen und musste den PC letztendlich neu installieren.
Seit dem Umzug des WSUS Dienstes auf einen neuen Server kam dieser Fehler nun aber bei jedem Client. Der Fehler 80072EE2 hat also definitiv etwas mit einem fehlerhaft installierten oder konfigurierten WSUS Server zu tun.

Weitere Windows Update Fehler und ihre Lösung findet ihr hier.

Vorbereitung

Bevor ihr den WSUS Server bearbeitet, solltet ihr nochmal mit dem WSUS Check Script oder ähnlichen Tools an eurem Test-Client prüfen, ob alle Einstellungen richtig gesetzt sind.
Falls ja, sollte in eurer Registry unter HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate der Wert von „WUServer“ bzw. „WUStatusServer“ auf euren WSUS Server gesetzt sein, also „http://servername„. Ändert diese beiden Werte mal und hängt den Port 8530 an: „http://servername:8530“.
Anschließend könnt ihr direkt eine neue Update Suche starten und bekommt vermutlich einen anderen Fehler, evtl. den Fehler 800B0001. Auch dieser Fehler weist darauf hin, dass der WSUS Server noch nicht fertig installiert ist.

Lösung

In meinem Fall war die Lösung unerwartet einfach:

  1. Update/Fix KB2720211 (Info) auf dem WSUS Server installieren
  2. Stoppen des WWW Dienstes (services.msc -> „WWW-Publishingdienst“ oder CMD -> „net stop w3svc„)
  3. Stoppen des Update Dienstes (services.msc -> „Update Services“ oder CMD -> „net stop wsusservice„)
  4. Zurücksetzen des IIS Dienstes (CMD -> „iisreset“)
  5. Starten des Update Dienstes (services.msc -> „Update Services“ oder CMD -> „net start wsusservice„)
  6. (Starten des WWW Dienstes – müsste aber bereits vom IIS Reset gestartet worden sein (services.msc -> „WWW-Publishingdienst“ oder CMD -> „net start w3svc„))

Nach der Ausführung der Neustart-Befehle sollte der WSUS Server wieder laufen und relativ schnell die ersten Clientanmeldungen bekommen (je nach Anzahl der Clients im Netzwerk). Ein Serverneustart erspart euch die Befehle und ist auch empfohlen, aber nicht zwingend notwendig.

Hinweis: Stefan, ein Leser, hat mich per Mail darauf hingewiesen, dass bei ihm das Problem durch ein Netzwerkgerät – nämlich durch seinen Router – verursacht wurde. Durch die Verwendung der Offloading Funktion des Routers konnte er das Problem beheben. Schaut in seinen Blogartikel für mehr Infos.

Quellen: via, via, via, via, via, via

Windows Update Fehler Code 80072EE2… verdammt nochmal, was ist das für ein Fehler?!
windows-update-fehler-error-code-80072ee2

Laut Microsoft Hilfe werden „möglicherweise ungewöhnlich viele Updates von den Windows Update-Servern angefordert.“. Also die Server oder das Netzwerk sind überlastet. Bei einem lokalen WSUS Server im Netzwerk an einem ruhigen Freitag kann man das eher ausschließen.

Es gibt aber auch Meinungen, nach denen der Fehler an fehlender oder geblockten Verbindung zum Update Server liegt, wie in diesem Video angesprochen. Also die Verbindung zum WSUS Server prüfen, Antivirenprogramme prüfen, ggf. vorübergehend deaktivieren.

Hilft nicht? Dann helfen vielleicht folgende Tools:

Microsoft Fix-It zum Zurücksetzen der Update Komponenten:
windows-update-fehler-error-code-80072ee2-fix-it

Hilft nicht? Bei mir auch nicht.
Weiter mit dem PC-WELT-Fix für Windows Update:
windows-update-fehler-error-code-80072ee2-ct-fix-it
Dieses Tool ist relativ aktuell und dadurch für die Systeme XP bis Windows 8 geeignet. Auf älteren Systemen (XP/Vista) kann man es ggf. auch mit dem pcwUpdateRepair probieren. Vermutlich sind diese Fixes aber im aktuellen Fix It mit enthalten.

Bei der Gelegenheit ein Hinweis für Admins: das PC-WELT Fix It Pack enthält ein paar nette kleine Tools im schnellen Zugriff für die Erste Hilfe am PC. Manche sind bereits fertig installiert, andere müssen noch schnell installiert werden. Die Installer sind aber in den Pack schon enthalten. Die Software ist neben der mächtigen Sammlung WSCC, welche alle nirsoft und sysinternals Tools enthält, eine kleine Alternative:
pc-welt-fix-it-pack-for-admins-usage

Hilft uns jetzt aber erstmal nicht weiter.

Der Fehler bleibt ungelöst und es geht wieder zurück zum Troubleshooting:

  • Ping/Remotezugriff zum WSUS Server (bzw. Windows Update) funktioniert?
  • Hat der WSUS Server den Computer in seiner Computerliste gelistet?
  • Wann war die letzte Aktualisierung laut WSUS?
  • Werden dort Fehler oder fehlerhafte Updates angezeigt?
  • Ggf. die Updates des WSUS bereinigen lassen (WSUS -> Optionen -> Assistent für die Serverbereinigung).
  • Antivirenprogramme/Firewalls/andere Verbindungsblocker sowohl auf dem Client als auch auf dem Server temporär deaktivieren. Achtung, natürlich alles so schnell wie möglich wieder aktivieren.

Ich vermute der Fehler liegt am Netzwerk des PCs. Zwar funktionieren Pings und Serverzugriffe, jedoch zeigen die Netzwerkfunktionen teilweise abnormales Verhalten. Die Netzlaufwerke spinnen; sobald ich versuche Daten dort abzuspeichern, stürzt der Explorer (auch der Total Commander) ab und alle Netzlaufwerke sind nicht mehr erreichbar. Trotz WSUS Ping wird der Rechner nicht in der Computerliste des WSUS gelistet. Vielleicht Fehler in der Netzwerkkarte.

Weitere Windows Update Fehler und ihre Lösung findet ihr hier.

Mich beschäftigte heute kurz der Windows Update Fehler 8024402C unter Windows 7.
Er wird im Internet entweder an WSUS Problemen oder Netzwerkproblemen festgemacht. Ist der WSUS Server aktiv, sind die Netzwerkeinstellungen korrekt, kann man den WSUS von dem Rechner aus pingen?

Ich konnte den Fehler mit dem Löschen (vorher sichern!) des folgenden Registry Keys beheben:

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate

Wenn ihr einen WSUS nutzt (oder andere Windows Update bezogene GPO Einstellungen) solltet ihr direkt danach ein

gpupdate /force

abfeuern.
Danach ein Neustart und der Fehler sollte erledigt sein.

Die Gruppenrichtlinie und der WSUS sorgten dafür, dass der Schlüssel (korrekt) neu erstellt wurde und damit war das Problem wohl behoben.

via

Weitere Windows Update Fehler und ihre Lösung findet ihr hier.

Windows Updates suchen ewig

Wenn Windows 7 für eine Weile keine neuen Windows Updates bekommen hat und diese später nachholen soll, kann es sein, dass sich das System zu Tode lädt. Es wird ewig gesucht und nichts gefunden. Vielleicht waren die Windows Updates längere Zeit deaktiviert oder es handelt sich um ein älteres Image.
Windows 7 verwendet eine Technologie zum Erkennen von installierten und noch benötigten Updates, welche über die Jahre mehr und mehr überfordert ist mit der Menge an Informationen. Hier braucht Windows 7 Unterstützung durch 2 Patches und im Notfall weiteren Fixes, damit die Updates wieder schnell gefunden und installiert werden.

Update: Neuer Fix von Winfuture

Winfuture hat für genau dieses Fehlverhalten mittlerweile einen eigenen Fix veröffentlicht, welcher ein Set aus 5 Updates installiert, unter anderem auch die unten erwähnten. Vor der Installation dieses Pakets muss der Windows Update Dienst beendet (net stop wuauserv) oder Windows Updates deaktiviert werden.
Link zum Winfuture Windows 7 Update Fix

Fix

Hauptsächlich helfen die Updates 3020369 und 3172605 in diesem Fall. Sollten die Updates nicht einfach per Doppelklick installiert werden können, probiert vorher den Windows Update Dienst zu beenden, hier die CMD Befehle:

net stop wuauserv
:: KB3020369 installieren
:: Neustart
net stop wuauserv
:: KB3172605 installieren
:: Neustart

Damit sollten die Updates wieder laufen. Ich verwende diese Methode bereits seit Langem auf Arbeit um alte Windows 7 Systeme wieder schnell an das Windows Update anzubinden.

Problem nicht gelöst?

Falls es Probleme gibt, ist eventuell Windows Update an sich beschädigt. Möglicherweise hilft das Update KB3102810, die Neuinstallation des Windows Update Agents (unter „Manuelles Herunterladen des Windows Update-Agents“, Version 7.6 für Windows 7) oder das pcw-Fix Windows Update.
Weitere Windows Update Fehler habe ich hier im Blog – die Suchfunktion hilft.

via

Nur eine kurze Hilfe für den Fehlercode: 0xc004f014, der beispielsweise beim Upgrade von Windows 10 Home auf Professional auftreten kann. Vor allem dann, wenn ein neues Gerät mit installiertem Windows 10 Home ausgeliefert wird und dann ein Upgrade auf Pro erfolgen soll.

Lösung:

  1. Windows-Symbol -> Einstellungen -> Update und Sicherheit -> Aktivierung -> Product Key ändern
  2. den offiziellen Universal-Key für Windows 10 Pro eingeben:
    VK7JG-NPHTM-C97JM-9MPGT-3V66T
  3. Tasse Kaffe machen und warten bis die Installation durchgeführt und der PC wieder hochgefahren ist
  4. Startmenü -> Einstellungen -> Update und Sicherheit -> Aktivierung -> Product Key ändern und nun den erworbenen Pro-Key eingeben

via

Klingt seltsam, funktioniert aber. Warum auch immer Microsoft solche Standardsituationen nicht ordentlich behandeln kann…
Dieses Bild zeigt die erfolgreiche Aktivierung des Windows 10 Professional Produkt Keys

Weitere Windows Update Fehler und ihre Lösung findet ihr hier.

Auch dieser Artikel reiht sich in die Liste der Software-Batch-AD-Deployment-Guides ein.
Im Falle von HipChat wird der Artikel recht kurz, denn hier passiert nichts ungewöhnliches.

Vorbereitung

Das Bild zeigt das HipChat Deployment Verzeichnis mit seinen üblichen DateienDer aktuellste HipChat-Installer (für Windows) ist als .exe immer unter dieser URL verfügbar.
Anschließend wird wieder ein übliches Deployment-Verzeichnis auf einem für die PCs verfügbaren Netzlaufwerk erstellt: Installer, Installer-Batch, allowedPCs.txt und deniedPCs.txt (mehr Informationen zum Clientfilter hier). Im Standardfall (so auch in diesem Deployment-Script) wird die deniedPCs.txt benutzt, um einzelne Clients von der Verteilung auszuschließen. Die Textdatei muss dann Computernamen enthalten, einen pro Zeile.
Der HipChat-Installer muss folgendermaßen umbenannt werden: „HipChat_[Version].exe“ und der Versionsstring muss in das Deployment-Script in Zeile 11.

Deployment-Script

19.09.2016: Version 4.27.1.1658 getestet und verteilt.

Hinweis: Wer nicht nur ein Update sondern eine komplette Reinstallation von Hipchat im Netzwerk ausrollen will, kann mein angepasstes Script – hier als Download – nutzen. Die benötigte VersionCompare.exe erhaltet ihr hier.

Hier das Script für ein normales Update:

@echo off && color 9f && setlocal
set wd=\\lea\Deployment\Software\Hipchat
set log=%wd%\hipchat.log
set tools=\\lea\Deployment\Sonstiges\tools
set hipEL=999
set instversion=0.0
set versionEL=9
set exepath=none
set retry=0
REM:: ######## EDIT THIS ####
set newversion=4.1658
REM:: #######################


REM:: Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
::for /f %%f in (%wd%\allowedPCs.txt) do if "%computername%"=="%%f" goto check
::goto end

REM:: Clientfilter: die Computer aus der deniedPCs.txt dürfen nicht installieren
for /f %%f in (%wd%\deniedPCs.txt) do if "%computername%"=="%%f" goto end

:check
if exist "C:\Program Files (x86)\Atlassian\HipChat4\HipChat.exe" set exepath="C:\Program Files (x86)\Atlassian\HipChat4\HipChat.exe"
::if exist "c:\Program Files (x86)\Skype\Phone\skype.exe" set exepath="c:\Program Files (x86)\Skype\Phone\skype.exe"
if %exepath%==none echo %date% %time:~0,8% - %computername% findet das .exe Verzeichnis nicht && goto taskkill
goto checkversion

:checkversion
for /f "tokens=1-3" %%i in ('%tools%\sigcheck %exepath%') do ( if "%%i %%j"=="File version:" set instversion=%%k )
%tools%\VersionCompare.exe %instversion% %newversion%
set versionEL=%errorlevel%
if "%versionEL%"=="-1" goto taskkill
if "%versionEL%"=="0" echo %date% %time:~0,8% - %computername% hat bereits %instversion% installiert >> %log% & goto end
if "%versionEL%"=="1" echo %date% %time:~0,8% - %computername% hat bereits %instversion% (neuer) installiert >> %log% & goto end
goto end

:taskkill
TASKKILL /f /im hipchat.exe
goto install

:install
echo %date% %time:~0,8% - %computername% installiert... >> %log%
::msiexec.exe /i %wd%\deploy\%newversion%\SkypeSetup.msi /qn /norestart FEATURE_IEPLUGIN=0 FEATURE_FFPLUGIN=0
start /w %wd%\HipChat_%newversion%.exe /verysilent /norestart /restartapplications /lang=german /lang=1031 /64 /64bit /x64
set hipEL=%errorlevel%
if %hipEL%==1618 goto retry REM:: msiexec process in use, installation already in progress (eg. windows updates running)
if %hipEL%==1602 goto retry REM:: user canceled installation (eg. taskkill)
if %hipEL%==1603 goto retry REM:: fatal error, some use it for "already installed" (eg. java)
if %hipEL%==1638 goto uninstall REM:: another product is already installed, denies an update
if %hipEL%==1625 goto uninstall REM:: skype installer sometimes threw this one, don't know why
set hipEL=%errorlevel%
echo %date% %time:~0,8% - %computername% hat Version %newversion% mit EL %hipEL% abgeschlossen >> %log%
md %wd%\done\%computername%
goto end

:retry
if %retry%==1 goto retryfailed
echo %date% %time:~0,8% - %computername% hatte den Fehler %hipEL%, retry in 500Sek... >> %log%
set retry=1
REM:: 5 Minuten warten
ping localhost -n 500 > nul
goto taskkill

:retryfailed
echo _!_ %date% %time:~0,8% - %computername% hat die Installation abgebrochen, RETRY FAILED! >> %log%
goto end

:uninstall
if %retry%==1 goto retryfailed
TASKKILL /f /im hipchat.exe
echo %date% %time:~0,8% - %computername% deinstalliert Version %instversion%... >> %log%
start /w "" "C:\Program Files (x86)\Atlassian\HipChat4\unins000.exe" /s /silent /qn
del /q /s "C:\Program Files (x86)\Atlassian"
echo %date% %time:~0,8% - %computername% - %instversion% deinstalliert, retry... >> %log%
set retry=1
goto taskkill

:end
endlocal
exit

Und das war’s auch schon. Bei einem Update muss nur die neue .exe-Datei heruntergeladen und die Version in Zeile 11 angepasst werden.
Das Script kommt als Computer-Startscript in das GPO und schon startet die Verteilung:
Das Bild zeigt die Logausgaben des HipChat-Deployments
Das Bild zeigt das Deployment der 1648er Version anhand des allnew-Update-Scripts (siehe Hinweis und Download oben). Dabei wird an jedem PC, unabhängig der installierten Version (deswegen wird überall „Version 0.0“ deinstalliert), HipChat komplett deinstalliert und neu installiert. Beim Umstieg auf 1648 würde ich das empfehlen, weitere Update werden ich auch wieder mit dem normalen Script erledigen.

Neu in meiner Software-Deployment Auflistung ist ab jetzt KeePass 2, eine ziemliche gute und erweiterbare Passwortmanagement-Freeware.
Zu KeePass selbst werde ich in Zukunft noch einige Artikel schreiben, von der Installation bis zur Integration in Browser und Smartphone. Jetzt erstmal schnell das Deployment im Windows Active Directory via Batch Script, im üblichen Stil.

Vorbereitung

Das Bild zeigt die vielen Deploymentparameter und -optionen des KeePass 2 InstallersDer .exe Installer von der Homepage (Pro Version) liefert beim Aufruf mit dem Parameter „/?“ eine lange Liste von Optionen zur Anpassung der Installation. Diese findet ihr hier auch nochmal zur besseren Lesbarkeit in HTML Form.
Praktisch: Ihr könnt mit allen Parametern die Installation anpassen und bei der ersten Installation mit dem Parameter /SAVEINF=filename das Set an Optionen in eine Konfigurationsdatei speichern. Für die nächste Installation reicht als Parameter dann nur noch /LOADINF. So lassen sich beispielsweise unterschiedliche Deploymentprofile erstellen und nutzen.

Plugins

Eine der Stärken von KeePass ist die starke Erweiterbarkeit mit Hilfe der vielen Plugins und Tools. Die Installation und Verteilung ist bei fast allen relativ einfach: es reicht schon die entsprechende Plugin-Datei (z.B. .plgx) in das Programmverzeichnis zu legen, ggf. auch in einen seperaten „plugins“ Unterordner für eine verbesserte Übersicht. Beim nächsten Start von KeePass wird das Plugin automatisch erkannt und geladen.
Aus diesem Grund kopiert das Deployment-Script benötigte Plugins einfach nur in den Installationsordner – fertig!

Deployment

Aktuell: Version 2.34 via .exe
Das im Skript verwendete Programm VersionCompare ist eine Eigenprogrammierung und hier als Download verfügbar.

Code anzeigenDen Code könnt ihr bequem mit den Links/Rechts Pfeiltasten horizontal bewegen.

@echo off && color 9f && setlocal

set wd=\\lea\Deployment\Software\KeePass
set log=%wd%\keepass.log
set tools=\\lea\Deployment\Sonstiges\tools
set instversion=0.0
set versionEL=9
set regEL=999
set exepath=none
set retry=0

REM:: ######## EDIT THIS ####
set newversion=2.34
REM:: #######################

REM:: Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
REM::for /f %%f in (%wd%\allowedPCs.txt) do if "%computername%"=="%%f" goto check
REM::goto end

REM:: Clientfilter: die Computer aus der deniedPCs.txt dürfen nicht installieren
for /f %%f in (%wd%\deniedPCs.txt) do if "%computername%"=="%%f" goto end

:check
if exist "c:\Program Files (x86)\KeePass2\KeePass.exe" set exepath="c:\Program Files (x86)\KeePass2\KeePass.exe"
if exist "c:\Program Files\KeePass2\KeePass.exe" set exepath="c:\Program Files\KeePass2\KeePass.exe"
if %exepath%==none goto install
goto checkversion

:checkversion
for /f "tokens=1-3" %%i in ('%tools%\sigcheck %exepath%') do ( if "%%i %%j"=="File version:" set instversion=%%k )
%tools%\VersionCompare.exe %instversion% %newversion%
set versionEL=%errorlevel%
if "%versionEL%"=="-1" goto install
if "%versionEL%"=="0" echo %date% %time:~0,8% - %computername% hat bereits %instversion% installiert >> %log% & goto plugins
if "%versionEL%"=="1" echo %date% %time:~0,8% - %computername% hat bereits %instversion% (neuer) installiert >> %log% & goto plugins

:install
echo %date% %time:~0,8% - %computername% installiert... >> %log%
TASKKILL /f /im KeePass.exe
start /w %wd%\KeePass-%newversion%.exe /VERYSILENT /SP- /SUPPRESSMSGBOXES /LOG="logs/%computername%.log" /NORESTART /CLOSEAPPLICATIONS /SAVEINF="standardsetup.inf" /DIR="%ProgramFiles%\KeePass2" /GROUP="KeePass 2"
set kpel=%errorlevel%
if %kpel%==1618 goto retry REM:: msiexec process in use, installation already in progress (eg. windows updates running)
if %kpel%==1602 goto retry REM:: user canceled installation (eg. taskkill)
if %kpel%==1603 goto retry REM:: fatal error, some use it for "already installed" (eg. java)
if %kpel%==1638 goto retry REM:: another product is already installed, denies an update
echo %date% %time:~0,8% - %computername% hat Version %newversion% mit EL %kpel% abgeschlossen >> %log%
goto plugins

:plugins
REM:: copy plugins
if exist "c:\Program Files (x86)\KeePass2\KeePass.exe" xcopy /Y /S /I "%wd%\plugins" "c:\Program Files (x86)\KeePass2\plugins"
if exist "c:\Program Files\KeePass2\KeePass.exe" xcopy /Y /S /I "%wd%\plugins" "c:\Program Files\KeePass2\plugins"
goto end

:retry
if %retry%==1 goto retryfailed
echo %date% %time:~0,8% - %computername% hatte den Fehler %kpel%, retry in 500Sek... >> %log%
set retry=1
REM:: 5 Minuten warten
ping localhost -n 500 > nul
goto install

:retryfailed
echo _!_ %date% %time:~0,8% - %computername% hat die Installation abgebrochen, RETRY FAILED! >> %log%
goto end

:end
endlocal
exit