Packaging knowledge

What is PSADT and when is it worth it?

What PSADT does, which packages benefit and when a plain installer is the better choice.

The problem PSADT solves

A Windows installer is made for a human in front of the screen. In a corporate network nobody is there. It must run silently, must not wait for input, must return a code, and should leave nothing behind on uninstall.

The PowerShell App Deployment Toolkit provides a shell around the installer that handles order, error handling and return values. It does not install anything itself. It runs, checks and reports.

Anatomy of a package

Four parts: entry script, source files, log area, toolkit helpers. The entry script is the contract. It contains pre-install, install, post-install and uninstall phases. Everything the package does lives there, not in a hidden batch file.

The script name differs between PSADT versions. In the classic structure it is Deploy-Application.ps1; PilotDeploy produces exactly that structure with launcher, script, Files/Source and PackageInfo.

When a plain installer is enough

An MSI with documented silent properties does not need a toolkit. One command, one detection rule, one test. Adding PSADT here creates a layer to maintain without solving anything.

The same applies to simple EXE installers with documented arguments: if the call is reliable and uninstall exists, the direct route is shorter and less error-prone.

Where PSADT adds cost

The shell is code, and code can be wrong. A package that kills processes it should not touch, or an uninstall that deletes too much, is more dangerous than a plain MSI call. The effort pays off only when the logic is genuinely needed.

Cost also comes from inconsistency: different script structures, return codes and logs. Then time goes into missing conventions, not into the toolkit.

Decision guide

1. Does something need to be stopped or removed before install? 2. Is there more than one install step? 3. Should the user see or confirm anything? 4. Does something need checking or configuration after install?

One “yes” is enough. All four “no” means the plain package is the better choice.

---