Reduce catalog to Phase 1 ACC/PROD view
This commit is contained in:
@@ -1,82 +1,61 @@
|
||||
# BEW BizTalk Application Catalog
|
||||
# BEW BizTalk Application Catalog – Phase 1
|
||||
|
||||
`BEW BizTalk Application Catalog` inventarisiert die auf einem BizTalk Server 2020 installierten Anwendungen und erzeugt eine kompakte, filterbare Microsoft-Excel-Arbeitsmappe (`.xlsx`).
|
||||
Das Tool erzeugt nur die für die Phase-1-Excel-Sicht benötigten Daten:
|
||||
|
||||
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 |
|
||||
| Spalte | 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 |
|
||||
| `BizTalk-Anwendung` | Name der BizTalk-Anwendung |
|
||||
| `Umgebung` | `ACC + PRD`, `nur ACC` oder `nur PRD` |
|
||||
| `Adapter-Typ` | Adapter mit Anzahl, zum Beispiel `FILE (2x) / SFTP (1x)` |
|
||||
| `Anzahl Endpunkte` | Summe der Endpunkte in den berücksichtigten Umgebungen |
|
||||
| `BizTalk-Anwendung in ACC` | `✓` oder `–` |
|
||||
| `BizTalk-Anwendung in PRD` | `✓` oder `–` |
|
||||
| `Hinweis` | Kennzeichnung einer nur einseitig vorhandenen Anwendung |
|
||||
|
||||
Alle Detailblätter besitzen Filter, fixierte Kopfzeilen und angepasste Spaltenbreiten.
|
||||
Die Arbeitsmappe enthält exakt ein Blatt namens `Phase 1`. Es werden keine weiteren Übersichts-, Artefakt-, Port-, Host-, Abdeckungs- oder Findings-Blätter erzeugt.
|
||||
|
||||
## Kernparameter je Anwendung
|
||||
## Ablauf
|
||||
|
||||
Das Blatt `Anwendungen` enthält unter anderem:
|
||||
ACC und PROD sind getrennte BizTalk-Umgebungen. Deshalb arbeitet das Tool in zwei Schritten:
|
||||
|
||||
- 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
|
||||
1. Auf dem lokalen ACC-BizTalk-Server wird ein ACC-JSON-Snapshot erzeugt.
|
||||
2. Auf dem lokalen PROD-BizTalk-Server wird ein PROD-JSON-Snapshot erzeugt.
|
||||
3. Beide JSON-Dateien werden mit demselben Tool zur gemeinsamen Excel-Sicht zusammengeführt.
|
||||
|
||||
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.
|
||||
Jeder lokale Lauf erzeugt zusätzlich eine einblättrige Excel-Sicht für die jeweilige Umgebung. Erst der Merge liefert den belastbaren ACC/PRD-Vergleich wie in der Zielansicht.
|
||||
|
||||
## Sicherheits- und Betriebsprinzip
|
||||
## Erfasste Daten
|
||||
|
||||
- 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
|
||||
Das Tool liest ausschließlich:
|
||||
|
||||
Die XLSX- und Logdatei enthält interne Server-, Anwendungs-, Host- und Endpunktinformationen und muss entsprechend geschützt abgelegt werden.
|
||||
- `MSBTS_Application` für die vollständige Anwendungsliste
|
||||
- `MSBTS_SendPort` für primäre und gegebenenfalls sekundäre Send-Endpunkte
|
||||
- `MSBTS_ReceivePort` nur zur Zuordnung einer Receive Location zur Anwendung
|
||||
- `MSBTS_ReceiveLocation` für Receive-Endpunkte
|
||||
|
||||
## Voraussetzungen auf ACC und PROD
|
||||
Ein Endpunkt ist:
|
||||
|
||||
- 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
|
||||
- die primäre Transportkonfiguration eines Send Ports,
|
||||
- eine konfigurierte sekundäre Transportkonfiguration eines Send Ports oder
|
||||
- eine Receive Location.
|
||||
|
||||
Receive Ports selbst sind Container und werden nicht als Endpunkt gezählt. Anwendungen ohne Endpunkt bleiben mit `0` und Adapter-Typ `–` in der Sicht enthalten.
|
||||
|
||||
Nicht erfasst werden insbesondere Adressen, Credentials, Beschreibungen, Status, Hosts, Handler, Orchestrierungen, Schemas, Maps, Pipelines, Assemblies, Betriebssystem- oder SQL-Daten.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- BizTalk Server 2020 auf Windows Server 2019
|
||||
- lokale Ausführung auf dem jeweiligen BizTalk-Server
|
||||
- .NET Framework 4.7.2 oder höher
|
||||
- funktionierender lokaler BizTalk-WMI-Provider
|
||||
- Leserechte auf `root\MicrosoftBizTalkServer`
|
||||
- administrative `cmd.exe` empfohlen
|
||||
|
||||
Microsoft Office ist ausdrücklich keine Voraussetzung.
|
||||
Microsoft Excel, Microsoft Office, PowerShell, Internetzugriff, NuGet und ein .NET SDK werden auf dem Zielserver nicht benötigt.
|
||||
|
||||
## Schnellstart
|
||||
## Lokalen Snapshot erzeugen
|
||||
|
||||
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:
|
||||
Zuerst den Self-Test ausführen:
|
||||
|
||||
```cmd
|
||||
BizTalkApplicationCatalog.exe --self-test
|
||||
@@ -94,117 +73,95 @@ PROD:
|
||||
run-inventory.cmd PROD C:\BizTalk-Doku\PROD
|
||||
```
|
||||
|
||||
Ergebnis eines erfolgreichen lokalen Laufs:
|
||||
|
||||
```text
|
||||
Phase1-BizTalk-Anwendungskatalog-ACC-SERVER-20260727-150000.json
|
||||
Phase1-BizTalk-Anwendungskatalog-ACC-SERVER-20260727-150000.xlsx
|
||||
Phase1-BizTalk-Anwendungskatalog-ACC-SERVER-20260727-150000.log
|
||||
```
|
||||
|
||||
Nur JSON-Dateien eines Laufs mit Exitcode `0` dürfen zusammengeführt werden. Ein unvollständiger Snapshot trägt `IsComplete: false` und wird vom Merge abgelehnt.
|
||||
|
||||
## ACC und PROD zusammenführen
|
||||
|
||||
Beide JSON-Dateien in einen gemeinsamen, geschützten Ordner kopieren und ausführen:
|
||||
|
||||
```cmd
|
||||
run-merge.cmd ^
|
||||
C:\BizTalk-Doku\ACC\Phase1-BizTalk-Anwendungskatalog-ACC-SERVER-20260727-150000.json ^
|
||||
C:\BizTalk-Doku\PROD\Phase1-BizTalk-Anwendungskatalog-PROD-SERVER-20260727-151500.json ^
|
||||
C:\BizTalk-Doku\ACC-PROD
|
||||
```
|
||||
|
||||
Direkter Aufruf:
|
||||
|
||||
```cmd
|
||||
BizTalkApplicationCatalog.exe ^
|
||||
--environment ACC ^
|
||||
--output C:\BizTalk-Doku\ACC
|
||||
--merge ^
|
||||
--acc-json C:\BizTalk-Doku\ACC\ACC.json ^
|
||||
--prod-json C:\BizTalk-Doku\PROD\PROD.json ^
|
||||
--output C:\BizTalk-Doku\ACC-PROD
|
||||
```
|
||||
|
||||
## Konsolenausgabe
|
||||
|
||||
Das Tool zeigt laufend, was es gerade erfasst und wann die Excel-Datei geschrieben wurde:
|
||||
Die gemeinsame Datei heißt beispielsweise:
|
||||
|
||||
```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\...
|
||||
Phase1-BizTalk-Anwendungskatalog-ACC-PROD-20260727-153000.xlsx
|
||||
```
|
||||
|
||||
## Ausgabedateien
|
||||
Bei identischer Adapterverteilung in ACC und PROD wird sie einmal angezeigt. Bei Abweichungen kennzeichnet die Zelle beide Werte, zum Beispiel:
|
||||
|
||||
```text
|
||||
BizTalk-Anwendungsinventar-ACC-BIZTALKSERVER-20260727-150000.xlsx
|
||||
BizTalk-Anwendungsinventar-ACC-BIZTALKSERVER-20260727-150000.log
|
||||
ACC: FILE (2x) | PRD: FILE (1x) / SFTP (1x)
|
||||
```
|
||||
|
||||
`Anzahl Endpunkte` ist im Merge die Summe aus ACC und PROD.
|
||||
|
||||
## 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 |
|
||||
| `--environment ACC\|PROD` | lokaler Inventarlauf |
|
||||
| `--output PFAD` | Zielordner |
|
||||
| `--merge` | ACC- und PROD-Snapshot zusammenführen |
|
||||
| `--acc-json PFAD` | vollständiger ACC-Snapshot |
|
||||
| `--prod-json PFAD` | vollständiger PROD-Snapshot |
|
||||
| `--self-test` | JSON-, Merge- und XLSX-Test ohne BizTalk |
|
||||
| `--help` | Hilfe |
|
||||
|
||||
| Exitcode | Bedeutung |
|
||||
| ---: | --- |
|
||||
| `0` | vollständige Anwendungserfassung und XLSX erfolgreich |
|
||||
| `1` | XLSX erzeugt, aber ein Pflichtabschnitt war unvollständig |
|
||||
| `2` | Aufruf-, Ausgabe- oder Berichtserzeugungsfehler |
|
||||
| `0` | Snapshot beziehungsweise Merge vollständig erzeugt |
|
||||
| `1` | lokaler Pflichtabschnitt unvollständig; JSON nicht mergen |
|
||||
| `2` | Aufruf-, Datei-, JSON- oder XLSX-Fehler |
|
||||
|
||||
## Build mit Visual Studio 2019
|
||||
## Build
|
||||
|
||||
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`.
|
||||
Die Solution verwendet das klassische MSBuild-Projektformat für Visual Studio 2019 / MSBuild 16.x, .NET Framework 4.7.2 und C# 7.3. Es gibt keine NuGet-Abhängigkeiten.
|
||||
|
||||
```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:
|
||||
## Quellpaket als certutil-Text
|
||||
|
||||
```cmd
|
||||
scripts\package-source.cmd
|
||||
```
|
||||
|
||||
Erzeugt werden:
|
||||
Erzeugt:
|
||||
|
||||
```text
|
||||
artifacts\BizTalkApplicationCatalog-source.zip
|
||||
artifacts\BizTalkApplicationCatalog-source.zip.txt
|
||||
```
|
||||
|
||||
Dekodieren unter Windows:
|
||||
Dekodieren:
|
||||
|
||||
```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).
|
||||
Technische Details stehen in [Dokumentation.md](Dokumentation.md).
|
||||
|
||||
Reference in New Issue
Block a user