MDT and PDQ Deployment Package
Hello
I have been trying to get PDQ Deploy to work with MDT once the operating system is installed, I am using the commands shown in the image but everytime i run the commands i am getting errors regarding the PDQDeploy.exe not being found, I have copied the PDQDeploy.exe to System32 to see if it picks up from the Path set value and it finds the exe so it appears to be either permissions or the path to "C:\Program Files(x86)\Admin Arsenal\PDQ Deploy" that it has trouble with. I was wondering if anyone has had this issue and if you guys can help.
Even if i use quotations in the powershell command it still states that it cannot find the file.
Comments
It took me awhile to get it via command-line too. This is what I'm using below to kick off a package to fix WSUS clients:
I found that in the end, I had to remove the PDQ Deploy installation and install in the patch C:\AdminArsenal\PDQDeploy. I believe the spaces were causing the issues when calling "pdqdeploy.exe" or "C:\Program Files (x86)\Admin Arsenal\PDQ Deploy\pdqdeploy.exe"
Im reposting this in case it's helpful to you. I have added a timeout option and also the ability to use IP, if your DNS is a bit slow to update.
In MDT I run this as the domain service account that is running the PDQ service.
# Declare the parameter for package name so we can pass the package name on the command line
param (
[Parameter(Mandatory=$true)][string]$package
)
# Find the ip address from the computername
$ipV4 = Test-Connection -Computername "$env:COMPUTERNAME" -count 1 |Select -ExpandProperty IPV4Address
# Run the deployment command using ip address as the target
Invoke-Command -ComputerName <PDQSERVER> -ScriptBlock { param ($compname) & 'C:\Program Files (x86)\Admin Arsenal\PDQ Deploy\pdqdeploy.exe' Deploy -Package $Using:package -Targets $Using:ipV4.IPAddressToString} -ArgumentList "$env:COMPUTERNAME"
# Run the deployment command using computername address as the target
#Invoke-Command -ComputerName <PDQSERVER> -ScriptBlock { param ($compname) & 'C:\Program Files (x86)\Admin Arsenal\PDQ Deploy\pdqdeploy.exe' Deploy -Package $Using:package -Targets $compname} #-ArgumentList "$env:COMPUTERNAME"
#Add a timeout so if the deployment doesn't start it continues after 60 minutes
$timeout= new-timespan -Minutes 60
$StopWatch = [diagnostics.stopwatch]::StartNew()
#wait for the package to start by waiting for the lock file to appear
$LockfileExist=$false
Do{
If(Test-Path 'c:\windows\AdminArsenal\PDQDeployRunner\service-1.lock') {$LockfileExist = $true} Else {Write-Host 'Waiting PDQ install to start on ' $env:COMPUTERNAME - $ipV4.IPAddressToString ; Start-Sleep -s 10}
}
Until (($LockfileExist) -or ($StopWatch.elapsed -ge $timeout))
#Check if the package is still running by looking for the lock file to disappear
$fileDeleted=$false
Do{
If(Test-Path 'c:\windows\AdminArsenal\PDQDeployRunner\service-1.lock') {Write-Host 'PDQ install started: waiting to complete on ' $env:COMPUTERNAME - $ipV4.IPAddressToString; Start-Sleep -s 10} Else {$fileDeleted = $true}
}
Until ($fileDeleted)