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 OverflowHad 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
You have to provide the whole path. Then it will work...
Start-Process "dcu-cli.exe <<<< here whole path of the dcu-cli application>>>...
powershell - Using PSRemoting to Install Dell Updates using dcu-cli.exe - Stack Overflow
How to run command line or PowerShell script if file could exist in two locations? - Stack Overflow
Dell Command Update in Task Sequence
Worklet - Dell Command Update with Output Showing What Updates Installed
Struggling to get DCU to run during the TS. Below is what my setup looks like (took these from someone elses post). Using DCU 5.1.0. I can briefly see the cmd window open during the TS but it quickly closes. What am I doing wrong?
Step name: Dell Driver Install (x64)
Run Command Line:
cmd.exe /c "C:\Program Files (x86)\Dell\CommandUpdate\dcu-cli.exe" /driverInstall -reboot=disable -outputLog=C:\DellDriversDuringImaging.log
Step name: Restart Computer to OS
Step name: Dell Update Install (x64)
Run Command Line:
cmd.exe /c "C:\Program Files (x86)\Dell\CommandUpdate\dcu-cli.exe" /ApplyUpdates -updatetype=BIOS,firmware,driver -reboot=disable -outputLog=C:\DellUpdatesDuringTS.log
Good evening everyone.
So, I created a powershell script to update a number of pc's (same model-dell). The issue is that when the script runs dell command update, a black cmd screen pops up on the user's display. Is there a way to prevent this popup from appearing?
This is the code I'm using atm:
# Dell Command Update
# Define paths and options for Dell Command Update
$dellCommandUpdatePath = "C:\Program Files\Dell\CommandUpdate\dcu-cli.exe"
$logFolderPathDCU = "C:\Logs\DellCommandUpdate"
I've tested this script on my desktop, and it's been running smoothly. I'm reaching out for help, not criticism, and I would really appreciate it if someone could help me find out the problems I'm having when deploying the Dell Command Update and update using SCCM. Specifically, I'm running into error messages, namely, 0x1(1) and 0x2(2).
It's worth noting that when these error messages appear, I've noticed that the Dell Command Update seems to have been installed when I check the "Add or Remove Programs" section. However, beyond this observation, it appears that nothing else is progressing. Clicking "retry" seems to restart the installation process but then stops. Any help with this matter would be highly appreciated.
# Execute the script
Start-Process -FilePath "\\server\apps\Dell-Command-Update-Windows-Universal-Application_1WR6C_WIN_5.0.0_A00.exe" -ArgumentList '/s' -Wait
# Disable the initial setup popup in the Windows Registry for Dell Command Update
New-ItemProperty -Path "HKLM:\SOFTWARE\Dell\UpdateService\Clients\CommandUpdate\Preferences\CFG" -Name "ShowSetupPopup" -PropertyType DWORD -Value 0 -Force
# Define the paths for the Dell Command Update executable and the settings XML
$DellCommandPath = "C:\Program Files\Dell\CommandUpdate"
$SettingsXmlPath = "\\server\apps\SML\5.0.0\DCUMySettings.xml"
# Run the Dell Command Update tool to import settings
Start-Process -FilePath "$DellCommandPath\dcu-cli.exe" -ArgumentList "/configure -importSettings=$SettingsXmlPath" -NoNewWindow -Wait
# Lock the Dell Command Update settings
Start-Process -FilePath "$DellCommandPath\dcu-cli.exe" -ArgumentList "/configure -lockSettings=enable" -NoNewWindow -Wait
# Scan for updates (BIOS and firmware)
Start-Process -FilePath "$DellCommandPath\dcu-cli.exe" -ArgumentList "/scan -updateType=bios,firmware" -NoNewWindow -Wait
# Disable updates notification
Start-Process -FilePath "$DellCommandPath\dcu-cli.exe" -ArgumentList "/configure -updatesNotification=disable" -NoNewWindow -Wait
# Apply updates silently, enable reboot, and log the output
$LogPath = "C:\Dell-CU-apply.log"
Start-Process -FilePath "$DellCommandPath\dcu-cli.exe" -ArgumentList "/applyUpdates -silent -reboot=disable -outputLog=$LogPath" -NoNewWindow -Wait
# Run the Dell Command Update tool to import settings
Start-Process -FilePath "$DellCommandPath\dcu-cli.exe" -ArgumentList "/configure -importSettings=$SettingsXmlPath" -NoNewWindow -Wait
# Define the paths for the Dell Command Update executable and the settings XML using registery
$process = Start-Process reg -ArgumentList "import \\server\apps\reg\5.0.0\DCU_Preferences_Value.reg" -PassThru -Wait
$process.ExitCode
# Define the paths for the Dell Command Update executable and the settings XML using registery #2
if((Test-Path -LiteralPath "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences") -ne $true) { New-Item "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences" -force -ea SilentlyContinue };
if((Test-Path -LiteralPath "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\CFG") -ne $true) { New-Item "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\CFG" -force -ea SilentlyContinue };
if((Test-Path -LiteralPath "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings") -ne $true) { New-Item "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings" -force -ea SilentlyContinue };
if((Test-Path -LiteralPath "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\AdvancedDriverRestore") -ne $true) { New-Item "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\AdvancedDriverRestore" -force -ea SilentlyContinue };
if((Test-Path -LiteralPath "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\General") -ne $true) { New-Item "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\General" -force -ea SilentlyContinue };
if((Test-Path -LiteralPath "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule") -ne $true) { New-Item "HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule" -force -ea SilentlyContinue };
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\CFG' -Name '(default)' -Value '' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\CFG' -Name 'ShowSetupPopup' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\CFG' -Name 'LockSettings' -Value 1 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings' -Name 'InstallPath' -Value 'C:\Program Files\Dell\CommandUpdate\' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings' -Name 'ProductVersion' -Value '5.0.0' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings' -Name 'AppCode' -Value 'Universal' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\AdvancedDriverRestore' -Name 'IsAdvancedDriverRestoreEnabled' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\General' -Name 'UserConsentDefault' -Value 0 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\General' -Name 'SuspendBitLocker' -Value 1 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\General' -Name 'SettingsModifiedTime' -Value '10/16/2023 9:19:49 PM' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule' -Name 'DisableNotification' -Value 1 -PropertyType DWord -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule' -Name 'ScheduleMode' -Value 'Monthly' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule' -Name 'MonthlyScheduleMode' -Value 'WeekDayOfMonth' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule' -Name 'WeekOfMonth' -Value 'last' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule' -Name 'Time' -Value '2023-10-11T23:45:00' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule' -Name 'DayOfWeek' -Value 'Sunday' -PropertyType String -Force -ea SilentlyContinue;
New-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\DELL\UpdateService\Clients\CommandUpdate\Preferences\Settings\Schedule' -Name 'DayOfMonth' -Value '28' -PropertyType String -Force -ea SilentlyContinue;Try running it this way. You should be able to see any output or error messages. I typically add to the path first rather than using & or start-process.
invoke-command mycomputer {
$env:path += ';C:\Program Files (x86)\Dell\CommandUpdate';
dcu-cli /applyUpdates -autoSuspendBitLocker=enable -outputLog=C:\Dell_Update.log }
Using start-process inside invoke-command seems pretty challenging. I can't even see the output of findstr unless I save it to a file. And if I didn't wait the output would be truncated. By default start-process runs in the background and in another window. There's a -nonewwindow option too but it doesn't help with invoke-command.
invoke-command localhost { # elevated
start-process 'findstr' '/i word c:\users\joe\file1' -wait -RedirectStandardOutput c:\users\joe\out }
@js2010, thanks for your additional help. Unfortunately this didn't helped either.
So i did some more debugging and it turns out it was a bug in the dcu-cli version running on my test machine, DOH...!!
On the test machine version 3.1.1 was running and on another machine version 4.0 was running and that worked fine via remote Powershell. So i looked for the release notes, which i found here: https://www.dell.com/support/kbdoc/000177325/dell-command-update
And as you can see in version 3.1.3 there was this fix:
A problem was solved where dcu-cli.exe was not executed in an external interactive session of PowerShell.