{"id":221286,"date":"2019-08-04T00:12:00","date_gmt":"2019-08-03T22:12:00","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=221286"},"modified":"2019-08-04T01:41:32","modified_gmt":"2019-08-03T23:41:32","slug":"windows-ein-bug-in-winevtutil","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2019\/08\/04\/windows-ein-bug-in-winevtutil\/","title":{"rendered":"Windows: Ein Bug in winevtutil"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline;\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2013\/03\/winb.jpg\" width=\"58\" height=\"58\" align=\"left\" \/>[<a href=\"https:\/\/borncity.com\/win\/?p=10666\" target=\"_blank\" rel=\"noopener noreferrer\">English<\/a>]Ein Blog-Leser hat mich bereits Mitte Juni 2019 auf einen doofen Bug in winevtutil hingewiesen. Ich stelle mal die Details dazu hier im Blog zur Information ein.<\/p>\n<p><!--more--><\/p>\n<h2>Was ist winevtutil?<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vg08.met.vgwort.de\/na\/5f1c83fda01046438e58370701c9f322\" alt=\"\" width=\"1\" height=\"1\" \/>Bei winevtutil handelt es sich um ein Tools f\u00fcr die Kommandozeile (Eingabeaufforderung) von Windows, mit dem man Informationen zu Ereignisprotokollen abrufen kann. Dieser Befehl dient auch zum Installieren und Deinstallieren von Ereignismanifesten, um Abfragen auszuf\u00fchren, und zum Exportieren, Archivieren und L\u00f6schen von Protokollen. Microsoft hat das Tool in <a href=\"https:\/\/docs.microsoft.com\/de-de\/windows-server\/administration\/windows-commands\/wevtutil\" target=\"_blank\" rel=\"noopener noreferrer\">diesem Artikel<\/a> dokumentiert.<\/p>\n<h2>Problembericht des Blog-Lesers<\/h2>\n<p>Blog-Leser Dalai kontaktierte mich Mitte Juni 2019 per Mail, um auf einen Bug im Befehl hinzuweisen.<\/p>\n<blockquote><p>ich bin k\u00fcrzlich auf einen Bug in einem Windows-Tool gesto\u00dfen, und ich kann sonst im Netz keine Anhaltspunkte dazu finden, dass dieser Bug jemand anderem innerhalb der vergangenen 12 Jahre aufgefallen ist, und das \u00f6ffentlich gemacht h\u00e4tte. Da man f\u00fcr den Feedback-Hub ja ein Microsoft-Konto ben\u00f6tigt, ich aber keines habe (und auch keines m\u00f6chte), hoffe ich, Sie k\u00f6nnten das Problem auf irgendeine Weise an Microsoft herantragen. Vielleicht k\u00f6nnen Sie auch dar\u00fcber bloggen.<\/p>\n<p>Konkret geht es um das Konsolentool wevtutil.exe. Dessen langer Parameter reversedirection funktioniert nicht, und hat auch noch nie funktioniert seit das Tool mit Vista eingef\u00fchrt wurde.<\/p>\n<p>Ich habe es unter Vista, Win7, Server 2012 R2 und Win10 1809 getestet &#8211;<br \/>\nnirgendwo wird der Parameter angenommen. Konkretes Befehls-Beispiel, das jeder selbst testen kann:<\/p>\n<p>wevtutil qe Application \/c:1 \/f:text \/reversedirection:true<\/p>\n<p>Das f\u00fchrt nur zur Fehlermeldung:<\/p>\n<p>&gt; Invalid option reversedirection. Option is not supported. The<br \/>\n&gt; parameter is incorrect.<\/p>\n<p>bzw. auf Deutsch<\/p>\n<p>&gt; Ung\u00fcltige Option \"reversedirection\". Die Option wird nicht<br \/>\n&gt; unterst\u00fctzt. Falscher Parameter.<\/p>\n<p>Und das obwohl der Parameter exakt so in der Hilfe steht, siehe<br \/>\nwevtutil qe \/?.<\/p>\n<p>Die kurze Form des Parameters funktioniert einwandfrei:<\/p>\n<p>wevtutil qe Application \/c:1 \/f:text \/rd:true<\/p>\n<p>Nun habe ich mich in der EXE etwas umgesehen &#8211; es lebe Sysinternals Strings ;) &#8211; und festgestellt, dass der Parameter zweifach auftaucht, einmal als reversedirection und einmal als reversdirection (also ohne zweites e).<\/p>\n<p>Benutzt man den Parameter in der Form ohne e, kommt zwar keine Fehlermeldung, aber der Parameter hat keine Wirkung, d.h es wird das \u00e4lteste Ereignis statt des neusten ausgegeben.<\/p>\n<p>Fun fact: In einem von Microsoft selbst hochgeladenen Beispiel-Code f\u00fcr ein abgespecktes <a href=\"https:\/\/github.com\/Microsoft\/Windows-classic-samples\/blob\/master\/Samples\/Win7Samples\/winbase\/Eventing\/EventLogConsumer\/CSharp\/Querying\/ReadEvents.cs\" target=\"_blank\" rel=\"noopener noreferrer\">Programm namens ReadEvents<\/a> sieht es richtig aus (Zeilen 97\/98)<\/p><\/blockquote>\n<p>Wer sich jetzt fragt, warum der Blog-Leser das \u00fcberhaupt anspricht, wo doch die<br \/>\nKurzform des Parameters funktioniert. Der Blog-Leser schrieb mir: Ich verwende in Skripten vorzugsweise die Langformen von Parametern (sofern verf\u00fcgbar), da diese<br \/>\nsehr oft eine eindeutige Aussage dar\u00fcber zulassen, was ein Parameter tut, ohne erst in die Hilfe schauen zu m\u00fcssen. Zudem ist er der Meinung, dass nicht jeder Bug 20 Jahre rumliegen muss, bevor er behoben wird \u2026.<\/p>\n<p>Ich hatte dann noch nachgefragt, ob auch die englischsprachige Fassung des Tools betroffen sei.<\/p>\n<blockquote><p>GB&gt; Wissen Sie, das Problem nur in einem deutschen Windows<br \/>\nGB&gt; zu finden ist- oder auch in englischen Varianten?<\/p><\/blockquote>\n<p>Die Antwort lautete:<\/p>\n<blockquote><p>Ich habe es auch in einem englischen Windows 7 getestet, das Problem ist dort ebenfalls vorhanden. Ist mehr oder weniger auch logisch, denn die EXE ist dieselbe, nur die Sprachdateien (*.exe.mui) unterscheiden sich. Und die Problemursache liegt sehr wahrscheinlich in der EXE, wie die Untersuchung derselben zeigte. Das Problem ist also sprachunabh\u00e4ngig bzw. betrifft s\u00e4mtliche Sprachen.<\/p>\n<p>Au\u00dferdem sind auf 64-bit Windows beide EXEn betroffen, also die in 64-bit<br \/>\nEXE in \\Windows\\System32 und die 32-bit EXE in \\Windows\\SysWOW64.<\/p><\/blockquote>\n<p>An dieser Stelle mein Dank an den Blog-Leser f\u00fcr den Hinweis. Muss mal schauen, wie ich das jetzt zu Microsoft transportieren kann.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[English]Ein Blog-Leser hat mich bereits Mitte Juni 2019 auf einen doofen Bug in winevtutil hingewiesen. Ich stelle mal die Details dazu hier im Blog zur Information ein.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7459,301],"tags":[419,3836,3288],"class_list":["post-221286","post","type-post","status-publish","format-standard","hentry","category-software","category-windows","tag-bug","tag-software","tag-windows-en"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/221286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=221286"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/221286\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=221286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=221286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=221286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}