Skip to content

jasonulbright/deployment-helper

Repository files navigation

Deployment Helper

Safe, fast MECM application and software update group deployment with pre-execution validation, safety guardrails, and immutable audit logging.

Deployment Helper

Features

  • 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

Requirements

  • PowerShell 5.1
  • .NET Framework 4.8+
  • Configuration Manager console installed
  • CM admin permissions for application deployment

Quick Start

  1. Launch: powershell -ExecutionPolicy Bypass -File start-deploymenthelper.ps1
  2. File > Preferences: Set Site Code and SMS Provider
  3. Click Connect to establish CM connection
  4. Enter application name and collection name
  5. Click Validate to run the 5-check validation engine
  6. If all checks pass, click Deploy

Preferences

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)

Project Structure

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

Template Schema

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.

License

This project is licensed under the MIT License.

Author

Jason Ulbright

About

Safe MECM deployment helper - pre-execution validation, safety guardrails, and immutable audit logging

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors