{"id":1057,"date":"2015-04-25T18:00:42","date_gmt":"2015-04-25T18:00:42","guid":{"rendered":"http:\/\/abramowitsch.de\/blog\/?p=1057"},"modified":"2015-04-25T18:00:42","modified_gmt":"2015-04-25T18:00:42","slug":"msi-logs-komfortabel-auswertenanalysieren","status":"publish","type":"post","link":"https:\/\/abramowitsch.de\/blog\/?p=1057","title":{"rendered":"MSI Logs komfortabel auswerten\/analysieren"},"content":{"rendered":"<p>Als Software-Entwickler muss man sich neben der Entwicklung neuer Software manchmal auch um die Verteilung beispielsweise \u00fcber Windows Installer Technologien befassen. Schl\u00e4gt eine Installation fehl, kommt man meist nicht darum, sich die Details anzuschauen. Dazu muss ein Logfile zum Installer erstellt werden, indem dem Windows Installer ein <a href=\"https:\/\/msdn.microsoft.com\/de-de\/library\/cc759262%28v=ws.10%29.aspx\">Parameter<\/a> mitgegeben wird:\n<\/p>\n<p>msiexec \/i [PfadZumMsiPaket] \/l*v [PfadZumLogFile]\n<\/p>\n<p>Beispiel: msiexec \/i MeinSetupProjekt2015.msi \/l*v MeinInstallerLog.txt\n<\/p>\n<p>Schaut man das erste Mal in so ein Logfile, so sieht es nicht besonders hilfreich aus:\n<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2015\/04\/042515_1800_MSILogskomf1.png\" alt=\"\"\/>\n\t<\/p>\n<p>Analysiert man solche Logfiles \u00f6fter, findet man sich irgendwann doch noch schnell darin zurecht.\n<\/p>\n<p>Vor kurzem bin ich \u00fcber ein n\u00fctzliches Werkzeug zum Analysieren vom Windows Installer Logfiles gesto\u00dfen: <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/aa372811.aspx\">Microsoft Installer Verbose Log Analyzer<\/a> (WiLogUtl.exe), das Bestandteil des <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/aa370834.aspx\">Windows Installer SDKs<\/a> ist.\n<\/p>\n<p>Zu finden ist das Programm dann auch der Festplatte unter %ProgramFiles%\\Windows Kits\\8.1\\bin\\x86:\n<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2015\/04\/042515_1800_MSILogskomf2.png\" alt=\"\"\/>\n\t<\/p>\n<p>Nach dem Laden des Logfiles kann man dieses dann analysieren lassen:\n<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2015\/04\/042515_1800_MSILogskomf3.png\" alt=\"\"\/>\n\t<\/p>\n<p>In meinem Fall habe ich die Ausf\u00fchrung mit erh\u00f6hten Rechten abgelehnt. Klickt man dann auf &#8222;Analyze&#8220;, so wird folgender Dialog ge\u00f6ffnet:\n<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2015\/04\/042515_1800_MSILogskomf4.png\" alt=\"\"\/>\n\t<\/p>\n<p>Der erste Fehler wird direkt in der oberen Liste angezeigt. \u00dcber die Buttons &#8222;Next&#8220; und &#8222;Previous&#8220; kann dann zwischen den Fehlern im Logfile navigiert werden.\n<\/p>\n<p>Es lassen sich auch die Properties und deren Werte in einer \u00dcbersicht anzeigen:\n<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2015\/04\/042515_1800_MSILogskomf5.png\" alt=\"\"\/>\n\t<\/p>\n<p>Dabei k\u00f6nnen die Properties sowohl auf Client-Seite (z.B. w\u00e4hrend der Erfassung von Installationspfad, Auswertung von Launch-Conditions, \u2026) angezeigt werden als auch bei der Ausf\u00fchrung, wenn das Installationspaket vom Windows Installer Service ausgef\u00fchrt wird. Sehr praktisch!\n<\/p>\n<p>\n\u00a0<\/p>\n<p>\u00dcber den Button &#8222;Policies&#8220; in der Analyse kann man sich die Berechtigungen anzeigen lassen, die beispielsweise per Gruppenrichtlinie an den Rechner verteilt wurden:\n<\/p>\n<p style=\"margin-left: 36pt\"><img decoding=\"async\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2015\/04\/042515_1800_MSILogskomf6.png\" alt=\"\"\/>\n\t<\/p>\n<p>Auch sehr praktisch ist das Erzeugen eines HTML-Reports aus dem Logfile:\n<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2015\/04\/042515_1800_MSILogskomf7.png\" alt=\"\"\/>\n\t<\/p>\n<p>Die einzelnen Kategorien des Logfiles sind dann farbig hinterlegt, was das Lesen der Logdatei deutlich angenehmer macht.\n<\/p>\n<p>Dieses HTML-Logfile kann auch automatisch \u00fcber einen Kommandozeilen-Parameter erzeugt werden:\n<\/p>\n<p>wilogutl \/q \/l c:\\mymsilog.log \/o c\\outputdir\\\n<\/p>\n<p>(siehe <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/aa372811(v=vs.85).aspx\">https:\/\/msdn.microsoft.com\/en-us\/library\/aa372811(v=vs.85).aspx<\/a> )\n<\/p>\n<p>\n\u00a0<\/p>\n<p>Weitere n\u00fctzliche Links zum Analysieren von Windows Installer Logfiles:\n<\/p>\n<ul>\n<li><a href=\"http:\/\/robmensching.com\/blog\/posts\/2010\/8\/2\/the-first-thing-i-do-with-an-msi-log\/\">http:\/\/robmensching.com\/blog\/posts\/2010\/8\/2\/the-first-thing-i-do-with-an-msi-log\/<\/a>\n\t\t<\/li>\n<li><a href=\"http:\/\/www.joyofsetup.com\/2008\/07\/15\/verbose-logging-from-wcautil\/\">http:\/\/www.joyofsetup.com\/2008\/07\/15\/verbose-logging-from-wcautil\/<\/a>\n\t\t<\/li>\n<\/ul>\n<p>Alternative: der (auch f\u00fcr kommerzielle Zwecke kostenlose) Logit Log Viewer, der auch MSI Logs anzeigen kann\n<\/p>\n<p>Quelle: <a href=\"http:\/\/www.legitlog.com\/Products\/LegitLogViewer\">http:\/\/www.legitlog.com\/Products\/LegitLogViewer<\/a>\n\t<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/abramowitsch.de\/blog\/wp-content\/uploads\/2015\/04\/042515_1800_MSILogskomf8.png\" alt=\"\"\/>\n\t<\/p>\n<p>Wichtiger Hinweis: &#8222;=== Verbose logging started&#8220; (erste Zeile) muss aus dem Logfile entfernt werden, da sonst der Logfile Viewer dieses Format nicht verarbeiten kann.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Als Software-Entwickler muss man sich neben der Entwicklung neuer Software manchmal auch um die Verteilung beispielsweise \u00fcber Windows Installer Technologien befassen. Schl\u00e4gt eine Installation fehl, kommt man meist nicht darum, sich die Details anzuschauen. Dazu muss ein Logfile zum Installer erstellt werden, indem dem Windows Installer ein Parameter mitgegeben wird: msiexec \/i [PfadZumMsiPaket] \/l*v [PfadZumLogFile] [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[24],"tags":[],"class_list":["post-1057","post","type-post","status-publish","format-standard","hentry","category-wix-toolset"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Ug90-h3","_links":{"self":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1057","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1057"}],"version-history":[{"count":1,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1057\/revisions"}],"predecessor-version":[{"id":1058,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1057\/revisions\/1058"}],"wp:attachment":[{"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abramowitsch.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}