5.1 KiB
BizTalk Platform Management Tool
WinForms tool for controlled Microsoft BizTalk Server 2020 platform operations during maintenance windows. The tool captures runtime snapshots, creates shutdown and restore plans, executes those plans in a safe order, and writes diff reports for validation.
Current State
- Application: C# WinForms
- Target framework: .NET Framework 4.6.1
- Solution:
BizTalkPlatformManagementTool.sln - Project:
src/BizTalkPlatformManagementTool/BizTalkPlatformManagementTool.csproj - Primary namespace and assembly:
BizTalkPlatformManagementTool - Legacy PowerShell archive:
archive/powershell/BizTalkPlatformManagementTool.ps1
Features
- Snapshot before and after downtime as JSON, CSV and HTML
- Diff between
before.jsonandafter.json - Controlled shutdown from the current runtime state
- Controlled restore from
before.json - Host instance handling for the selected BizTalk server
- Dry-run mode enabled by default
- WMI access through
root\MicrosoftBizTalkServer - Startup check for administrator rights
- Detailed operation logging in the GUI and daily rolling log files under ProgramData
- Environment status indicator based on host instance state
- Clear and Close actions in the main toolbar
- No compile-time dependency on BizTalk ExplorerOM assemblies
- Transactional Windows installer/updater with SHA-256 payload validation and rollback
- WMI-free runtime self-test plus automated regression test executable
Safe Usage
- Start the app with Run as administrator on a BizTalk server or a management host with WMI access.
- Keep Dry run enabled.
- Click Diagnose to verify WMI access.
- Click Snapshot Before.
- Click Shutdown and review
shutdown-plan.json. - Disable Dry run only when the plan is correct.
- After maintenance, click Restore using the saved
before.json. - Click Snapshot After and Compare.
The environment indicator shows Started, Stopped, Partial or Unknown from the most recent snapshot. Clear removes the visible status and operation log grids; it does not delete files.
The application requests administrator rights through its UAC manifest and checks them again during startup. Only one GUI instance can run per Windows session.
Before a real shutdown or restore, the exact fresh plan is saved and a second dialog shows its executable step count, target server and plan path. Restore is rejected when the snapshot server does not match the selected target (short name and FQDN of the same host are accepted).
Operation Order
Shutdown:
- Disable receive locations that were enabled.
- Stop orchestrations that were started.
- Stop send ports that were started.
- Stop host instances that were started on the selected server.
Restore:
- Start host instances that were previously started.
- Restore send ports to Started, Stopped or Bound.
- Restore orchestrations where safe.
- Restore receive locations last.
Orchestrations that were Bound are deliberately left unchanged during restore to avoid accidentally making them Unbound.
Outputs
before.json,after.jsonshutdown-plan.json,restore-plan.jsonshutdown-after.json,restore-after.jsondiff.json,diff.csv,diff.html- Snapshot sidecars:
*.csv,*.hosts.csv,*.html - Runtime logs under
%ProgramData%\BizTalkPlatformManagementTool\Logs
Log files are retained for the current day plus the previous four days. Older BizTalkPlatformManagementTool-*.log files are removed on startup. If ProgramData is unexpectedly unavailable, logging falls back to the executable directory.
Troubleshooting
The Operation Log shows the WMI class, key property, key value and method for real shutdown and restore steps. WMI objects are resolved with a broad SELECT * FROM <class> query and a client-side key filter so names containing special characters do not break the WMI query parser.
Snapshot and plan JSON files are written as UTF-8 without BOM. Loading is tolerant of existing files that contain a UTF-8 BOM or a visible BOM marker from previous encoding conversions.
JSON snapshots and plans are written through a same-directory temporary file and atomic replacement. Snapshot comparison keys artifacts by application plus name, preventing collisions between equal artifact names in different applications. CSV fields that could be interpreted as spreadsheet formulas are neutralized.
Build
Open BizTalkPlatformManagementTool.sln in Visual Studio on Windows with the .NET Framework 4.6.1 Developer Pack installed, then build the Release|Any CPU configuration.
The app targets .NET Framework 4.6.1 for compatibility with customer environments that do not have newer .NET Framework developer packs installed.
Use scripts\test-release.cmd for the build and regression suite and scripts\package-release.cmd for the tested installer ZIP, Certutil-compatible Base64 TXT and SHA-256 file. See Installation for decoding and update/rollback details.