# 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).