The PSADT wizard has seven steps.
Step 1: Files #
Upload the installer files that your deployment script uses. They end up in the Files/ folder of the exported package.
Step 2: Session Config #
Here you enter the application details that PSADT uses for logging, for the dialogs shown to users, and for detection. All values are written into the $adtSession block of the generated script.
PSADT Template #
At the top of the step, choose a PSADT Template for this package, or choose None (stock toolkit). New packages automatically use your default template.
Auto-Detect from Installer #
If the package contains an MSI or EXE installer, the wizard reads the product name, vendor, version and architecture from it:
- With exactly one installer, detection runs automatically.
- It only fills fields that are still empty.
- The values it found are shown under Detected Properties.
Application information #
| Field | Example |
|---|---|
| App Vendor | Microsoft |
| App Name | Visual Studio Code |
| App Version | 1.85.0 |
| App Architecture | x64 |
| App Language | EN |
| App Revision | 01 |
Script settings #
| Field | Example |
|---|---|
| App Script Version | 1.0.0 |
| App Script Date | 2026-09-25 |
| App Script Author | Taken from your default in Settings |
All Application Information and Script Settings fields are required before you can continue.
Deployment settings #
| Field | Description |
|---|---|
| Require Admin | Not Defined / True / False. Not Defined keeps the toolkit’s own setting. |
| Success Exit Codes | Exit codes that count as success, for example 0 |
| Reboot Exit Codes | Exit codes that mean a reboot is required, for example 1641, 3010 |
| App Processes to Close | Processes that must be closed before the installation, for example code |
Display settings #
| Field | Description |
|---|---|
| Install Name | Name shown by PSADT during the installation |
| Install Title | Title shown in the PSADT dialogs |
Step 3: Parameters #
Add your own script parameters. They are added to the script next to the standard PSADT parameters.
The standard parameters are always present and cannot be changed:
DeploymentType: Install / Uninstall / RepairDeployMode: Auto / Interactive / NonInteractive / SilentSuppressRebootPassThru,TerminalServerMode,DisableLogging(switches)
For each custom parameter you can set:
| Setting | Description |
|---|---|
| Name | For example Environment |
| Type | For example String, Boolean, Int32 or Switch |
| Mandatory | Whether the parameter must be given |
| ValidateSet | Comma-separated list of allowed values, for example Dev,Staging,Production |
| Default Value | The value used when the parameter is not given |
| Description | Help text, written as a comment above the parameter |
Steps 4–6: Install, Uninstall and Repair phases #
Each phase has three code editors:
| Section | When it runs | Typical use |
|---|---|---|
| Pre | Before the main step | Close applications, check prerequisites, back up settings |
| Main | The main step | Run the installer or uninstaller |
| Post | After the main step | Create shortcuts, configure settings, clean up |
The editors offer:
- PowerShell syntax highlighting and cmdlet autocomplete
- Detect Command (Main editor). Pick an installer file and click Detect Command. The wizard recognises the installer type and inserts the ready-made PSADT command:
- MSI and MSP packages get
Start-ADTMsiProcesswith silent switches. - EXE installers get
Start-ADTProcesswith the right silent switches. The wizard recognises Inno Setup, InstallShield, WiX Burn, Squirrel and NSIS installers. - The uninstall phase gets a registry-based
Uninstall-ADTApplication. - If the silent switches cannot be determined, a message says so and nothing is inserted. Write the command yourself in that case.
- MSI and MSP packages get
- Insert Function: opens the Function Builder.
- Maximize Editor / Restore: full-screen editing.
Leaving the Repair phase empty is fine.
Example of an install phase:
Start-ADTMsiProcess -FilePath 'MyApp.msi' -Action Install
Copy-ADTFile -Path "$($adtSession.DirFiles)\config.xml" -Destination "$envProgramFiles\MyApp\"
Step 7: Preview #
This step shows the complete generated Invoke-AppDeployToolkit.ps1 in a read-only editor. What you see here is exactly what goes into the package.
| Control | Description |
|---|---|
| Copy to Clipboard | Copy the complete script |
| Deployment Type | Install / Uninstall / Repair for the test |
| Deploy Mode | NonInteractive / Interactive / Silent for the test |
| Run as Admin | Run the test elevated (shows a UAC prompt) |
| Test Run | Run the script on this computer |
| Test in Sandbox | Run the package on a clean Windows Sandbox |
Click Finish to build the package and store the ZIP in the workspace.