Script: Dell Driver Management

Hi all

For anyone interested, I wanted to share a script that has been helpful to augment management of my endpoints. Full Readme has been included below along with download links to various versions. Feel free to ask questions, request changes or edit to your liking. Thanks!

Synopsis

Automates checking for or installing Dell driver, firmware and other updates available using DellCommand



Features

  • Ability to scan for available updates and generate a HTML report
  • Ability to save the HTML report to a specified directory
  • Ability to email the HTML report as an attachment to a specified address
  • Ability to install all available updates or specify to install by specific type and severity
  • HTML report includes links to Dell support site and direct file downloads for each update
  • HTML report includes ability to search, filter, or export to formats such as excel, CSV and PDF
  • Reads DellCommand.log in real-time to get accurate status and exit codes
  • Outputs all action history, console or error messages to a log file and to iTarian RMM's execution log details

Notes

  • The script, with default configuration, will only scan for updates. The features for installing updates, sending emails as well as other options can be configured via the iTarian procedure parameters or Script Configurable Variables. See below for explanation of each parameter
  • The script should be run as the LocalSystem User as it requires local admin privileges, since we are dealing with drivers and such. It will work under logged in user if said user is a local admin.
  • It is recommended to leave the option to open the HTML report automatically disabled when running as a procedure, as obviously you probably don't want it to be opened on a remote machine. The option is there if you want to run the script locally or manually on a machine
  • This is a powershell script. As such this will only work on Windows endpoints. It is untested on Powershell Core. Requires Powershell v3 or higher. Tested on Windows 10. It may work on Windows 7 but is untested
Available Versions/Downloads

Self-Executable-Demo

  • Use this if you wish to test and try this script without using it as a procedure
  • This version is only configured to scan for updates, generate a report and immediately open the report in your default browser. It otherwise cannot be configured
  • Its packaged as a self-executable for quick and easy testing and mobility
Powershell-Source-Script
  • Powershell only version, main script
Python-Source-Script
  • Python only version that is also the source code for the iTarian Procedure
iTarian-Procedure
  • Basically just the Python version exported from iTarian. Use this to quickly import into your iTarian procedures
Installation and Configuration

Installation for iTarian Procedures

  • Download the ITSM procedure
  • Within your ITSM portal, import the procedure under Configuration Templates - Procedures
  • Configure desired procedure name, alert settings..etc
  • Configure the default parameters for the procedure from the Parameters tab of the script. See Configuration Parameters below for explanations of each parameter
  • Click Save - Ready to Review - Approve to finish. Assign to a profile and optionally a schedule of your liking
  • (Recommended) Run the new procedure on a single test machine to ensure its working or configured as expected
iTarian Configuration
  • This script can be configured by editing the parameter options within the iTarian RMM procedure
Powershell Configuration
  • If you wish to use the pure Powershell shell script version, use the configuration variables located in the region Configurable Script Parameters located near the top of the script
Configuration Parameters/Variables

These parameters should be fairly self-explanatory (and include some basic comments to explain them), however below is a detailed rundown

Note: 1 = Enabled, 0 = Disabled

Dell Command Configuration

  • Install_Dell_Update_Types
    • Default: none
    • Enter update types to install if detected, comma separated.
    • Available Types you can use: bios, firmware, driver, application, others, all
    • If blank, or any value is configured that does not match available types specified above, then update type is ignored
    • Adding 'all' takes priority and will always install all updates
    • Example to install just bios and driver updates:
      • "bios,driver"
  • InstallDellCommand_Update_Severity
    • Default: none
    • Enter update severity types to install if detected, comma separated
    • Available Types you can use: security,critical,recommended,optional,all
    • Adding 'all' takes priority and will always install all updates, even if update type is configured
    • If blank, 'all' is assumed, which will install all updates regardless if update type is configured
    • Example: to install all critical and security updates
      • "security,critical"
  • Dell_Install_Reboot
    • Default: 0
    • Enables automatic reboot of system after updates are installed
  • DownloadURL_Dell
    • Default: "https://dl.dell.com/FOLDER06986472M/..._4.1.0_A00.EXE"
    • Download URL for the Dell Command installer
    • Dell Command is installed silently if not already installed
    • Any updates to Dell Command itself will show as part of application updates in the report and can be installed along with them. You can also manually update this link to download the latest version if you prefer
  • DownloadLocation_Dell
    • Default: "C:\DellCommand"
    • Working directory where the Dell Command installer file will be downloaded and executed
    • The folder is not deleted automatically, but any log or XML files will be, leaving only the Dell installer file
Report Configuration
  • Dashboard_Report
    • Default: 1
    • Enables generating an HTML Report containing all Dell Updates found
  • Open_Dashboard_Report
    • Default: 0
    • Enables immediately opening the report in the default browser after its created.
  • Save_Report_Location
    • Default: "C:\Dell Reports"
    • Directory where the HTML dashboard report should be saved.
    • If left blank, the report will be deleted after its generated or emailed
  • Email_Report
    • Default: 0
    • Enables sending the report via email. It will be attached as a HTML file
    • Requires configuring email variables if enabled
  • Email_Logs
    • Default: 0
    • Enables attaching the script log file to the email sent with the report.
    • The log file is mostly for tracking run history, actions performed, debugging, auditing or troubleshooting
    • Log file only sends if Email_Report is also enabled and configured
Email Configuration

Important!

When using as an iTarian Procedure

It is highly recommended to always use iTarian parameters to configure passwords for scripts vs adding it directly to them

When using as scripts

If you cannot use an RMM system like iTarian to pass credentials at runtime, there are alternative ways to handle this. For example, each time the script runs, it can grab the encrypted credentials from a file located in a secure share, decrypt, authenticate, then discard. This script is not configured currently to do this but I can provide a version that does if requested. Additionally, look into using secure vaults, such as the Azure Key Vault

Email Variables - Should be self-explanatory and if not, you probably shouldn’t be using this

  • SMTP_Username
  • SMTP_Password
  • SMTP_Port
  • SMTP_Server
  • SMTP_From
  • SMTP_To
  • SMTP_Subject
    • Default: "DellCommand Update Report"
    • The computer name the script is run on is always added at the end of the title.
    • Using the above default as an example, running it on a workstation named Workstation01, it would look like "DellCommand Update Report - Workstation01"
Log Configuration
  • LogFile_Directory
    • Default: "C:\Logs"
    • Directory where log file should be created
    • Feel free to change location if desired

image_7081.zip (134 KB)

EZT-DellCommand.json (91.3 KB)

EZT-DellCommand-PS.zip (13.8 KB)

EZT-DellCommand-PY.zip (14.1 KB)

Hi @eztech,

Thanks for your script request. We have asked our script developers to analyze your script and check its feasibility.

Kind Regards,
PremJK

I’m sorry I think you misunderstand, this is not a script request. This is a script I am sharing with the community if they want to use :slight_smile:

Hi @eztech,

yes, I am sorry for the misunderstanding. Thanks for sharing the script which will help our community members. We have shared it with our script developers for their reference.

Kind Regards,
PremJK