Empirum: Einfacherer Zugriff auf detaillierte Fehler-Protokolle

Schlägt eine Installation eines Empirum Paketes fehl, so wird dies in der Management Console mit dem Status „Failed“ im SWDepotLog und im Status versehen. Im erweiterten ErrorLog kann man ggf. noch den Fehlercode oder einen kleinen Hinweis auf den möglichen Fehler bekommen. Doch häufig benötigt man den Zugriff auf die komplette Log Datei der Installation. Diese wiederum liegt lokal auf dem Computer. Warum?

Hintergrund

Im Standard der Empirum Paket Vorlagen werden diese detaillierten Log Dateien von extern aufgerufenen Setup Routinen wie MSI und Unattended im %WINDIR%\Temp Ordner abgelegt. Schlägt eine Installation fehl, werden diese Log Dateien mit den Fehlern vorgehalten (nicht gelöscht) damit das Problem näher erörtert werden kann. Wenn nun Computer ausgeschaltet sind oder der Zugriff auf den Computer nicht sichergestellt ist (Notebook Benutzer, Firewall, etc.) kann derzeit jedoch keine weiterführende bzw. zeitnahe Analyse bezüglich des Problems stattfinden.

Idee

Ich habe mir dazu ausgedacht, dass im Fehlerfalle diese Log Dateien zusätzlich in das Log Verzeichnis des Agenten kopiert werden und dieser überträgt die Dateien auf den zentralen EmpirumServer. Dieser ist immer erreichbar und der Zugriff kann zentral gesteuert werden. Die Synchronisierung der Log Dateien wird über den EmpirumAgenten sichergestellt, da diese in einem Unterverzeichnis von C:\EmpirumAgent\Log abgelegt werden.

Umsetzung

Die nachfolgenden Beispiele sind ggf. auf die eigene Umgebung und das Agenten-Verzeichnis anzupassen.

Notwendige Setup.inf Anpassung

Dazu wurde folgende Änderung bzw. zusätzlichen Zeilen in der Setup.inf erstellt:

[Environment]
MSILogFileName=MSI_%ProductName%.%Version%.%Revision%.log
MSILogFile=%Temp%\%MSILogFileName%
ErrorMsgSyncDir=C:\EmpirumAgent\Log\InstallErrors.CU\%Computername%

[AbortMSIInst]
CALLHIDDEN %COMSPEC% /C MD "%ErrorMsgSyncDir%"
COPY "%MSILogFile%" "%ErrorMsgSyncDir%\%MSILogFileName%"
ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%
Abort

[AbortMSIUnInst]
-Abort
-ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%
-COPY "%MSILogFile%" "%ErrorMsgSyncDir%\%MSILogFileName%"
-CALLHIDDEN %COMSPEC% /C MD "%ErrorMsgSyncDir%"

Anpassung in der Management Console

Der Zugriff auf das zentrale Log Verzeichnis eines Computers kann über einen „Rechtsklick“ auf den Computer geschehenDie Konfiguration wird über die Management Console, Extras, Eigenschaften unter „Externe Programme“ vorgenommen.

  • Zentrales Log Verzeichnis
  • explorer \\%EmpirumServer%\configurator$\Log\InstallErrors.CU\%Computername%

Das gezeigte Beispiel nutzt die EmpirumServer Variable. Hier muss ggf. der zentrale EmpirumServer eingetragen werden und das Support-Personal zum Lesen berechtigt werden.

Bereinigung

Die zyklische Bereinigung des zentralen Log Verzeichnisses muss derzeit von Hand durchgeführt werden.

3 Kommentare Schreibe einen Kommentar

  1. Hallo Jochen,

    super Idee! Manchmal sind die Logs im Standard wirklich nicht ausreichend bzw. die Meldung wenig aussagekräftig.

    Muss ich irgend welche Ordner manuell anlegen oder wird das alles über die setup.inf Anpassungen gesteuert? Wenn ich es richtig gelesen habe muss man nichts händisch anlegen?

    Viele Grüße
    Udo

    • Hallo Udo,

      das Verzeichnis im lokalen EmpirumAgent Verzeichnis wird über die Setup.inf erstellt.
      Dieser Ordner samt der Dateien wird über den Log.-Sync des Agenten auf den EmpirumServer übertragen.
      Setup.inf Anpassungen und in der EMC ggf. die „Externen Programme“ erweitern. Das war es!

      Danke und Grüße
      Jochen

      • Hallo Jochen,

        es scheint zu funktionieren. Ich habe einen Client, wo das entsprechende Log in den InstallErrors.CU Ordner auf dem Empirum Server verschoben wurde und mir auch die Lösung gebracht hat 🙂 Bei einem anderen Client allerdings wird kein Log erstellt. In diesem Fall ruft mir die Verknüpfung unter Externe Programme des Clients > Zentrales Log Verzeichnis meine Windows Standard Ordner für Dokumente auf.

        Ist das Verhalten korrekt, wenn kein Log File zu dem betreffenden Client gefunden wurde? Zweitens frage ich mich warum keins erstellt wurde? Es geht um eine SnagIT MSI Installation.

        Viele Grüße
        Udo

Schreibe einen Kommentar