Windows Update ETLs manuell dekodieren

Seit Windows 10 werden die Logfiles vom Windows Update Service nicht mehr in einfach lesbare Log-Dateien sondern in sogenannte Event Trace Logfiles (ETL) geschrieben. Wieder einmal eine ganz tolle Idee von Microsoft, die besonders dann hilfreich ist wenn es ans Troubleshooten von Windows Update Problemen geht (die soll es ja angeblich hin und wieder geben).

Die ETL Files haben 2 eklatante Nachteile:

  • man kann nicht mehr live (mittels tail oder anderen Tools) mitlesen
  • lokal gibt es das Powershell Cmdlet "Get-WindowsUpdateLog", welches die ETLs in ein lesbares Log dekodieren und auf den Desktop legen. Leider ist man nicht immer lokal unterwegs, schon gar nicht wenn man im Enterprise Umfeld tätig ist.

Manuelles dekodieren ist möglich, aber natürlich nicht so einfach wie man es gerne hätte. Dazu muss man wie folgt vorgehen:

Die Windows Update ETL Files befinden sich auf C:\Windows\logs\WindowsUpdate:

Mittels tracefmt.exe können diese ETLs nun in eine lesbares Logfile dekodiert werden:

tracefmt.exe -o windowsupate.log WindowsUpdate.20180308.103756.226.8.etl -r c:\Symbols

Möchte man mehrere ETLs auf einmal dekodieren, einfach durch Leerzeichen getrennt die entsprechenden Dateinamen angeben.

Das Ergebnis ist ein (halbwegs vernünftig) lesbares Logfile, wie man es von früheren Windows Versionen gewöhnt ist:

[0]0DA8.25DC::03/07/2018-14:37:26.883 [WUTraceLogging]{"name":"Misc","Info":"Got WSUS Client/Server URL: \"http://wsus.meine.firma.at/ClientWebService/client.asmx\""}
[0]0DA8.25DC::03/07/2018-14:37:26.900 [WUTraceLogging]{"name":"ProtocolTalker","Info":"OK to reuse existing configuration"}
[0]0DA8.25DC::03/07/2018-14:37:26.900 [WUTraceLogging]{"name":"ProtocolTalker","Info":"Existing cookie is valid, just use it"}
[0]0DA8.25DC::03/07/2018-14:37:26.900 [WUTraceLogging]{"name":"ProtocolTalker","Info":"PTInfo: Server requested registration"}
[0]0DA8.25DC::03/07/2018-14:37:26.916 [WUTraceLogging]{"name":"Misc","Info":"Got WSUS Reporting URL: \"http://wsus.meine.firma.at/ReportingWebService/ReportingWebService.asmx\""}
[0]0DA8.25DC::03/07/2018-14:37:26.916 [WUTraceLogging]{"name":"IdleTimer","Info":"WU operation (CLegacyEventUploader::HandleEvents) started; operation # 102; does use network; is at background priority"}
[0]0DA8.25DC::03/07/2018-14:37:26.916 [WUTraceLogging]{"name":"WebServices","Info":"Auto proxy settings for this web service call."}
[0]0DA8.25DC::03/07/2018-14:37:27.241 [WUTraceLogging]{"name":"IdleTimer","Info":"WU operation (CLegacyEventUploader::HandleEvents, operation # 102) stopped; does use network; is at background priority"}
[0]0DA8.246C::03/07/2018-14:47:27.250 [WUTraceLogging]{"name":"Agent","Info":"Earliest future timer found: "}
[0]0DA8.246C::03/07/2018-14:47:27.250 [WUTraceLogging]{"name":"Agent","Info":"    Timer: 29A863E7-8609-4D1E-B7CD-5668F857F1DB, Expires 2018-03-08 09:14:12, not idle-only, not network-only"}
[0]0DA8.13E0::03/07/2018-14:47:28.253 [WUTraceLogging]{"name":"Misc","Info":"CSusClientGlobal::DoServicePreShutdown"}
[0]0DA8.13E0::03/07/2018-14:47:28.253 [WUTraceLogging]{"name":"IdleTimer","Info":"Idle timer disabled in preparation for service shutdown"}
[0]0DA8.13E0::03/07/2018-14:47:28.253 [WUTraceLogging]{"name":"Misc","Info":"WUTaskManager uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.253 [WUTraceLogging]{"name":"Agent","Info":"Earliest future timer found: "}
[0]0DA8.13E0::03/07/2018-14:47:28.253 [WUTraceLogging]{"name":"Agent","Info":"    Timer: 29A863E7-8609-4D1E-B7CD-5668F857F1DB, Expires 2018-03-08 09:14:12, not idle-only, not network-only"}
[0]0DA8.13E0::03/07/2018-14:47:28.259 [WUTraceLogging]{"name":"Misc","Info":"CreateSessionStateChangeTrigger, TYPE:2, Enable:No"}
[0]0DA8.13E0::03/07/2018-14:47:28.259 [WUTraceLogging]{"name":"Misc","Info":"CreateSessionStateChangeTrigger, TYPE:4, Enable:No"}
[0]0DA8.13E0::03/07/2018-14:47:28.266 [WUTraceLogging]{"name":"Misc","Info":"Agent uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.269 [WUTraceLogging]{"name":"Misc","Info":"Reporter uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.269 [WUTraceLogging]{"name":"Misc","Info":"network cost manager uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.269 [WUTraceLogging]{"name":"Misc","Info":"Eventer uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.269 [WUTraceLogging]{"name":"Misc","Info":"ServiceManager uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.270 [WUTraceLogging]{"name":"Misc","Info":"PersistentTimeoutScheduler uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.270 [WUTraceLogging]{"name":"Misc","Info":"datastore uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.297 [WUTraceLogging]{"name":"Misc","Info":"setting cache uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.297 [WUTraceLogging]{"name":"Misc","Info":"security checker uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.297 [WUTraceLogging]{"name":"Misc","Info":"Test Hook uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.297 [WUTraceLogging]{"name":"Misc","Info":"IdleTimer uninit"}
[0]0DA8.13E0::03/07/2018-14:47:28.299 [WUTraceLogging]{"name":"Shared","Info":"* END * Service exit Exit code = 0x240001"}

 

 

Amazon Drive streicht unlimitierten Speicherplan, Teil 2

Die Änderung der Storagepläne bei Amazon Drive ist nun ziemlich genau 2 Monate her. Inzwischen ist jede Menge Wasser die Donau runter geflossen, die Gemüter haben sich ein wenig beruhigt. Ich habe einen Teil meiner Ankündigungen wahr gemacht.

  • Amazon Drive war sofort gekündigt.
  • Amazon Prime war sofort gekündigt.
  • ich habe in den letzten 2 Monaten keine einzige Bestellung bei Amazon gemacht.
  • Den großen Echo und die beiden Echo dots habe ich aus Gründen, die ich hier nicht erläutern möchte, nicht zurück geschickt. Deren Nutzung hat sich allerdings sehr stark reduziert.

Ich habe dafür ein Handy in Amerika gekauft (via eBay Global Shipping Program), tonnenweise Elektronik-Teile aus China importiert, aber nichts bei Amazon bestellt. Der Fairness halber muss ich allerdings zugeben, dass ich einmal mehr oder weniger dringend eine SD-Karte benötigt habe, die hat dann meine Frau bei Amazon mitbestellt, weil sie auch andere Dinge bestellt hat. Das hätte sich natürlich anders auch erledigen lassen, hätte dann aber wesentlich länger gedauert.

Was Cloud Storage betrifft habe ich einen Anbieter gefunden der einen unlimitierten Speicherplan anbietet (Carbonite). Dieser hat zwar auch seine Eigenheiten (Dateien ab einer Größe von 4 GB müssen händisch zum Upload markiert werden - was bei mehr als 3TB Daten etwas anstrengend sein kann, insbesondere dann, wenn man BluRay und DVD-Images von Konzerten sammelt). Aber hey, es funktioniert und kostet nicht viel. Die für das Amazon Backup gekaufte Software liegt nun zwar in der Ecke, aber ich bin überzeugt dass sich früher oder später eine Anwendung dafür finden wird.

Ein Leben ohne Amazon ist also möglich.
Klingt vielleicht komisch, ist aber so. :D 

Amazon Drive streicht unlimitierten Speicherplan

Wie mir gestern per e-Mail mitgeteilt wurde, streicht Amazon den unlimitierten Storage Plan beim Amazon Drive. Als alten Datensammler (ich besitze eine 3TB große Bootleg-Sammlung meines Lieblingskünstlers) trifft mich das hart. Was ich bisher für 70 Euro pro Jahr bekommen habe, soll mich nun 400 Euro pro Jahr kosten (ein eventueller Datenzuwachs ist da noch nicht berücksichtigt). Das entspricht einer Preissteigerung um 600% (!!!). Das kann und will ich mir nicht leisten.

Nicht unbedingt ein schulbeispiel dafür, wie man mit langjährigen, treuen Kunden umgeht (meinen ersten Einkauf bei Amazon tätigte ich vor ziemlich genau 15 Jahren). Auf eine Anfrage diesbezüglich reagierte man mit vorgefertigten Marketingtexten ohne auch nur auf eines der von mir angeführten Argumente einzugehen. Ein weiterer Beweis dafür, dass man auf einen Kunden mehr oder weniger locker verzichten kann.

Lustiger Weise habe ich mir vor ca. 2 Wochen eine Software gekauft, mit der ich nun endlich sinnvoll alle Daten auf das Amazon Drive spiegeln kann. Die Amazon eigene Software ist ja nett für Leute die wenig bis keine Daten haben, aber für Sammler wie mich vollkommen unbrauchbar. Zwar kann das neu angeschaffte Programm auch mit anderen Cloud Storage Anbietern umgehen, jedoch bieten diese, so wie Amazon nun auch, keine für Einzelpersonen leistbaren Speicherpläne an.

Ich habe meine Amazon Prime Mitgliedschaft bereits beendet (deren Preis sich übrigens vor nicht allzu langer Zeit von 49 auf 69 Euro pro Jahr erhöht hat). Den Amazon Echo, den ich unlängst zum Geburtstag bekommen habe, habe ich gestern noch außer Betrieb genommen. Abgesehen von den 140 Euro die Amazon nun jährlich nicht mehr von mir bekommt, werde ich dort auch nicht mehr einkaufen.

Mein Einkaufserlebnis wird sich zukünftig anders gestalten und mit deutlich mehr Versandkosten verbunden sein als bisher. Dafür werde ich aber vielleicht dort einkaufen, wo man auf zufriedene Kunden noch Wert legt (die Hoffnung stirbt zuletzt).

Amazon, danke für nichts.
Ich habe fertig.

Windows Server 2016 WSUS

Heute habe ich zum ersten Mal WSUS (Windows Server Update Services) unter Windows Server 2016 installiert. Ich betreibe WSUS seit mehreren Windows-Generationen und habe damit eigentlich gute Erfahrungen gemacht, doch unter Windows Server 2016 wollte es von Anfang an nicht so richtig funktionieren. Die Installation ist genauso einfach wie früher auch: WSUS Rolle installieren, Post Installation Wizard ausführen, Initial Syncronization laufen lassen und Updates approven.

Nun sollten die WSUS-Clients verbinden und Updates installieren können. Dachte ich, doch es trat bei jedem Sync folgender Fehler auf:

Windows Update Error 0x8024401c

Im Prinzip ist das ein genersicher Timeout. Die Clients waren in der WSUS Console sichtbar, aber hatten alle den Status "Not reported yet". Also prinzipiell konnten sie zum WSUS Service verbinden, aber dann sind sie in ein Timeout gelaufen.

Wie üblich begann ich das Problem einzugrenzen, was ja seit Windows 10 / Windows Server 2016 ganz schön schwierig geworden ist, da man nicht mehr live die Logfiles des Windows Update Clients mitlesen kann (ETL sei dank). Powershell und Get-WindowsUpdateLogs sind nun zu verwenden. Wie komfortabel, wenn man das alle 2 Minuten neu ausführen muss wenn man die aktuellen Log-Einträge lesen will. Das Zeug das die in Redmond gesoffen haben, als sie sich das ausgedacht haben, würde ich gerne mal probieren... ;-)

Dank Google und diversen Foren kam ich nach Stunden des Stöberns und Tüftelns auf die Lösung des Problems:

In der IIS Console muss am WSUS Application Pool (Advanced Settings) folgendes geändert werden:

  • General\Queue Length: 2500
  • CPU\Limit interval (minutes): 15
  • Rapid-Fail Protection\"Service Unavailable" Response: TcpLevel
  • Recycling\Private Memory Limit (KB): 0

Danach konnten die Clients die Updates herunterladen und installieren.

Windows Server 2016 via Telefon aktivieren

Unlängst wollte ich Windows Server 2016 telefonisch aktivieren, da ich auf dem betroffenen Server weder Verbindung zu einem KMS Server, noch Internetzugang hatte. Wie ich feststellen musste, gibt es in den modernen Settings keine Möglichkeit mehr, die Art der Aktivierung zu wählen (oder ich bin blind). Auch der Troubleshooter half nicht weiter, teilte er mir nach langem Warten ("Detecting activation problems...") doch blos mit, dass ich einen funktionierenden Internetzugang sicherstellen solle ("We can't activate your copy of Windows. Make sure you're connected to the Internet and try again. If you're connected to the Internet and continue seeing this problem, contact your system administrator for more information.").

Daher habe ich Google befragt und bin auf KB921471 gestoßen.

Unter "Method 1: Activate Windows by telephone" ist da zu lesen:

  1. Click Start, and then click Run.
  2. Type SLUI 04, and then click OK to open the wizard.

Gleich mal ausprobiert und aufeinmal springt mir folgendes GUI entgegen:

Telefonaktivierung

Es geht also doch. Wieder etwas gelernt.