ThirdPatch™ is an RMM-neutral third-party patching solution for MSPs with flat-rate pricing and support for custom applications. Because it works anywhere PowerShell can run, ThirdPatch integrates with multiple RMM platforms, including ConnectWise Automate, Ninja RMM, N-Central, Kaseya VSA, Atera, JumpCloud, and others.
A package is a NuGet file (essentially a ZIP archive) used to install and manage custom applications. By combining reusable components such as install and uninstall scripts, packages provide a simple way to deploy applications a business may need.
For more information on creating and configuring packages, see the ThirdPatch documentation (use the SSO login option and register a user to sign up):
https://docs.thirdpartypatching.com/en/creating-packages
This repository provides package templates for different application formats that can be customized and used with ThirdPatch.
The ZIP, MSI, and EXE templates all use the same basic structure.
-
The
.nuspecfile contains package metadata, including the package name, version, author, and other information used by ThirdPatch to identify and manage the package. -
The
thirdpatchinstall.ps1file is required and installs the application. This file must be namedthirdpatchinstall.ps1for the package to function properly. -
The optional
thirdpatchuninstall.ps1file manages application removal and cleanup. This file must be namedthirdpatchuninstall.ps1if it is included. -
The optional
thirdpatchbeforemodify.ps1file performs checks before updates, removals, or other package modifications. It can be used to verify prerequisites, dependencies, available disk space, or any other conditions required before continuing. This file must be namedthirdpatchbeforemodify.ps1if it is included. -
Place the application installer or archive inside the
toolsfolder alongside the PowerShell scripts. Update the filename references in the scripts to match your application (for example, replacetemplate.zip,template.msi, ortemplate.exewith the appropriate filename). -
The final step is to open a terminal, move into the folder with the
.nuspecfile, and runthirdpatch pack. This will create a.nupkgfile which can be uploaded to your custom repository, and then installed with the command:thirdpatch upgrade <package_name> --source=<repository_url>
- The install script extracts the ZIP archive to the desired installation location.
- Because ZIP files do not include uninstall information,
thirdpatchuninstall.ps1typically removes the installed files and folders. - It is important to note where you install the program files when using ZIP file format, as it is required when uninstalling the program.
- The installer must support silent installation. Configure the appropriate silent installation arguments in
thirdpatchinstall.ps1. The template includes a clearly marked section indicating where these arguments should be added. - The uninstall script typically launches the uninstall process provided by the MSI.
- The installer must support silent installation. Configure the appropriate silent installation arguments in
thirdpatchinstall.ps1. The template includes a clearly marked section indicating where these arguments should be added. - If an uninstall script is included, configure it to run the application's silent uninstall command.
Templates for ZIP, MSI, and EXE packages are available here:
https://github.com/automationtheory/thirdpatch-examples
The repository contains templates for each package type. Template fields that require changes are marked for easier editing, allowing you to download the appropriate package format, customize it, and use it with ThirdPatch once completed.
