4.3 KiB
Installer-Stabilitätsanalyse vom 11.08.2026
Ausgangslage
Vor Version 2.1.0 enthielt das Repository keinen Installer für die C#-Anwendung. Die Datei release/BizTalkPlatformManagementTool.ps1 ist eine ältere PowerShell-Implementierung des Tools und kein Installationsprogramm. Frühere release/*.zip.txt waren Base64-Quellpakete ohne Update-, Abnahme- oder Rollbacklogik.
Implementierte Sicherheitsgrenzen
- Vollständiges internes Payload-Manifest mit Dateipfad, Länge und SHA-256.
- Ablehnung fehlender, veränderter, doppelter, zusätzlicher oder aus dem Payload-Verzeichnis ausbrechender Pfade.
- Keine Mutation vor vollständig bestandenem Manifest- und Staging-Self-Test.
- Update nur bei geschlossener produktiver Toolinstanz.
- Staging und Backup als eindeutige Geschwister des Installationsverzeichnisses auf demselben Volume.
- Zweiter Self-Test nach Aktivierung und vor Windows-Registrierung.
- Automatisches Datei- und Registrierungsrollback bei Fehlern.
- Dauerhaftes phasenbezogenes Installerlog unter ProgramData.
- Temp-Fallback, falls das primäre Installerlog nicht angelegt werden kann.
- Stabile Fehlercodes, vollständige Self-Test-Ausgaben, Exception-Ketten, HRESULTs und einzeln protokollierte Rollbackschritte.
- Explizite Unterscheidung zwischen Fehlern vor der ersten Mutation und tatsächlich ausgeführtem Rollback.
- Rücklesende Verifikation von Verknüpfungen, Uninstaller und zentralen Registrywerten.
- Deinstallation über Windows-Uninstall-Eintrag; Diagnoseprotokolle bleiben erhalten.
- Äußere ZIP-Prüfsumme und Certutil-kompatible Base64-TXT für kontrollierte Übertragung.
Lokal verifiziert
- Release-Build aller Projekte mit Mono MSBuild.
- Vierzehn Regressionstests einschließlich manipulierter/zusätzlicher/ausbrechender Payload-Pfade, Staging-Abbruch ohne Mutation, erzwungenem Fehler des zweiten Self-Tests mit Wiederherstellung der Vorversion, Deinstallation über ein Quarantäneverzeichnis, Diagnosekontext, Log-Fallback und Fehlerisolierung der UI-Ausgabe.
- WMI-freier Self-Test der produktiven EXE.
- Erstellung des Installationsordners, ZIPs, Base64-TXTs und der SHA-256-Datei.
- Rückdekodierung der Base64-TXT und Bytevergleich mit dem ZIP.
- Erneute Prüfung des internen Manifests nach der Paketierung.
Zweite Prüfung nach den Deployment-Erfahrungen des Schwesterprojekts
Die erneute Prüfung orientierte sich an den dokumentierten Schwierigkeiten aus biztalk-checkmk-pulse. Zwei Erkenntnisse wurden bewusst übertragen:
- Ein Fehler vor der ersten Änderung darf nicht als erfolgreicher Rollback beschrieben werden. Der Installer meldet daher eindeutig, dass kein Rollback erforderlich war und protokolliert
mutation_started=false. - Technische Installationsfähigkeit und fachlicher Laufzeitzustand sind getrennte Abnahmen. Der WMI-freie Self-Test entscheidet über Aktivierung/Rollback; BizTalk-WMI, Berechtigungen und ein möglicher
Unknown-Zustand werden erst danach mit Diagnose und Dry-run bewertet.
Zusätzlich wurden die Informationen erfasst, die bei einem schwer reproduzierbaren Windows-Deployment typischerweise fehlen: genaue Setup-/Dateiversionen und Hashes, vollständiges stdout/stderr, dezimaler und hexadezimaler Exitcode, Timeout-/Kill-Ergebnis, Identität/Elevation, Exception-Kette/HRESULT/Stacktrace und jeder Rollbackschritt. Der Self-Test wartet nach einem Timeout höchstens weitere fünf Sekunden auf Prozessende und Ausgabekanäle; ein nicht beendbarer Prozess kann das Setup somit nicht unbegrenzt blockieren.
Noch auf Windows/BizTalk zu validieren
Die lokale Linux-/Mono-Verifikation kann folgende Windows-spezifische Punkte nicht abschließend beweisen:
- UAC-Anforderung beider EXE-Dateien auf Windows Server 2019/2022.
- Startmenü- und optionale Desktop-Verknüpfung über Windows Script Host.
- 64-Bit-Uninstall-Eintrag und Aufruf über Apps & Features.
- Updateblockade bei laufender installierter GUI.
- Reales Rollback bei Dateisperren, Virenscannerzugriff oder Registryfehlern.
- ProgramData-Fehler und Temp-Log-Fallback unter realen Windows-ACLs.
- Diagnose und Laufzeitoperationen gegen
root\MicrosoftBizTalkServerauf BizTalk Server 2020.
Bis diese Punkte repräsentativ geprüft sind, ist der Installer lokal automatisiert gehärtet, aber noch nicht als vollständig produktionsvalidiert auf Windows/BizTalk zu bezeichnen.