How to deploy PDQ Client consoles

company ColbyB
Colby Bouma|Updated November 30, 2020
How to Deploy PDQ Client Consoles
How to Deploy PDQ Client Consoles

Greetings, citizens of the internet! I’m going to share with you how I install and update PDQ Deploy and Inventory in Client mode. It’s pretty straightforward, but there are a few tricks I need to explain first. I’m pushing to get these added to the Package Library, but I can’t guarantee that will happen.

Here are my packages: 

Download these as XML files and import them into PDQ Deploy. Next, I will go over the steps in detail and cover some things you may want to change to fit your environment.

pasted image 0 (14)

Step 1 - Kill

Just a simple kill step to stop any running consoles. This is important when you’re using this package for updating rather than installing.

Step 1 - Kill

I set “Options\Error Mode” to Continue, but you can use “Stop Deployment with Error” if you want to.

Stop Deployment with Error

Step 2 - Install Deploy/Inventory Client

This is where the fun begins. PDQ Deploy and Inventory store a copy of the MSI version of their installer in “C:\Windows\Downloaded Installations\Admin Arsenal\PDQ (Deploy/Inventory)\(Version Number)\PDQ(Deploy/Inventory).msi”. I used ADMIN$ so you can use Pull mode if you want to. $(PDQDeployVersion) and $(PDQInventoryVersion) are System Variables that were added in Deploy 17.1.0.0 and Inventory 16.1.0.0. $(PDQDeployServerHostName) and $(PDQInventoryServerHostName) were added in version 18.0.21.0.

pasted image 0 (15)

Step 3 - Set registry values

This part grabs the hostname and port number of the Server from the System Variables. As of version 18.0.21.0, Client mode retrieves the license from the Server, so you no longer need to set it here.

$Product = "PDQ Deploy" $ServerName = "$(PDQDeployServerHostName)" $ServerPort = "$(PDQDeployServerPort)"

Here we create the registry keys with New-Item where the Client configuration information is stored if they don’t already exist. Out-Null prevents anything from returning. I added a five second pause with Start-Sleep because I ran into issues where these didn’t exist yet when the next section ran. I don’t know if it’s necessary for every environment, but better safe than sorry.

New-Item -Force -Path "HKLM:\SOFTWARE\Admin Arsenal" -Name "$Product" -ErrorAction SilentlyContinue | Out-Null New-Item -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product" -Name "Protocol" -ErrorAction SilentlyContinue | Out-Null Start-Sleep -Seconds 5

Finally, we set the registry values we gathered above with New-ItemProperty

New-ItemProperty -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product\Protocol" -Name "Mode" -PropertyType "String" -Value "Client" | Out-Null New-ItemProperty -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product\Protocol" -Name "ServerHostName" -PropertyType "String" -Value "$ServerName" | Out-Null New-ItemProperty -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product\Protocol" -Name "ServerPort" -PropertyType "Dword" -Value "$ServerPort" | Out-Null

That concludes today’s demonstration of building a PDQ Deploy package for installing PDQ Deploy and Inventory in Client mode. Thank you for joining me on this wacky journey.

company ColbyB
Colby Bouma

Colby was an employee at PDQ.

Related articles