Initial commit: BizTalk application catalog

This commit is contained in:
2026-07-27 14:46:02 +02:00
commit 2b5b97c869
25 changed files with 3026 additions and 0 deletions
+210
View File
@@ -0,0 +1,210 @@
# BEW BizTalk Application Catalog
`BEW BizTalk Application Catalog` inventarisiert die auf einem BizTalk Server 2020 installierten Anwendungen und erzeugt eine kompakte, filterbare Microsoft-Excel-Arbeitsmappe (`.xlsx`).
Das Tool wird lokal einmal auf dem BizTalk-Server in `ACC` und einmal auf dem BizTalk-Server in `PROD` ausgeführt. Beide Umgebungen bestehen jeweils aus:
- einem BizTalk Server 2020 auf Windows Server 2019
- einem separaten SQL Server für die BizTalk-Datenbanken
Microsoft Excel, Microsoft Office, PowerShell, Internetzugriff und ein .NET SDK werden auf dem Zielserver nicht benötigt.
## Ergebnis
Die erzeugte Arbeitsmappe enthält zehn Tabellenblätter:
| Blatt | Inhalt |
| --- | --- |
| `Übersicht` | Umgebung, Server, BizTalk-/Windows-Metadaten, Gesamtzahlen und Laufstatus |
| `Anwendungen` | vollständige, kompakte Anwendungsliste mit Status, Beschreibung und Artefaktzahlen |
| `Artefakte` | konsolidierte technische Detailansicht |
| `Ports` | Send Ports, Send Port Groups, Receive Ports und Receive Locations |
| `Orchestrierungen` | Orchestrierungen, Status und Hostzuordnung |
| `Schemas-Maps-Pipelines` | Schemas, Maps und Pipelines |
| `Assemblies` | bereitgestellte BizTalk-Assemblies |
| `Hosts-Handler` | Hosts, Hostinstanzen sowie Receive-/Send-Handler |
| `Abdeckung` | Erfolg, Zeilenzahl und mögliche Lücken jeder WMI-Datenquelle |
| `Findings` | Warnungen, Fehler und empfohlene Prüfungen |
Alle Detailblätter besitzen Filter, fixierte Kopfzeilen und angepasste Spaltenbreiten.
## Kernparameter je Anwendung
Das Blatt `Anwendungen` enthält unter anderem:
- Umgebung und ausführenden BizTalk Server
- Anwendungsname, Beschreibung, Status und Standardanwendungskennzeichen
- Gesamtzahl zugeordneter Artefakte
- Anzahl Orchestrierungen
- Anzahl Send Ports und Send Port Groups
- Anzahl Receive Ports und Receive Locations
- Anzahl Assemblies, Schemas, Maps und Pipelines
- erkannte Hosts beziehungsweise Handler
- verwendete Adapter
- expliziten Status der Detailabdeckung
Die vollständige Anwendungsliste stammt aus `MSBTS_Application`. Eine nicht verfügbare optionale Artefaktklasse wird nicht stillschweigend als fachliche Null interpretiert, sondern im Blatt `Abdeckung` ausgewiesen.
## Sicherheits- und Betriebsprinzip
- ausschließlich lokale, lesende WMI- und Registry-Abfragen
- keine Änderungen an Anwendungen, Ports, Hosts oder Runtime-Instanzen
- keine direkte SQL-Abfrage und keine Datenbankänderung
- keine Office-Automation und keine COM-Interop
- zusätzliche Redigierung versehentlich gelieferter Kennwort-/Tokenwerte
- atomare XLSX-Erzeugung über eine temporäre Datei
- Fehler optionaler WMI-Klassen stoppen die übrige Erfassung nicht
- identische Fortschrittsausgabe auf Konsole und in der Logdatei
Die XLSX- und Logdatei enthält interne Server-, Anwendungs-, Host- und Endpunktinformationen und muss entsprechend geschützt abgelegt werden.
## Voraussetzungen auf ACC und PROD
- lokale Ausführung auf dem jeweiligen BizTalk Server 2020
- Windows Server 2019
- administrative `cmd.exe` empfohlen
- Konto mit Leserechten auf `root\MicrosoftBizTalkServer`, regulär ein BizTalk-Administratoren- oder geeignetes Operatorenkonto
- .NET Framework 4.7.2 oder höher
- funktionierender lokaler BizTalk-WMI-Provider
Microsoft Office ist ausdrücklich keine Voraussetzung.
## Schnellstart
1. Deployment-Ordner auf den BizTalk Server kopieren.
2. Administrative `cmd.exe` öffnen.
3. Self-Test ohne BizTalk-Zugriff ausführen.
4. Inventar für die jeweilige Umgebung erzeugen.
Self-Test:
```cmd
BizTalkApplicationCatalog.exe --self-test
```
ACC:
```cmd
run-inventory.cmd ACC C:\BizTalk-Doku\ACC
```
PROD:
```cmd
run-inventory.cmd PROD C:\BizTalk-Doku\PROD
```
Direkter Aufruf:
```cmd
BizTalkApplicationCatalog.exe ^
--environment ACC ^
--output C:\BizTalk-Doku\ACC
```
## Konsolenausgabe
Das Tool zeigt laufend, was es gerade erfasst und wann die Excel-Datei geschrieben wurde:
```text
[INFO] Starte Abschnitt: Anwendungen und Artefakte
[INFO] 34 installierte BizTalk-Anwendung(en) gefunden.
[INFO] Send Port: 87 Datensatz/Datensätze.
[INFO] Erzeuge Microsoft-Excel-Datei: C:\BizTalk-Doku\ACC\...
[INFO] Excel-Datei erfolgreich erzeugt: C:\BizTalk-Doku\ACC\...
```
## Ausgabedateien
```text
BizTalk-Anwendungsinventar-ACC-BIZTALKSERVER-20260727-150000.xlsx
BizTalk-Anwendungsinventar-ACC-BIZTALKSERVER-20260727-150000.log
```
## Optionen und Exitcodes
| Option | Bedeutung |
| --- | --- |
| `--environment NAME` | Umgebung, regulär `ACC` oder `PROD` |
| `--output PFAD` | Zielordner für XLSX und Log |
| `--management-server NAME` | optionaler Management-SQL-Server-Hinweis |
| `--management-database NAME` | optionale Management-Datenbank; Fallback `BizTalkMgmtDb` |
| `--self-test` | prüft XLSX-Struktur, Tabellen und Secret-Redaktion |
| `--help` | zeigt die Hilfe |
| Exitcode | Bedeutung |
| ---: | --- |
| `0` | vollständige Anwendungserfassung und XLSX erfolgreich |
| `1` | XLSX erzeugt, aber ein Pflichtabschnitt war unvollständig |
| `2` | Aufruf-, Ausgabe- oder Berichtserzeugungsfehler |
## Build mit Visual Studio 2019
Die Solution vermeidet bewusst den beim früheren IIS Inventory aufgetretenen .NET-SDK-/MSBuild-Konflikt:
| Komponente | Vorgabe |
| --- | --- |
| Ziel | .NET Framework 4.7.2 |
| Sprache | C# 7.3 |
| Solution | Visual Studio 2019, Formatversion 16 |
| Projektformat | klassisches MSBuild mit `ToolsVersion="15.0"` |
| MSBuild | 16.x, einschließlich 16.11 |
| NuGet | keine Pakete und kein Restore |
| .NET SDK / `global.json` | nicht erforderlich |
Voraussetzung auf dem Buildrechner ist das `.NET Framework 4.7.2 Developer/Targeting Pack`.
```cmd
scripts\build-release.cmd
scripts\package-release.cmd
```
Das Deployment liegt anschließend unter:
```text
artifacts\BizTalkApplicationCatalog-deploy\
```
## Quellpaket und Base64-Text
Für eine dateibasierte Übergabe:
```cmd
scripts\package-source.cmd
```
Erzeugt werden:
```text
artifacts\BizTalkApplicationCatalog-source.zip
artifacts\BizTalkApplicationCatalog-source.zip.txt
```
Dekodieren unter Windows:
```cmd
certutil -decode BizTalkApplicationCatalog-source.zip.txt BizTalkApplicationCatalog-source.zip
```
## Gitea
Das Repository enthält `.gitea/workflows/build.yml`. Ein Windows-Runner mit Visual Studio 2019 Build Tools und .NET Framework 4.7.2 Developer Pack baut die Solution, führt Tests und Self-Test aus und stellt den Deployment-Ordner als Artefakt bereit.
## Troubleshooting
### Solution lässt sich in VS 2019 nicht öffnen
Prüfen, dass wirklich diese klassische Solution geöffnet wird und das .NET Framework 4.7.2 Developer Pack installiert ist. Das Repository enthält weder SDK-Style-Projekte noch `global.json` oder `PackageReference`.
### Keine Anwendungen
- Tool lokal auf dem BizTalk Server ausführen
- Konto und WMI-Leserechte prüfen
- Namespace `root\MicrosoftBizTalkServer` prüfen
- BizTalk Administration Console auf demselben Konto testen
### Einzelne Zählwerte sind 0
Zuerst das Blatt `Abdeckung` prüfen. Nur bei Status `Vollständig` ist die Null durch eine erfolgreich gelesene WMI-Klasse belegt. Bei `Nicht verfügbar` oder `Begrenzt` muss die Ursache geprüft werden.
Weitere technische Details stehen in [Dokumentation.md](Dokumentation.md).