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
Post a Comment