Safe, fast MECM application and software update group deployment with pre-execution validation, safety guardrails, and immutable audit logging.
- Single-pane deployment workflow - Search or enter application/SUG, select collection, distribute to DP groups, and deploy
- Application + SUG support - Deploy applications or software update groups from the same interface
- Search dialogs - Browse buttons for Application and Collection fields open search dialogs with filtered DataGridView results
- DP group distribution - CheckedListBox of all DP groups, distribute content to selected groups before deployment
- 5-check validation engine - Application/SUG exists, content distributed, collection valid, collection safe (blocks built-in system collections), no duplicate deployment
- Safety guardrails - All
SMS000*built-in collections blocked, deploy button disabled until validation passes, confirmation dialog before execution - Time basis - Choose UTC or Client Local Time for Available/Deadline scheduling (both App and SUG)
- SUG download settings - Allow download from default site boundary group, Microsoft Update, and post-reboot full scan (enabled by default)
- Metered connection handling - Auto-checked for Required deployments (app and SUG)
- Deployment templates - Predefined and user-saved configs, Save Template button in GUI
- Immutable audit log - JSONL format (one JSON object per line), append-only, records every deployment attempt (success and failure)
- Export - CSV and HTML history reports
- Dark mode - Full theme support with 16 color variables
- PowerShell 5.1
- .NET Framework 4.8+
- Configuration Manager console installed
- CM admin permissions for application deployment
- Launch:
powershell -ExecutionPolicy Bypass -File start-deploymenthelper.ps1 - File > Preferences: Set Site Code and SMS Provider
- Click Connect to establish CM connection
- Enter application name and collection name
- Click Validate to run the 5-check validation engine
- If all checks pass, click Deploy
| Setting | Description |
|---|---|
| Dark Mode | Toggle dark/light theme (requires restart) |
| Site Code | 3-character MECM site code |
| SMS Provider | SMS Provider server hostname |
| Deployment Log Path | Custom path for JSONL audit log (default: local Logs\ folder) |
deploymenthelper/
start-deploymenthelper.ps1 Main GUI application
Module/
DeploymentHelperCommon.psd1 Module manifest (20 functions)
DeploymentHelperCommon.psm1 Core module
Templates/
WorkstationPilot.json Deployment template
WorkstationProduction.json
ServerPilot.json
ServerProduction.json
Logs/ Session logs + deployment log
Reports/ CSV/HTML exports
Templates are JSON files in the Templates\ folder:
{
"Name": "Workstation Pilot",
"DeployPurpose": "Available",
"UserNotification": "DisplayAll",
"TimeBasedOn": "LocalTime",
"OverrideServiceWindow": false,
"RebootOutsideServiceWindow": false,
"AllowMeteredConnection": false,
"AllowBoundaryFallback": true,
"AllowMicrosoftUpdate": false,
"RequirePostRebootFullScan": true,
"DefaultDeadlineOffsetHours": 0
}New fields (TimeBasedOn, AllowBoundaryFallback, AllowMicrosoftUpdate, RequirePostRebootFullScan) are optional for backwards compatibility with older templates.
This project is licensed under the MIT License.
Jason Ulbright
