Had this issue with deployment with Dell command update. I use PDQ Deploy. After much online reading found that a bach file is easyer to work with.

my code looks like this

cd C:\Program Files\Dell\CommandUpdate

dcu-cli /version

dcu-cli /scan

dcu-cli /applyUpdates -encryptedPasswordFile="???" -encryptionKey="???"

Also not sure if you are trying to run the scan and the apply in the same code. I found that it is more stable to run them in diffrent steps.

hope this helps

Answer from Killing-me-MicroSoftly on Stack Overflow
🌐
Cyberdrain
cyberdrain.com › monitoring-with-powershell-monitoring-dell-driver-updates-dcu-3-1
Monitoring with PowerShell: Monitoring Dell Driver Updates (DCU 3.1)
$DownloadLocation = "C:\Program Files\Dell\CommandUpdate" start-process "$($DownloadLocation)\dcu-cli.exe" -ArgumentList "/applyUpdates -autoSuspendBitLocker=disable -reboot=disable" -Wait
🌐
Stack Overflow
stackoverflow.com › questions › 60304551 › how-to-manage-dcu-cli-gui-in-powershell-remote-job
driver - How to manage dcu-cli GUI in powershell remote job - Stack Overflow
$Trigger = New-ScheduledTaskTrigger -Once -At $(Get-Date).AddMinutes(1) $User = "SYSTEM" $Actions = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "Start-Process 'C:\Program Files (x86)\Dell\CommandUpdate\dcu-cli.exe' -ArgumentList '/scan -report=`"C:\Temp\`"'" $Settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit "01:00" -AllowStartIfOnBatteries $Task = New-ScheduledTask -Action $Actions -Trigger $Trigger -Settings $Settings -Description 'Update process' Register-ScheduledTask -TaskName "DCU Updates Scan" -InputObject $Task -User $User -Force
Discussions

intune - How to initiate Dell Command updates remotely with a Powershell script - Stack Overflow
I've tested a few scripts by changing to the Dell Command directory and then executing "dcu-cli.exe" with arguments to bypass prompts but haven't had much luck. Is there a way to initiate these updates on Dell Command (or Support Assist( 4.8.0 remotely with a Powershell script? More on stackoverflow.com
🌐 stackoverflow.com
How to run command line or PowerShell script if file could exist in two locations? - Stack Overflow
Could someone help me convert this to a command line or PowerShell script so that it would correctly from whichever location exists? It should only exist in one of the two locations and only needs to be run once. ... "%ProgramFiles%\Dell\CommandUpdate\dcu-cli.exe" /configure -updatetype=bi... More on stackoverflow.com
🌐 stackoverflow.com
powershell - Using PSRemoting to Install Dell Updates using dcu-cli.exe - Stack Overflow
I am trying to use PSRemoting to ... is not an option for me. The version of dcu-cli.exe I am using is 3.1. For right now I just want to capture the output of the /version parameter. Running the following command from PowerShell on my local machine produces the following ... More on stackoverflow.com
🌐 stackoverflow.com
cmd - Using dcu-cli.exe to Install Dell Updates on Remote System - Stack Overflow
I found that I like the command line "Dell Command | Update" tool called dcu-cli.exe. I can run it in a remote session, run CMD as admin, pushd to the directory with it and its dependencies, and it runs great. But, but want to be able to do this with psexec.exe, since PowerShell remoting is ... More on stackoverflow.com
🌐 stackoverflow.com
🌐
GARYTOWN
garytown.com › dell-command-update-install-manage-via-powershell
Dell Command Update – Install & Manage via PowerShell – GARYTOWN ConfigMgr Blog
I think I fixed the issue by changing “If ($DCUVersionInstalled -ne $false){[Version]$CurrentVersion = $DCUVersionInstalled.Version}” to “If ($DCUVersionInstalled -ne $false){[Version]$CurrentVersion = [Version]$DCUVersionInstalled}” Now the function does not attempt to install DCU since the currently installed version if greater than the script detected available version from Dell. The CurrentVersion variable was now set to version value 5.4.0 after the fix. I was running the functions inside of PowerShell ISE if that makes any difference.
🌐
Blogger
mickitblog.blogspot.com › 2016 › 04 › using-powershell-to-control-dell.html
Mick's IT Blogs: Using PowerShell to control Dell Command | Update for drivers and BIOS updates
If option 3 is left blank, it runs the dcu-cli.exe to update all Dell applications, BIOS, and drivers. I know that if you are going to flash the BIOS, the BIOS password is then cleared, but I figured I would add this feature just if you wanted to make sure it was done.
🌐
Automox
community.automox.com › community hub › forum › automox worklets › find & share worklets › basic dell command update worklet
Basic Dell Command Update Worklet | Community
November 29, 2023 - $software = & "$env:SystemRoot\sysnative\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -NonInteractive -Command $scriptblock ... $results = Start-Process -FilePath "C:\Program Files\Dell\CommandUpdate\dcu-cli.exe" -ArgumentList "/configure -$Arg" -Wait | Out-Null
🌐
Stack Overflow
stackoverflow.com › questions › 71876484 › how-to-run-command-line-or-powershell-script-if-file-could-exist-in-two-location
How to run command line or PowerShell script if file could exist in two locations? - Stack Overflow
$possiblePaths = "$env:ProgramFiles\Dell\CommandUpdate\dcu-cli.exe", "${env:ProgramFiles(x86)}\Dell\CommandUpdate\dcu-cli.exe" $correctPath = foreach( $path in $possiblePaths ) { if( Test-Path -PathType Leaf $path ) { $path break } } if( !$correctPath ) { throw "Could not find dcu-cli.exe at any of the following paths: $(@( $possiblePaths ) -join ', ')" } # Execute found binary & $correctPath /configure -updatetype='bios,firmware,driver,application,utility,others'
🌐
Aaronjstevenson
scripts.aaronjstevenson.com › device-management › updates › dell-command-update
Dell Command Update | Shared Script Library
July 11, 2025 - PowerShell script to silently install and run Dell Command Update (DCU). Dev Insight: This script was originally written to make sure devices deployed during our MDT process had the latest drivers/firmware from Dell, but it can also be used to update Dell devices already deployed via your RMM of choice. This script downloads and installs the latest version of Dell Command Update (DCU) if not already installed...
Find elsewhere
🌐
Blue929
blog.blue929.com › 2026 › 02 › 13 › powershell-script-dell-command-update
Powershell Script – Dell Command Update
February 13, 2026 - ############ Silent update ############ # Execute DCU-CLI.exe with the following parameters to trigger system update # Machine must be connected to AC power due perform BIOS update $DCU_Classic = Test-path "C:\Program Files (x86)\Dell\CommandUpdate\dcu-cli.exe" $DCU_Universal = Test-path "C:\Program Files\Dell\CommandUpdate\dcu-cli.exe" $command = "/applyupdates -updatetype=bios,firmware,driver,application -reboot=disable -forceUpdate=enable -outputlog=c:\temp\DCULog-EXE-BIOS.log " if($DCU_Classic){ Write-Output "#### Executing Dell command update classic.....
🌐
Stack Overflow
stackoverflow.com › questions › 60307898 › using-psremoting-to-install-dell-updates-using-dcu-cli-exe
powershell - Using PSRemoting to Install Dell Updates using dcu-cli.exe - Stack Overflow
Breaking the dcu-cli invocation into two separate steps works (cd ..., then .\dcu-cli) I am logged in to my workstation as a user with local admin rights on the remote computer. $pcname="ss-frontdesk" $exePath="\program files\dell\commandupdate" invoke-command -computername $pcname {cd "$using:exePath"; .\dcu-cli /applyUpdates -reboot=enable}
🌐
LinkedIn
linkedin.com › pulse › powershell-automation-install-configure-execute-dell-command-webber
PowerShell Automation: Install, Configure, and Execute Dell Command Update
April 15, 2023 - Here the call operator, &, is used to run the dcu-cli.exe executable, which is used to run DCU commands.
🌐
GitHub
github.com › ajh0912 › Useful-PowerShell › blob › main › Get-DellUpdates.ps1
Useful-PowerShell/Get-DellUpdates.ps1 at main · ajh0912/Useful-PowerShell
$dcuExePath = Join-Path -Path $programFiles -ChildPath 'Dell\CommandUpdate\dcu-cli.exe' # The -report argument of 'dcu-cli.exe /scan' is hard coded to not allow C:\Windows\Temp · # So unfortunately $env:TEMP does not work when running as NT AUTHORITY\SYSTEM, instead we'll use this directory ·
Author   ajh0912
🌐
Cyberdrain
cyberdrain.com › monitoring-with-powershell-monitoring-dell-device-updates
Monitoring with PowerShell: Monitoring Dell device updates
$DownloadLocation = "$($Env:ProgramFiles)\DCU" Start-Process "$($DownloadLocation)\DCU-CLI.exe" -Wait
🌐
Adam the Automator
adamtheautomator.com › dell-command-update
Master Dell Command Update and Keep Your Dell Apps Current
February 16, 2024 - dcu-cli.exe/<command> -option1=value1 -option2=value2 -option3=value3... To utilize the Dell Command Update CLI effectively: 1. Open the command prompt or PowerShell as an administrator.
🌐
Automox
community.automox.com › community hub › forum › automox worklets › find & share worklets › worklet - dell command update with output showing what updates installed
Worklet - Dell Command Update with Output Showing What Updates Installed | Community
May 12, 2021 - & 'C:\Program Files\Dell\CommandUpdate\dcu-cli.exe' /configure -exportSettings=C:\temp ... Sorry i am very new to powershell and am working through your script, so i apologize.
🌐
GitHub
github.com › PowershellBacon › Dell-Driver-Updates › blob › master › Update-Dell-Drivers.ps1
Dell-Driver-Updates/Update-Dell-Drivers.ps1 at master · PowershellBacon/Dell-Driver-Updates
Start-Process -FilePath .\cctk.exe -ArgumentList "--setuppwd= --valsetuppwd=YOURCURRENTPASSWORD" -Wait -WindowStyle Hidden ... Start-process -FilePath ".\dcu-cli.exe" -ArgumentList "/forceupdate $release" -Wait -WindowStyle Hidden
Author   PowershellBacon
🌐
Reddit
reddit.com › r/powershell › [deleted by user]
[deleted by user] : r/PowerShell
September 4, 2020 - I seem to recall some occasional weirdness with PS passing single-quotes as part of commands to command line executables... ... Following up to this - I did correct the space at the end with no effect. ... So I use this to update drivers FROM sccm as a package, you can see it here https://github.com/PowershellBacon/Dell-Driver-Updates-PSADTK. What you might want to try is this. Start-Process "C:\Program Files (x86)\Dell\CommandUpdate\dcu-cli.exe" -ArgumentList "/log \\pathtologs\logs /import /policy ""C:\Program Files (x86)\Dell\CommandUpdate\policy.xml"""
🌐
Blogger
mickitblog.blogspot.com › 2017 › 02 › automated-dell-command-update.html
Mick's IT Blogs: Automated Dell Command Update
February 6, 2017 - #> [CmdletBinding()][OutputType([string])] param () $OSArchitecture = (Get-WmiObject -Class Win32_OperatingSystem | Select-Object OSArchitecture).OSArchitecture Return $OSArchitecture #Returns 32-bit or 64-bit } function Get-DellCommandUpdateLocation { <# .SYNOPSIS Find dcu-cli.exe .DESCRIPTION Locate dcu-cli.exe as it may reside in %PROGRAMFILES% or %PROGRAMFILES(X86)% #> [CmdletBinding()][OutputType([string])] param () $Architecture = Get-Architecture If ($Architecture -eq "32-bit") { $File = Get-ChildItem -Path $env:ProgramFiles -Filter "dcu-cli.exe" -ErrorAction SilentlyContinue -Recurse }
🌐
Reddit
reddit.com › r/powershell › unable to run cli utility (dcu-cli from dell) via a remote session
r/PowerShell on Reddit: Unable to run CLI utility (dcu-cli from Dell) via a Remote session
June 10, 2019 -

Hi all,

Very much a Powershell n00b, but I'm hoping someone can guide me in the right direction.

I'm wanting to utilize "Dell Command Utility" - or more importantly - its CLI part in an interactive script. (It allows you to automatically download and update a Dell PC's drivers and BIOS). I believe the issue I have is that the utility doesn't like to run 'headless' through a remote PS-Session. But I want to see the progress (as it includes download information, what's out of date, etc.).

It works locally on the machine in a tell-tale way:

  • If you run it in an elevated Command Prompt - it runs in-situ without any issue.

  • If you run in in an elevated, but local, Powershell window (directly calling the .exe or a Start-Process), it will open it's own "command-prompt-esque black and grey" CLI window.

  • If you call it in Powershell via cmd /c - it will open and run in-situ in that Powershell window - but again, only locally.

As soon as you run it in a remote session, you're greeted with:

.\dcu-cli.exe :
    + CategoryInfo          : NotSpecified: (:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Unhandled Exception:
System.IO.IOException: The handle is invalid.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.Console.GetBufferInfo(Boolean throwOnNoConsole, Boolean& succeeded)
   at Dell.CommandUpdate.CLI.Program.ShowWorking()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback,
Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

no matter what I've tried (so far).

So my question is - can I enforce the program to stay within the Powershell shell and stop trying to break out into another? I think this is probably the issue (please correct me if I'm wrong!) but that's way out of my depth of PS understanding.

Than you in advance for any guidance given.