We and Other Companies Love Packaging with PSAppDeployToolkit

enter image description here

Almost all enterprise companies we have interacted with are using PSAppDeployToolkit and love it. As experienced application packagers, we have been working for hundreds of customers across the globe, packaging complex apps. As a final step, we’re wrapping the package into PSAppDeployToolkit (PSADT). Even if the package was a single MSI, we wrapped it in PSAppDeployToolkit. We have already done that for now 10,000+ application packages and counting.

But why? What problems does PSAppDeployToolkit solve? And finally, why, in the year 2023, did PSAppDeployToolkit suddenly become an even better technology to start and continue using? Let’s dive in. |

First, what is PSAppDeployToolkit (PSADT)?

PSAppDeployToolkit or PSADT, in short, is an open-source solution now owned by Patch My PC. It streamlines and standardizes the software deployment process. With its comprehensive set of features, adjusting application installer packages to meet organizational deployment solution needs and enterprise standards becomes effortless.

Top Problems PSADT Solves

Before PSADT, most application packagers had to rely on CMD and VBScript to bundle multiple installers together for deployment. Each person and organization tried to solve packaging issues individually. There was a lack of standardized methods for interacting with end-users during deployment and uninstalling previous application versions. It was all customized and varied across organizations—until Dan Cunningham and Sean Lillis introduced PSAppDeployToolkit.

PSADT addresses the following key problems for IT:

1. Standardization

Standardized processes make organizations and their teams effective. There are millions of differently made applications out there that require various modifications to be deployed in an enterprise environment efficiently. Each of these modifications can be achieved with different options. Each packaging engineer can come up with their solutions. That can make it harder for new packagers to join the team, making onboarding more challenging. PSAppDeployToolkit makes packaging and deployment processes standardized with predefined functions.

2. Customization

Each organization is different. As PSAppDeployToolkit is built mostly from PowerShell and designed for organizations to customize it, it’s a perfect solution in an enterprise environment that wants to add its specific customization for each application package. This is achieved because PSADT is open-sourced and primarily developed in PowerShell.

Our favorite use cases that are effortless to implement with PSADT:

  • Detect and uninstall all previous versions
  • Create specific name logfiles in a custom location
  • Organization branding for end-users to be familiar with
  • Fingerprints for each application for easier detection
  • Check specific environment conditions to set properties accordingly

3. Bridge Between Applications and Deployment Systems

The majority of Independent Software Vendors (ISVs) that build installation packages for the Windows Operating System primarily think about the home user as consumers often overlooking organizations such as large enterprises, and universities and their processes for deploying software across all their endpoints with the required configurations. Ironically, in most cases, these large organizations are the biggest customers of the software, making them a prime target audience for actual software purchases. As necessary functionalities for easy deployment are not directly added to the application by the vendor, they are usually implemented by application packagers. PSADT offers features such as reboot control, closing running applications, and the option to install per-user registries for all users under the system account. These features are just a few of the adapter-like features that make applications compatible with mass deployment systems like Intune and Configuration Manager (SCCM).

Our favorite use cases that are effortlessly implemented with PSADT, which would otherwise be a pain:

  • Detect previous versions and uninstall them
  • Chaining applications with multiple installers
  • Customizable parameters that can be changed during deployment

Mastering Creating PSAppDepolyToolkit Wrappers

After we created thousands of applications wrapped into PSADT we understood that there are some challenges that we can make disappear. And soon Master Wrapper a software built within Master Packager suite was born.

Master Wrapper General info

Without Master Wrapper

Wrapping the application into PSAppDeployToolkit is straightforward. These are the main standard steps we used to perform manually before we created the Master Wrapper.

  1. Open Deploy-Application.ps1 with your favorite code editor.
  2. Fill out the application section with details about the package, such as name, version, language, etc.
  3. In the Pre-Installation section, add process names that should be closed for the installation to start. To find the processes you would have to know each shortcut process and possibly other processes that could be running. This take some especially if there are multiple shortcuts.

But this step is crucial, especially if packages are deployed during business hours when users might actively use the application.

During my time working in a large enterprise, I used a VMware virtual machine and encountered an unexpected issue when certain functionalities suddenly stopped working. It was later revealed that the IT department had pushed a new version of VMware while I was actively using the previous version. Unfortunately, the package wasn’t wrapped into PSADT with a specified VMware process to check and display a message to the user warning about the upgrade. I continued to use the older VMware version, resulting in a crash later that caused the loss of my unsaved work. Sad, bad, and unprofessional.

  1. Add the installation command lines. You would be required to know how to install MSI, EXE or any other format. Usually, we copied from one example rather than reading the docs all the time. But there is no escaping from reading documentation when you are new to building PSADT wrappers. Nothing too complicated but it just takes time and memory to understand and remember.
  2. Test it. There is a chance you made a typo. I’ve had them from time to time. It forced me to address the issue and retest. It just takes extra time that I could have otherwise spent doing something more useful.

Of course there are more settings, configuration and functions that can be modify, but usually it’s done only once and saved as a template for every new application package to be reused.

With Master Wrapper

  1. Drag & Drop MSI to load PSADT general information automatically or fill out main details manually when using EXE installer.
    Master Wrapper General info
  2. Drag & Drop MSI, MSI+MST, MSP, and EXE files you want to install, and Master Wrapper will create installation/uninstall/repair command lines for you automatically.
    Master Wrapper Actions

When we had a package with multiple MSI installers it took significantly more time to create a Wrapper. Creating uninstall command lines using only product codes was hard. Had open MSI to take the ProductCode. The wrapper should have comment to tell which product code belonged to which application. To solve that we added a comment section before every uninstall command line to clearly indicate what is uninstalling and what sequence. With Master Wrapper it all happens automatically.

  1. Adjust Pre-Actions.
    Master Wrapper Pre-Actions

  2. Adjust Post-Actions.
    Master Wrapper Post-Actions

  3. Also you can view what Master Wrapper did and adjust Deploy Application.ps1 if needed under Script Editor tab.
    Master Wrapper PSADT script editor

  4. Finally you can view and change main PSADT settings, like log file location.
    Master Wrapper PSADT Settings

Note that if you already have PSADT template to you always use or you want to create one, then you can past the template in the “C:\Program Files (x86)\Master Packager Ltd\Master Packager\Toolkit” folder and Master Wrapper will read and apply changes based on your template.

That’s it. If you use Intune and have Master Packager Pro licenses you can even right click on Deploy-Application.exe and press “PSADT to intunewin” to get .intunewin format ready to be uploaded for Intune Win32 apps.
Master Wrapper PSADT to IntuneWin feature

Master Wrapper is designed to solve the following problems for you and all the main functionality is available for free:

  • Beginner packagers should be able to create quality PSADT wrapper packages on day 1 (even the ones that are new to PowerShell).
  • Lower risk for typos. Everything that is automated will make package with higher quality without typos or mistakes that usually happens when creating PSADT wrappers manually.
  • No need to read PSAppDeployToolkit documentation for most common actions
  • Save non-standard PowerShell or PSADT functions for easy one-click use when needed
  • Makes creating PSADT much faster
    • Automate general information
    • Add install/repair/uninstall command lines with the comments for easy reading
    • Load process to close from the MSI
    • Automatically generate intunewin files

We continually updated the software and listened for feedback. The majority and the main functionality is completely free same as the PSADT itself. Try it and you will probably not look back.

Repackaging and PSADT

While with PowerShell and PSAppDeployToolkit you can do almost anything, like copying files, writing registry entries, and creating shortcuts, it is not recommended and can cause serious issues. If your installer doesn’t support silent installation using PSAppDeployToolkit to construct the installer by parts is not a professional way of packaging, and repackaging will be needed using the designed software. Applications that cannot be installed silently should be repackaged in the MSI or MSIX format using software like Master Repackager. That will be the safest and most reliable way to configure, install, repair, and uninstall the application in the enterprise environment.

Summary

PSAppDeployToolkit is an open-source software designed to make application packaging easier for organizations. In December 2023 Patch My PC took over stewardship of PSAppDeployToolkit and promised to improve it while keeping it open-source and available for free. This makes PSAppDeployToolkit even better for everyone - for those who want to continue to use it for free and receive updates as well as the larger enterprises that do not want to rely on a few individuals maintaining the project as now a very respectable and established company Patch My PC is backing up the project.
For beginners in application packaging with PSAppDeployToolkit and for professionals that want to level up their quality and speed Master Wrapper is worth looking into. Master Wrapper Free features will be enough to get the main benefits, however, if you enjoy the software and want to support our development even more, please consider purchasing a Pro license that will unlock more features not only for Master Wrapper but for the whole Master Packager suite.

References

Subscribe to our newsletters