Important Notice: On February 29th, this community was put into read-only mode. All existing posts will remain but customers are unable to add new posts or comment on existing. Please feel to join our Community Discord for any questions and discussions.

MDT and PDQ Deployment Package


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.




Date Votes
  • 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 (

    # 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
    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

    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)