Deployment

Exitcodes und Reboot-Handling betrieblich richtig einordnen.

Rueckgabecodes sind nicht nur Technik, sondern Betriebslogik. Entscheidend ist, ob ein Installer wirklich fehlgeschlagen ist, erfolgreich mit Neustart endet oder nur ein Wrapper etwas verschleiert.

0 ist nicht alles

Ein Exitcode von 0 kann trotzdem inhaltlich unvollstaendig sein, wenn Child-Prozesse spaeter scheitern oder wichtige Nacharbeiten fehlen.

3010 sauber behandeln

3010 ist in vielen Faellen Erfolg mit Neustart. Das muss in PSADT, MEM oder MECM bewusst in den Betriebsablauf uebersetzt werden.

Uninstall nicht vergessen

Rueckgabecodes muessen auch fuer Deinstallation und Reinstall sauber bewertet werden.

Uninstall-Artikel lesen
PowerShell
$allowedExitCodes = @(0, 3010, 1641)
$proc = Start-Process -FilePath '.\setup.exe' -ArgumentList '/silent' -Wait -PassThru

if ($proc.ExitCode -notin $allowedExitCodes) {
  throw "Unerwarteter ExitCode: $($proc.ExitCode)"
}

if ($proc.ExitCode -in @(3010, 1641)) {
  Write-Host 'Installation erfolgreich, aber Neustart erforderlich.'
}

Typische Betriebsfaelle

  • Install erfolgreich, Reboot offen
  • Wrapper liefert 0, Child-Prozess scheitert
  • Herstellercode ist dokumentiert, aber im eigenen Tool nicht gemappt
  • Uninstall gibt andere Erfolgscodes als Install zurueck

Freigabe ohne Spekulation

Ein Exitcode-Mapping ist erst dann belastbar, wenn Install, Reboot, Detection und Uninstall in einer echten Testmatrix durchlaufen wurden.

Testmatrix lesen