0 ist nicht alles
Ein Exitcode von 0 kann trotzdem inhaltlich unvollstaendig sein, wenn Child-Prozesse spaeter scheitern oder wichtige Nacharbeiten fehlen.
Deployment
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 allesEin Exitcode von 0 kann trotzdem inhaltlich unvollstaendig sein, wenn Child-Prozesse spaeter scheitern oder wichtige Nacharbeiten fehlen.
3010 sauber behandeln3010 ist in vielen Faellen Erfolg mit Neustart. Das muss in PSADT, MEM oder MECM bewusst in den Betriebsablauf uebersetzt werden.
Wrapper koennen Fehlercodes schlucken, umbiegen oder pauschal zu 0 machen.
Rueckgabecodes muessen auch fuer Deinstallation und Reinstall sauber bewertet werden.
Uninstall-Artikel lesen$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.'
}0, Child-Prozess scheitertEin Exitcode-Mapping ist erst dann belastbar, wenn Install, Reboot, Detection und Uninstall in einer echten Testmatrix durchlaufen wurden.
Testmatrix lesen