Initial commit: BizTalk IIS inventory with DOCX reporting
Build und Test / build (push) Has been cancelled
Build und Test / build (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
# 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_archive`
|
||||
- `heat_bankdata`
|
||||
- `heat_bbill`
|
||||
- `heat_caccount`
|
||||
- `heat_invoice`
|
||||
- `heat_meterchange`
|
||||
- `heat_meterlist`
|
||||
- `heat_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:
|
||||
|
||||
```cmd
|
||||
run-inventory.cmd ACC C:\IIS-Doku\ACC
|
||||
```
|
||||
|
||||
PROD:
|
||||
|
||||
```cmd
|
||||
run-inventory.cmd PROD C:\IIS-Doku\PROD
|
||||
```
|
||||
|
||||
Die Ausgabe besteht pro Lauf aus:
|
||||
|
||||
```text
|
||||
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 `PATH` oder über `vswhere.exe` auffindbar
|
||||
|
||||
Build und Tests:
|
||||
|
||||
```cmd
|
||||
scripts\build-release.cmd
|
||||
```
|
||||
|
||||
Deployment-Paket:
|
||||
|
||||
```cmd
|
||||
scripts\package-release.cmd
|
||||
```
|
||||
|
||||
Ergebnis:
|
||||
|
||||
```text
|
||||
artifacts\BizTalkIisEnvironmentInventory-deploy\
|
||||
```
|
||||
|
||||
## Direkter Aufruf
|
||||
|
||||
```cmd
|
||||
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
|
||||
|
||||
```text
|
||||
.
|
||||
├── .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](Dokumentation.md) beschrieben.
|
||||
|
||||
## Base64-Transport per certutil
|
||||
|
||||
Wenn das Repository als `BizTalkIisEnvironmentInventory-source.zip.txt` geliefert wird:
|
||||
|
||||
```cmd
|
||||
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.
|
||||
Reference in New Issue
Block a user