5.5 KiB
BizTalk IIS Environment Inventory
BizTalk IIS Environment Inventory erzeugt pro BizTalk-2020-Umgebung eine Microsoft-Word-Dokumentation (.docx) des lokalen IIS- und BizTalk-Servers. Das Tool ist für die BEW-Umgebungen ACC und PROD vorgesehen und funktioniert ohne PowerShell.
Es ist eine C#-Konsolenanwendung für .NET Framework 4.7.2. Auf dem Zielserver werden weder Microsoft Word/Office noch BizTalk-SDK-DLLs oder Microsoft.Web.Administration benötigt. Die Anwendung erzeugt das DOCX direkt als standardkonformes Office-Open-XML-Paket und liest lokale Windows-/IIS-Daten, WMI, Registry, Zertifikatsspeicher und NTFS-ACLs ausschließlich lesend.
Erfasster Umfang
- installierte IIS-/WAS-/HTTP-/MSMQ- und .NET-Serverrollen
applicationHost.config, globale IIS-Sections und Konfigurationsprovider- Application Pools inklusive effektiver Identitäten
- Sites, Bindings, Anwendungen und virtuelle Verzeichnisse
- Webinhaltsmanifest mit Pfad, Größe und Änderungszeit; SHA-256 optional
- NTFS-Berechtigungen der Web-Stammverzeichnisse
- Zertifikate aus
LocalMachine\My, IIS-Zuordnung, Ablauf und Enhanced Key Usage - Private-Key-Metadaten, Exportpolicy, Provider, Container und ACL
- relevante Windows-Dienste und deren Dienstkonten
- lokale User Rights und Security-/Audit-Policy über
secedit.exe - BizTalk-Installation, Produkt-/Dateiversionen und zentrale WMI-Klassen
- Fehler, fehlende Rechte und unvollständige Daten als sichtbare Findings
Der in der Aufgabe genannte Scope wird standardmäßig geprüft:
heat_archiveheat_bankdataheat_bbillheat_caccountheat_invoiceheat_meterchangeheat_meterlistheat_meterreading
Fehlt eine erwartete Anwendung, erscheint ein Hinweis im Bericht. Die Liste kann in BizTalkIisEnvironmentInventory.exe.config über ExpectedApplications angepasst oder durch einen leeren Wert deaktiviert werden.
Sicherheitsprinzip
Das Word-Dokument enthält absichtlich:
- keine Kennwörter
- keine Connection Strings oder Tokens
- keine entschlüsselbaren IIS-Konfigurationsblobs
- keine privaten Schlüssel/PFX-Dateien
Für die Migration werden stattdessen Provider, Containername, Fingerprint, Exportpolicy und ACL dokumentiert. Zertifikate und IIS-Verschlüsselungsschlüssel müssen anschließend über den freigegebenen betrieblichen Schlüsseltransfer übertragen werden. Der Report selbst ist kein Key-Backup.
Schnellstart auf ACC und PROD
Deployment-Ordner auf den jeweiligen BizTalk-Server kopieren und eine administrative cmd.exe öffnen.
ACC:
run-inventory.cmd ACC C:\IIS-Doku\ACC
PROD:
run-inventory.cmd PROD C:\IIS-Doku\PROD
Die Ausgabe besteht pro Lauf aus:
IIS-Dokumentation-ACC-SERVERNAME-20260724-143000.docx
IIS-Dokumentation-ACC-SERVERNAME-20260724-143000.log
Das DOCX ist vollständig offline und kann anschließend auf einem Arbeitsplatz mit Microsoft Word, LibreOffice oder einer anderen OOXML-kompatiblen Anwendung geöffnet, durchsucht, gedruckt oder als PDF gespeichert werden. Auf dem BizTalk-Server wird keine dieser Anwendungen benötigt. Während des Laufs zeigt die Konsole jeden Collector, Laufzeit, Fehler und den finalen Dateipfad.
Voraussetzungen
Zielserver:
- Windows Server mit IIS/BizTalk Server 2020
- .NET Framework 4.7.2 oder neueres 4.x
- lokale Ausführung auf dem zu dokumentierenden Server
- administrative Eingabeaufforderung empfohlen
Build-Host:
- Visual Studio 2022 Build Tools oder Visual Studio 2022
- .NET Framework 4.7.2 Developer Pack
- MSBuild im
PATHoder übervswhere.exeauffindbar
Build und Tests:
scripts\build-release.cmd
Deployment-Paket:
scripts\package-release.cmd
Ergebnis:
artifacts\BizTalkIisEnvironmentInventory-deploy\
Direkter Aufruf
BizTalkIisEnvironmentInventory.exe --environment ACC --output C:\IIS-Doku\ACC
Optionen:
| Option | Bedeutung |
|---|---|
--environment NAME |
Umgebung, beispielsweise ACC oder PROD. |
--output PFAD |
Ausgabeordner für DOCX und Log. |
--include-file-hashes |
Berechnet SHA-256 für manifestierte Webdateien; erhöht Laufzeit und I/O. |
--skip-content-manifest |
Erfasst Pfade und ACLs, aber keine rekursive Dateiliste. |
--iis-config DATEI |
Liest eine alternative applicationHost.config, vor allem für Offline-Tests. |
--self-test |
Prüft Parser, Secret-Bereinigung und DOCX-Paketstruktur ohne Serverzugriffe. |
Exitcodes:
| Code | Bedeutung |
|---|---|
0 |
Alle Collector-Abschnitte erfolgreich. |
1 |
Bericht wurde erzeugt, mindestens ein Abschnitt war unvollständig. |
2 |
Fataler Fehler; Aufruf, Ausgabeordner oder Berichtserzeugung prüfen. |
Repository-Struktur
.
├── .gitea/workflows/build.yml
├── deployment/run-inventory.cmd
├── scripts/
│ ├── build-release.cmd
│ └── package-release.cmd
├── src/BizTalkIisEnvironmentInventory/
├── tests/BizTalkIisEnvironmentInventory.Tests/
├── BizTalkIisEnvironmentInventory.sln
├── Dokumentation.md
└── Readme.md
Die technische Architektur, Berechtigungen, Datenquellen und Betriebsgrenzen sind in Dokumentation.md beschrieben.
Base64-Transport per certutil
Wenn das Repository als BizTalkIisEnvironmentInventory-source.zip.txt geliefert wird:
certutil.exe -decode BizTalkIisEnvironmentInventory-source.zip.txt BizTalkIisEnvironmentInventory-source.zip
Danach die ZIP-Datei mit Windows Explorer oder tar.exe entpacken. Der SHA-256-Wert der ZIP-Datei wird bei der Übergabe separat genannt.