Fehler und ErrorLevel aus der Setup.inf

Niemand und nahezu nichts ist komplett fehlerfrei – doch man kann sich Stück für Stück verbessern! Bei der Erstellung von Software-Paketen, beim Verteilen von Software-Paketen oder Patches mit dem Patch-Management treten schon auch mal Fehler auf. Diese sollten natürlich in der Test und Pilotphase festgestellt und behoben werden. Die angezeigten Fehlermeldungen bzw. der ERRORLEVEL im SWDepot-Log der Management Console kann erste Aufschlüsse über den Fehler geben, und wie er behoben werden kann. Manche angezeigten „Fehler“ sind auch gar keine. Wie ist damit umzugehen?

Die angezeigten ERRORLEVEL haben ihren Ursprung zumeist im Kommando Interpreter oder in den Installern. Unten angefügt habe ich zwei Tabellen mit den häufigsten Fehlermeldung. Diese Tabellen erheben jedoch keinen Anspruch auf Vollständigkeit.

Was sind die gängigen Fehler und wie lassen sie sich beseitigen?

Die ERRORLEVEL Meldungen rühren aus der Setup.inf des fehlerhaften Empirum Paketes.

Fehler 2 oder 3
In diesem Fall ist zumeist ein Befehl falsch geschrieben, die Setup.exe ist zu alt für den genutzten Befehl, ein aufzurufendes Programm wurde versucht als Befehl zu interpretieren.

Fehler 5
Kein Zugriff möglich oder auch Zugriff verweigert bedeutet zumeist, dass der Befehl aufgrund von nicht vorhandenen Berechtigungen fehlschlägt. In Empirum ist das zumeist, wenn in der Registry Änderungen durchgeführt werden sollen, zu der der Benutzer nicht berechtigt ist. Das können Änderungen im Bereich HKLM\SYSTEM, als auch HKCU\Software\Microsoft\Policies sein. Der Benutzer hat zwar Berechtigungen auf den HKCU Zweig, jedoch nicht im Bereich der Policies, denn diese soll er ja auch nicht „manipulieren“ können.

Fehler 1602
Dieser Fehler rührt vom Windows Installer und bedeutet, dass der Benutzer die „Abbrechen“ Schaltfläche des MSIEXEC Dialoges betätigt hat. Diese Schaltfläche kann mit dem „!“ entfernt werden, wie z.B. /qb-! oder /qr!. Nutzt man direkt /qn – so wird nichts angezeigt, auch nicht die „Abbrechen“ Schaltfläche.

Fehler 1603
Der „1603“ ist der beliebteste Fehler unter den Software-Paketieren, denn er bedeutet soviel wie „Es ist ein schwerwiegender Fehler aufgetreten…“. Das heißt soviel wie alles und nichts! Hier kann man dem Fehler nur durch Analyse des MSI Logs näher kommen. Das Log wird im Standard in den %TEMP% Ordner des jeweiligen Computers geschrieben und beginnt mit MSI_. Wenn die Installation mit dem Empirum Advanced Agent durchgeführt wird, so ist die Datei im Ordner %WinDir%\TEMP wiederzufinden. Häufig wird der Fehler am Ende des Logs angezeigt, das man sehr einfach mit STRG+ENDE anspringen kann.

Fehler 0
Warum ist der ERRORLEVEL 0 ein Fehler? Wieso wird das Paket als fehlerhaft in der Console angezeigt bzw. läuft immer wieder, obwohl alles „gut“ aussieht und das Programm auch funktioniert? Dies liegt häufig damit zusammen, dass in Empirum Software-Paketen in denen externe Installer (Hersteller-Setups) aufgerufen werden, auch anschließend eine „Erfolgsüberprüfung“ stattfindet. Da man nicht weiß, ob die Hersteller-Setuproutine das gemacht hat was man von ihr erwartet, prüft man im Anschluß den Erfolg durch die Überprüfung auf das Vorhandensein von Registry Einträgen, Dateien oder Texte in Dateien. Können die zu erwartenden Prüfpunkte nicht erfolgreich geprüft werden, so verzweigt die Installationsabfolge in der Setup.inf in eine Sektion, in der die Empirum Installation mit „Abort“ abgebrochen wird. Der Fehler 0 tritt sehr gerne in MSI Paketen auf.

Folgendes ist zu prüfen bzw. anzupassen:

  • Ist der UninstallString in der Registry unterhalb der GUID vorhanden? (Änderung auf InstallDate hilft häufig.)
  • Ist es überhaupt die richtige GUID die abgeprüft wird?
  • Wird die ReInstSuccessMessageXXXX in dem MSILogFile richtig geprüft? Die aktuellen MSI Vorlagen prüfen 4 ReInstSuccessMessages, da sich die Meldungen mit der Aktualisierung der MSIExec Version geändert haben. Dieser Fehler tritt auch gerne beim Testen der Windows XP Pakete unter Windows 7 auf. Abhilfe schafft hier die Übernahme der 4 ReInstSuccessMessages und das Anpassen der Überprüfung (IF …) in der RepairMSI Sektion. Die Vorlage liefert die aktuelle MSI.inf.

Liste von Fehlermeldungen bzw. ERRORLEVEL Werten

Fehler – Beschreibung
0 – Fehlerfrei
2 – Datei nicht vorhanden
3 – Pfad nicht gefunden
5 – Kein Zugriff möglich
6 – Ungültiger Zugriff/ungültiges Handle
8 – Zu wenig Speicher
10 – Ungültiger Bereich/ungültige Environment Variablen
11 – Ungültiges (Befehls-)Format

MsiExec.exe und InstMsi.exe Fehlermeldungen
Hier geht es zur Microsoft Seite mit der vollständigen Liste der „MsiExec.exe and InstMsi.exe Error Messages (Windows)“

Wert – Fehler-Code – Beschreibung
0 – ERROR_SUCCESS – Die Installation war erfolgreich.
1602 – ERROR_INSTALL_USEREXIT – Der Benutzer hat die Installation abgebrochen.
1603 – ERROR_INSTALL_FAILURE – Es ist ein schwerwiegender Fehler während der Installation aufgetreten.
1642 – ERROR_PATCH_TARGET_NOT_FOUND Der Patch kann nicht installiert werden, weil die zu aktualisierende Software nicht installiert ist.
3010 – ERROR_SUCCESS_REBOOT_REQUIRED Die Installation war erfolgreich, benötigt jedoch einen Neustart!

13 Kommentare Schreibe einen Kommentar

  1. Hallo und erst einmal vielen Dank für diese tolle Site.

    ich hab z.Zt. öfters den Fehler 1618, weiß auch was der bedeutet, aber mir ist nicht klar, warum ständig der Prozess läuft auf dem PC. Wo kann ich denn sehen oder herausfinden, von wem die msiexec.exe gestartet wird.

    Schönen Dank, Stefan

    • Hallo Stefan,

      ich kann hier nur auf diverser Erfahrungen zurückgreifen.

      Wenn es bei neuen Installationen auftritt: Dann ist es häufig die AntiVirus Software, die sich direkt nach der Installation aktualisiert.
      Hier sollte man die Aktualisierung im eigentlichen Paket antriggern und warten.

      Bei laufenden Installationen: Gibt es Pakete die im Software-Depot die Eigenschaft „Asynchrone Ausführung“ gesetzt haben?
      Ich hatte auch schon MSI Installationen, die weitere Installationen nachgezogen haben.

      Generell sollte man bei den Paketen wo der Fehler auftritt, mal nachschauen was in dem SWDepot.log zuvor läuft an MSI Installationen.
      Weitere Indizien findet man anhand von MSI Log Dateien im %WindDir%Temp Ordner.
      Hier das Datum und Uhrzeit beim Auftreten des Fehlers nutzen.

      Viel Erfolg und Grüße
      Jochen

  2. Schönen guten Abend
    ich besitze den Fehler 0 und habe alle schritte befolgt aber mein System blockiert immer noch installationen. Ich brauche hier Hilfe um es wieder zu beheben: Ich will ein CHIP Führerschein Programm installieren was auf einem Stick ist

    • Hallo Florian,
      ich weiß nicht, ob du hier richtig gelandet bist.
      Versuchst Du die Software mit Empirum zu verteilen, da du sagst, dass die Software auf einem Stick ist.
      In diesem Fall wird es besser sein, wenn Du dich an den Hersteller der Software wendest.
      Ggf. hilft es auch einfach die UAC zu bedienen.
      Viel Glück und Grüße
      Jochen

  3. Hallo,
    habe mal eine Frage zu Rückgabe von Erroleveln.
    Ich prüfe die .Net Version auf folgende Errorlevel.

    If „%ErrorLevel%“ == „1602“ Then „Set:Abort1602“ EndIf
    If „%ErrorLevel%“ == „1603“ Then „Set:Abort1603“ EndIf
    If „%ErrorLevel%“ == „5100“ Then „Set:Abort5100“ EndIf
    If „%ErrorLevel%“ == „1641“ Then „RebootRequired“ EndIf
    If „%ErrorLevel%“ == „3010“ Then „RebootRequired“ EndIf
    Da mir keine weiteren Errolevel bekannt sind, gehe ich von Errorlevel 0 aus.
    Ich würde aber gerne eine Meldung in der Rollout-Koordination oder zumindest SWDepot-Log ausgeben – weiß aber nicht wie.

    Bei einem Fehler ist es ja kein Problem.

    [Set:Abort5100]
    ErrorLogMsg 5100 Der Computer des Benutzers erfüllt die Systemanforderungen nicht.
    Abort

    Haben Sie evtl. eine Lösung für mich.

    Danke Max

    • Hallo Max,

      ab Empirum V17 ist es möglich dem EXIT Befehl (Exit []) einen Text mitzugeben, was sonst nur bei Abort und AbortSilent der Fall war.
      Somit könntest Du es mit
      Exit „Installation beendet mit Errorlevel: %ErrorLevel%“
      versuchen.
      Da ich es bis dato selbst noch nicht getestet habe, kann es auch sein, dass du die Hochkommas weglassen kannst.
      Geht das in die Richtung, die Du wissen wolltest?

      Grüße
      Jochen

  4. Hallo Jochen,
    ich bekomme bei einer Paketverteilung nachfolgende Fehlermeldung:

    „Die Syntax für die Datei ‚C:EmpirumAgentPackagesHerstellerNameVersionneoInstallSetup.inf‘ hat sich ab Version 4.0 leicht geändert. Bitte nehmen Sie die entsprechenden Änderungen vor. Hinweise hierzu finden Sie in der Hilfe zu dieser Fehlermeldung.“

    Hat hier jemand einen Tipp? Ich weiß auch nicht wo die Hinweise zur Fehlermeldung stehen sollen.

    • Hallo Harald,

      welchen Wert haben Sie unter Version in der [Setup] Sektion?
      Diese Version bezieht sich auf die Setup.exe und ihre Fähigkeiten/Befehle in der Setup.inf.
      In der [Setup] Sektion bei Version gehen Werte wie: 6.5/10.5/14.2.
      Schauen Sie ggf. in die Vorlagen, die von der Matrix42 mitgeliefert werden.

      Vielleicht haben Sie diese Version mit der Ihres Paketes verwechselt?
      https://forum.matrix42.com/viewtopic.php?t=6432

      Viele Grüße
      Jochen

  5. Hey Jochen,

    wir benutzen die Version 15. Ich habe das Paket auf mehrere Clients ausgerollt, jedoch nur bei einigen den Fehler 2 zurückbekommen. Weißt Du, woran das liegen könnte?
    Was kann ich denn tun, um das Paket noch auf die Clients zu bringen?

    Vielen Dank und viele Grüße
    Andreas

    • Hallo Andreas,

      Fehler 2 = Datei nicht gefunden.
      Kannst Du im ErrorLog sehen, welche Datei er nicht gefunden hat zur Ausführung?
      Ansonsten kannst Du den Agenten auch per ExpertePush Agent auf die Systeme bringen.

      Verstehe ich es richtig, dass ihr noch Empirum v15 nutzt?

      Grüße
      Jochen

      • Hallo Jochen,

        danke für deine Antwort. Ja, wir benutzen noch Version 15.
        Es ist eine einfache Batch, die wir ausrollen und ausführen wollten. Diese wird laut Errorlog nicht gefunden. Alle Geräte haben das selbe Paket erhalten, die Fehlermeldung ist jedoch nur auf einigen erschienen.

        Vielen Dank nochmal und viele Grüße
        Andreas

      • Hallo Andreas,
        das ist Pauschal schlecht zu erklären, warum der Fehler nur auf einigen wenigen auftaucht.
        Dazu müsste man die Variablen prüfen, die für den Aufruf genutzt werden und prüfen, ob der Client die auszuführende Datei findet.
        Dazu könntest Du ggf. ein If DoesFileExist („Pfad/Datei“) == „0“ Then „DateiNichtGefunden“ EndIf vor die Abfrage bauen.

        Wichtig: Du weißt, dass Empirum v15 aus dem Support ist!

        Grüße
        Jochen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert