Custom Packages

Administrators can create their own packages to meet their unique needs. For example, creating a package containing proprietary software that is not offered in the PDQ Package Library. There is no limit to the number of custom packages an organization can create.

Each package consists of individual steps that complete actions on a device. When a package is run against a device, each step will complete in the order in which it is defined in the package.

To create a custom package, click the Packages tab and click the “Create package” button. 

Package Properties

After clicking the "Create package" button, you will be taken to the package Properties tab. From here, an administrator can set the package name, version number, add a text description, and set a timeout for when a package should error out if it is not successfully deployed.

Package Steps

Steps can be added by clicking the drop-down arrow to the right of the Steps button. This will display a list of available steps that can be used inside the custom package. Select any step to open the configuration page for that step and add it to the step list. If you want to remove a step, you can do so by clicking on the trash can icon next to the step name. Below we will describe the various steps available in PDQ Connect in greater detail.

Reorganizing Steps Tip: Administrators can reorganize the steps within a custom package by dragging and dropping them to change the order.

Install Step

The Install Step allows you to silently install or uninstall an application on a device. To use the install step, edit a package and click the “Add Install step” button.

The install step has several configuration options that are described in detail below. Note that while editing every field isn't mandatory, an install step MUST have an installer file uploaded by using the "Attach installer file" link next to the Installer field. 

Step Name: The name of the step. This is used for identifying a step and can be helpful in troubleshooting deployment issues.

Installer File: Upload the install file to be used for the package step. Supported file types are .msi, .msu, .msp and .exe.

Attachments: Allows additional files to be uploaded alongside the installer file for use during the deployment. There are several nuances involved with how attachments are used during deployments, including automatic extraction of .zip files. See Uploading Package Files & Folders for more information.

Files that have been previously uploaded can be removed or copied by hovering over the attachment and selecting the appropriate icon next to the file name.  

Parameters: Configure the command line installation parameters for the package. 

Command Line: The command that will be ran on the target to perform the deployment. This field will automatically fill itself in as the install file, attachments, and parameters are configured. 

Success Codes: Comma separated list of return codes that indicate the command was successful. Return Codes that are not listed here will result in an error, even if the deployment was successful. 

Run As: Select the account the package will Run As. 

  • Local System: Runs the deployment as the Local System account. This is the default run mode. 
  • Logged on User: Runs the deployment as the currently logged on user. It should be noted that this setting will not detect Remote Desktop sessions. The logged on user must be locally logged on to the target computer for PDQ Connect to detect the current logged on user session. 

Error Mode: Configure the package's behavior if there is an error for the step. 

Script Step

The Script step is used for running custom PowerShell and Command Prompt (CMD) scripts on target devices. With the ability to run full-length scripts, administrators have a near limitless options to perform custom actions in devices. To add a Script step to a package, edit the package and click the “Add script step” button. See the following resource to learn more about popular PowerShell commands.

Step Name: The name of the step. 

Type: Use to specify either PowerShell or CMD as the scripting language. 

PowerShell: Available when "PowerShell" is the selected type. Select Import.ps1 to upload a PowerShell script from a file or use the built-in editor to enter the command or script without uploading a .ps1 file. 

Cmd: Available when "Cmd" is the selected type. Select Import.bat to upload a batch file or use the built-in editor to enter the command or script without uploading a .bat file. 

Attachments: Allows additional files to be uploaded alongside the script for use during the deployment. There are several nuances involved with how attachments are used during deployments, including automatic extraction of .zip files. See Uploading Package Files & Folders for more information.

Files that have been previously uploaded can be removed or copied by hovering over the attachment and selecting the appropriate icon next to the file name.  

Parameters: Configure the command line installation parameters for the package. 

Success Codes: Comma separated list of return codes that indicate the command was successful. Return Codes that are not listed here will result in an error, even if the deployment was successful. 

Run As: Select the account the package will Run As. 

  • Local System: Runs the deployment as the Local System account. This is the default run mode. 
  • Logged on User: Runs the deployment as the currently logged on user. It should be noted that this setting will not detect Remote Desktop sessions. The logged on user must be locally logged on to the target computer for PDQ Connect to detect the current logged on user session. 

Error Mode: Configure the package's behavior if there is an error for the step. 

Referencing Attachments in Scripts

Attachments included in an Install Step or Script Step will be copied to the target in the directory below, where dvc_task_{guid} represents a unique folder name that contains the task ID for that specific deployment.

C:\ProgramData\PDQ\PDQConnectAgent\Downloads\dvc_task_{guid}

You can dot source this location in a PowerShell or CMD script.

PowerShell

.\FileName.ext

CMD

%cd%\FileName.ext

Use double quotes for the filename if it contains any spaces. 

".\File Name.ext"

Reboot Step

The Reboot Step allows you to perform a reboot during a deployment. If additional steps are configured to run after a reboot step, the consecutive steps will be performed once the reboot has completed and the PDQ Agent checks back in. 

Step Name: The name of the step. 

Delay: How long to wait before the Reboot Step initiates the reboot. 

Message: Write an optional message to be displayed to the logged on user before the reboot is initiated. 

Error Mode: Configure the package's behavior if there is an error for the step. 

File Copy Step

File Copy Steps allow you to upload files or folders to be copied to the target computer. 

Step Name: The name of the step. 

Attachments: Select the files or folders to be copied to the target device. There are several nuances involved with how attachments are used during deployments, including automatic extraction of .zip files. See Uploading Package Files & Folders for more information.

Files that have been previously uploaded can be removed or copied by hovering over the attachment and selecting the appropriate icon next to the file name.  

Target Folder: The destination folder on the target computer where the files or folders will be copied. 

Overwrite Existing Files: Select this option to overwrite any pre-existing files that share a filename with a file being copied. If left unchecked, any pre-existing files that share a filename with a file being copied in the target folder will not be overwritten. 

Run As: Select the account the package will Run As. 

  • Local System: Runs the deployment as the Local System account. This is the default run mode. 
  • Logged on User: Runs the deployment as the currently logged on user. It should be noted that this setting will not detect Remote Desktop sessions. The logged on user must be locally logged on to the target computer for PDQ Connect to detect the current logged on user session. 

Error Mode: Configure the package's behavior if there is an error for the step. 

Nested Step

Nested Steps allow you to include another package as a step in a new package. This can be helpful to run existing packages as part of a larger deployment without recreating the packages.

Nesting packages that contain other nested packages is supported, but only if the nested packages do not contain the same packages. This is by design to prevent deployment loops. 

Step Name: The name of the step. 

Package: Select the package to "nest" within the package to be ran as a package step. 

Error Mode: Configure the package's behavior if there is an error for the step. 

 

Duplicate a package

You can make a copy of any existing custom package that you've created. To do this, click the three vertical dots (kebab menu) in the upper-right corner, and click Duplicate Package.

This will immediately create a duplicate copy of the package, identical to the original name, but with a numeral in parenthesis after the name. You can click the name of the package to edit it - either from the green success message, or from the Packages page.


You may make any changes to the duplicated package that you wish: adding, removing or modifying steps, changing the name, etc.

Was this article helpful?
Still have a question or want to share what you have learned? Visit our Community Discord to get help and collaborate with others.