Dell Command Update
I know this can auto update itself, but I would rather be able to use PDQ so that I can test before pushing out. Haven't had much luck with the application working with newer versions eg 3.0 removed cli support, 3.1 broke behind a proxy
11
Comments
I know this is an old post but I just recently started working for a company that uses PDQ Deploy. We're a Dell shop and one of the first things I wanted to do was ensure our Dell computers were up to date. I wanted to automate, as much as possible, the updating of the Bios, Firmware, and Drivers using Dell's DCU. I wrote a powershell script that takes into account everything I could think of to make this as automated and user friendly as possible.
This post assumes that you already have a PDQ Deploy package for installing the latest Dell Command Update program and focuses primarily on the actual DCU update process. I am not an expert when it comes to PowerShell, and I'm sure the code can be written better, but I was after results and this works. Here it is and I hope this helps...
#First let's check to see if the laptop is running on battery
$Bstatus = (Get-WmiObject -Class Win32_Battery –ea 0).BatteryStatus
if($Bstatus -ne 2)
{
Exit
}
else
{
#Let's make sure the folder for the logs is created
$folderName = "Temp\Dell_Logs"
$Path="C:\"+$folderName
if (!(Test-Path $Path))
{
New-Item -itemType Directory -Path C:\ -Name $FolderName
}
#Run the Dell CLI scan
& "C:\Program Files\Dell\CommandUpdate\dcu-cli.exe" /scan -silent -outputlog=c:\Temp\Dell_Logs\dcuoutput.log
#Sleep for 15 seconds to allow the scan to complete
Start-Sleep -Seconds 15
#Get the value we need. 0 means do nothing and exit, anything >= to 1 installs the updates
$a = Get-Content -Path "C:\Temp\Dell_Logs\dcuoutput.log" | Select-String "Number of applicable updates for the current system configuration:"
if ($a -match ': 0 ')
{
Write-Host "No updates are required"
Exit
}
else
{
Write-Host "Updates are required"
& "C:\Program Files\Dell\CommandUpdate\dcu-cli.exe" /applyUpdates -silent -outputlog=c:\Temp\Dell_Logs\dcu_update.log
}
#Let's see if the system needs to be rebooted
$b = Get-Content -Path "C:\Temp\Dell_Logs\dcu_update.log" | Select-String "The system has been updated"
if ($b -match 'requires a reboot')
{
Write-Host "The system needs to be rebooted"
#Present the user a message box to control the reboot behavior
$ButtonType = [System.Windows.MessageBoxButton]::YesNoCancel
$MessageIcon = [System.Windows.MessageBoxImage]::Exclamation
$MessageBody = "In order to complete updates, Windows needs to restart. Click Yes to restart now or No if you plan to restart later."
$MessageTitle = "Dell Updates from IT"
$ButtonType2 = [System.Windows.MessageBoxButton]::OK
$MessageIcon2 = [System.Windows.MessageBoxImage]::Error
$MessageBody2 = "The system will not operate correctly until a restart is completed. Remember to save your work and restart!"
$MessageTitle2 = "WARNING!!"
$Choice = [System.Windows.MessageBox]::Show($MessageBody,$MessageTitle,$ButtonType,$MessageIcon)
If ($Choice –eq "No" –OR $Choice –eq "Cancel")
{
[System.Windows.MessageBox]::Show($MessageBody2,$MessageTitle2,$ButtonType2,$MessageIcon2)
} Else
{
Remove-Item -Path c:\Temp\Dell_Logs\dcu_update.log
Restart-Computer
}
}
}
With DCU 3.1 and above, the command line switches changed.
The most clear-cut way to install updates and auto-reboot is to run this remotely as command line.
"C:\Program Files\Dell\CommandUpdate\dcu-cli.exe" /applyUpdates -silent -reboot=enable
Note that depending on your install it may be under Program Files(x86) instead.
There's a ton of other switches if you'd like to use them. The most useful one would be to schedule reboots after updates are installed. See the link below.
https://www.dell.com/support/manuals/en-us/command-update/dellcommandupdate_rg/dell-command--update-cli-commands?guid=guid-92619086-5f7c-4a05-bce2-0d560c15e8ed
G'day Sarah,
We had no luck with 3.0 and 3.1, 2.4 seems to be the best version or at least that is where we have had the most luck.
Once installed its easy to execute for automated update, we just use:
Although its not needed, we include the policy step so we can fine tune what updates we want Command check/install. I would suggest checking it out if you haven't already Dell Command Update 2.4 - Policy File, as you can use this policy file to avoid Command from installing the latest versions (3.1) or avoid BIOS updates.
Hope it helps, certainly not an expert but happy to assist in anyway i can