PowerShell App Deployment Toolkit (PSADT) Step-by-Step Guide with the Addition of My Wizard Script

Introduction

The PowerShell App Deployment Toolkit (PSADT) is one of the most widely used frameworks for enterprise Windows application deployment. It provides administrators with a standardized and powerful method for software installation, uninstallation, user interaction, process management, logging, and deployment automation.

One of the most repetitive tasks when creating a new PSADT package is manually editing the generated Invoke-AppDeployToolkit.ps1 file to populate application-specific information such as the application name, version, publisher, installation parameters, uninstallation parameters, process names, and deployment behavior.

To simplify this process, I created a PSADT Wizard Script with the assistance of AI. Rather than manually editing the deployment script, the wizard reads the existing Invoke-AppDeployToolkit.ps1 file generated by PSADT, asks a series of straightforward questions, and automatically updates the relevant values within the script.

The wizard does not replace PSADT or generate a deployment framework of its own. Instead, it automates the initial configuration of a standard PSADT project, helping administrators reduce manual effort, improve consistency, and accelerate package creation.

GitHub Repository:

https://github.com/aralesahar2025/PSADT-Wizard

Feedback and contributions are welcome.

Disclaimer 

This guide and the accompanying wizard script are independent community contributions and are not affiliated with, endorsed by, or maintained by the PowerShell App Deployment Toolkit (PSADT) project team.

PowerShell App Deployment Toolkit (PSADT) is a separate open-source project with its own licensing, documentation, and support channels. The wizard described in this article is designed to automate portions of the PSADT package configuration process by reading and updating deployment-specific values within a standard PSADT project. It does not replace PSADT and requires an official PSADT installation to function.

All credit for the underlying deployment framework belongs to the PSADT maintainers and contributors.

For official documentation, releases, and project information, visit the official PSADT website:

https://psappdeploytoolkit.com/

 

 Prerequisites 

Before creating your first package, install the latest version of PSADT from the PowerShell Gallery.

Open PowerShell as Administrator and run:

Set-ExecutionPolicy -ExecutnPolicy RemoteSigned -Scope Proce -Force

Install-Module -Name PSADeployToolkit -Scope AllUsers -Force

Import-Module PSAppDeployToolk** -Force

 

Scenario: Packaging an MSI-Based Application

 In this example, we will package WinDirStat, but the same process can be applied to most MSI or EXE based applications.

 

Step 1: Create a New PSADT Project

Create a new PSADT project using the following syntax:

New-ADTTemplate -Destination "C:\Path\To\Your\ProjectFolder" -Name "MyApplicationName"

 Example: New-ADTTemplate -Destination "C:\PSADT" -Name "WinDirStat"

 This command creates the project folder structure along with all required PSADT files and subfolders.
 

Step 2: Download the Application Installer

Use Winget to download the installer directly into the PSADT Files directory.

Example:

winget download WinDirStat.WinDirStat --download-directory C:\PSADT\WinDirStat\Files\

 Once completed, the installer files are ready to be referenced by PSADT during deployment.

 

Step 3: Collect Application Information

An easy way to obtain accurate application information is to install the application manually and query it using PSADT.

Example for WinDirStat:

Get-ADTApplication -Name 'WinDirStat' | Format-List DisplayName, DisplayVersion, ProductCode, WindowsInstaller, UninstallString

  

Step 4: Run the PSADT Wizard Script

Open PowerShell with administrative privileges, allow script execution for the current session:

Set-ExecutionPolicy Bypass -Scope Process

Copy the wizard script - New-PSADTWizard.ps into the root of the PSADT project folder.

Example:

C:\PSADT\WinDirStat\

Run the wizard:

.\New-PSADTWizard.ps1

The wizard reads the existing Invoke-AppDeployToolkit.ps1 file and guides you through a series of simple questions, including:

  • Application name
  • Application version
  • Publisher
  • Installation parameters
  • Uninstallation parameters
  • Application process names
  • Etc. 

After the questionnaire is completed, the wizard automatically updates the Invoke-AppDeployToolkit.ps1 file with the supplied values.

This eliminates much of the repetitive manual editing traditionally required when creating new PSADT packages.

Note: The wizard leverages the standard PSADT project structure and deployment script. It simply automates the process of updating deployment-specific values and does not modify or replace the PSADT framework itself.


 

Step 5: Test the Installation 

Perform a manual installation test before importing the package into Workspace ONE UEM.

Run: .\Invoke-AppDeployToolkit.ps1

If the application is currently running, verify that the expected process-close prompt is displayed.

Review the logs and confirm that the installation completes successfully.

 

Step 6: Test the Uninstallation 

Perform a manual uninstall test

Run: .\Invoke-AppDeployToolkit.ps1 -DeploymentType Uninstall

If the application is running, verify that the user receives the expected notification to close the application.

Confirm that:

  • The application is successfully removed.
  • The logs indicate a successful uninstall.
  • Any post-uninstall actions behave as expected.

 

Deploying with Workspace ONE UEM 

After validating the package, compress the entire project folder into a ZIP archive and upload it as a Win32 application in Workspace ONE UEM.

Install Command

.\Invoke-AppDeployToolkit.exe -DeploymentType "Install" -DeployMode "Interactive"

Uninstall Command

.\Invoke-AppDeployToolkit.exe -DeploymentType "Uninstall" -DeployMode "Interactive"

Example Detection Rule

File: C:\Program Files\WinDirStat\WinDirStat.exe

Version: 2.2.2

Operator: Greater than or equal to

 

 Validation Checklist 

Before promoting the package to production, validate the following:

✅ Installation succeeds on a clean device

✅ Upgrade succeeds from a previous version

✅ Uninstallation succeeds without errors

✅ Close-process prompts display correctly

✅ Deployment logs are generated successfully

✅ Detection criteria function correctly

✅ Install and uninstall commands operate successfully within Workspace ONE UEM

✅ User experience matches organizational requirements

 

Conclusion 

The PowerShell App Deployment Toolkit remains one of the most powerful frameworks available for enterprise Windows application deployment. However, creating new packages often involves repetitive manual configuration tasks.

The PSADT Wizard Script helps streamline this process by reading the standard PSADT deployment script, collecting deployment-specific information through a guided workflow, and automatically updating the required values within the project.

By combining PSADT's mature deployment framework with an automated configuration wizard, administrators can create, test, and deploy application packages more efficiently while maintaining consistency, reducing human error, and preserving alignment with PSADT best practices.


Comments

Popular posts from this blog

How to Enable DEX (Experience Management) for Omnissa Horizon - Step by Step

Deploying Microsoft Defender for Endpoint on macOS with Workspace ONE UEM