PSAppDeployToolkit v4 – What’s New and Why You Should Upgrade

by | Oct 22, 2024 | Blog

Introduction: A Legacy that Paved the Way

PSAppDeployToolkit (PSADT) has long been the go-to solution for application deployment wrapping and underpins and integrates with many application repackaging and deployment solutions including our very own Scappman (part of the Patch My PC family), as well as Master Packager, Flexera, Juriba, Advanced Installer, Robopack, Raynet, Apptimized, XOAP, Sparkle Flow, as well as many others. It has become a critical component to providing standardized and consistently deployed applications for countless organizations, from small companies to global multinationals, federal agencies, universities, schools, hospitals, etc.

However, Version 3.x has been around a long time, and as operating systems and PowerShell itself have evolved, it’s been showing its age. While v3 is great, it was built around the Windows XP / Windows 7 and PowerShell 3.0 timeframe and has tried to maintain functional support for those right up until today. That’s a long time – even longer than Microsoft offered paid Extended Support for Windows 7 (which ended in October 2023). And that means that PSADT hasn’t been able to take advantage of newer capabilities in today’s systems. But today, we are finally (FINALLY!) going to change that. Meet PSAppDeployToolkit v4.

PSAppDeployToolkit v4 brings a modernized approach, rebuilt from the ground up to meet today’s IT demands. It retains everything that made V3 great while introducing new features and enhancements designed for stability, performance, and flexibility. Whether you’re familiar with PSADT or new to the toolkit, v4 is the next step forward — and it’s here to make your deployments better than ever.

PSADT v4 is not publicly available for download at this time. It is scheduled to be released in late 2024.

What’s New in PSAppDeployToolkit v4?

PSAppDeployToolkit v4 isn’t just an update — it’s a reimagining of the toolkit for the future. Let’s take a closer look at the major improvements and why they matter to you.

1. Now a Code-Signed PowerShell Module

The toolkit has evolved from being a massive dot-sourced script, into a fully-fledged PowerShell module. Technically speaking, it’s still a massive script – but the switch to being a module has allowed us to implement a lot of additional security features, which we’ll talk about.

Security is a top priority. With PSADT V4, the entire module is code-signed with a valid certificate. This guarantees the integrity of the code and helps administrators comply with security policies in enterprise environments.

There’s a lot of other benefits from being a module too:

  • Encapsulation of logic: Functionality is neatly contained, improving maintainability and readability.

  • Code reuse: Reuse functions with ease across different projects without redundancy.

  • Version control: Upgrades and patches are easier to manage, with proper versioning of the module.

  • IntelliSense: Import the module and you’ll immediately get visual hints when writing scripts in Visual Studio Code or in the Terminal.

So how do you create a new deployment to include the module? Simple. Just scaffold out a new deployment using the following command:

New-ADTTemplate -Destination C:MyDeployment

2. Full Backwards Compatibility with PSADT v3 script format

We know you’ve invested time and effort in creating your existing deployment scripts and no one wants to have to rewrite a script with new syntax, and retest everything in your environment. Thankfully, once a script is written and tested, you rarely need to touch it again. This allows you to migrate to the v4 format in your own time and only build against v4 for new deployments. This might take some time however, and so we’ve created a compatibility layer!

v4 will read your existing v3 scripts and remap the v3 commands to the new v4 format on-the-fly – with nothing new for you to learn. So, you can immediately start to take advantage of v4’s speed and rock-solid stability.

3. New Lightweight Modern Fluent Interface

We’ve retained the existing look and feel for when you migrate an existing deployments over to V4 – it’s seamless so there’s no code to rewrite, and things stay the same for you end users (note: if you’ve modified the on-screen messaging, you’ll need to copy your changes into the new config and language files). Your customers won’t notice any visible difference when a deployment runs.

With v4, however, you now have the option of using the new fluent interface, which has a simplified workflow with a beautiful and modern look and feel that supports light and dark mode. We’ve scaled back the size of the UI and reduced its wordiness. We’ve also moved its on-screen location to mimic Windows Toast Notifications. As before, it is of course customizable with your own logo and banners. We wanted this to be simple and intuitive, but beautiful – and we hope you’ll agree it hits the mark.

Old version of PSADT
New version of PSADT

4. PowerShell 7 and ARM support.

PSADT v4 fully supports PowerShell 7 and the ARM platform, bringing access to both modern PowerShell features as well as modern hardware. This ensures you’re not locked into older versions and can leverage the latest PowerShell improvements.

5. WIM Image File Support

Do you need to deploy large applications or system images? PSADT v4 supports WIM files, giving you the flexibility to handle deployments at scale with efficient, compressed image handling.

6. Enhanced Application Filtering and Uninstallation

New features include improved filtering when getting and uninstalling applications. Additionally, PSADT V4 introduces support for uninstalling EXE-based applications, expanding its capabilities for handling legacy installers alongside MSI.

7. Functions for Downloading Files

Need to pull files from remote servers or repositories during a deployment? PSADT V4 includes functions for downloading files, simplifying this common task within deployment scripts.

Key Changes to Familiar Features

While V4 brings new features, some existing functionality has been enhanced or adjusted for the better. Here’s a quick overview of the most important changes:

PreviousNew in V4
Deploy-Application.exe
Deploy-Application.ps1
Invoke-AppDeployToolkit.exe
Invoke-AppDeployToolkit.ps1
XML configurationMoved to config.psd1
UI / localization strings moved to language specific psd1 files
Booleans for flagsConverted to switches where possible
PSADT FunctionsNow all have an ADT prefix, e.g. Copy-File –> Copy-ADTFile

These changes improve the efficiency and usability of the toolkit, helping reduce complexity and increase script maintainability.

Under-the-Hood Changes and Improvements:

Behind the scenes, PSADT V4 is packed with technical enhancements that deliver better performance, security, and flexibility.

  • Deployment State Management: Deployment state is now encapsulated within a class object, making it easier to run side-by-side sessions and manage complex deployments without conflicts.

  • Function Prefixes for Safety: Every function in the module is prefixed to avoid name collisions with other modules.

  • Immutable Command Lookup Table: All command calls are made through an immutable lookup table, ensuring that functions cannot be spoofed or overwritten.

  • Strict Mode Compliance: V4 operates under PowerShell strict mode (v3), ensuring that scripts are safer by preventing the use of undefined variables and avoiding silent failures.

  • Performance Optimizations: The toolkit leverages efficient object types (e.g., System.Collections.Generic.List), filters objects earlier in the pipeline, and removes inefficient operations such as += with arrays.

  • CI / CD Build System: v4 uses a build pipeline for validating and linting code committed code to the repository, running unit and integration tests, and generating the documentation. The final module is compiled into a single .psm1file which is then cryptographically signed and bundled with the supporting files into a release. The removal of any manual work also eliminates the possibility of mistakes being made as part of the release process.

Why Should You Upgrade to V4?

If you’ve been using PSADT V3, you’ll appreciate the familiar look and feel of V4 while benefiting from the modernization it brings. Here’s why the upgrade is worth it:

  • Enhanced Security: Code-signing and command validation protect against tampering and ensure safe operation.

  • Improved Stability and Performance: With optimized functions and better resource management, deployments are faster and smoother.

  • Better Flexibility: With new features like WIM support and advanced uninstallation options, PSADT v4 can handle a wider variety of deployment scenarios.

  • Future-Proof: v4 aligns with modern PowerShell practices and supports PowerShell 7, ensuring long-term usability.

  • Simplified Maintenance: Moving configurations to PSD1 and introducing modularity makes it easier to maintain and update scripts over time.

Conclusion: The Time to Upgrade is Coming!

PSAppDeployToolkit V3 has been an invaluable tool for many IT professionals, but the future belongs to V4. By embracing a modern module-based design, improving security, and adding new features, V4 offers everything you need to handle deployments in today’s fast-changing IT environment.

Whether you’re an existing user or exploring PSADT for the first time, now is the time to prepare to make the switch. Enjoy smoother, faster, and more secure deployments with PSADT V4—and discover the future of application deployment