Dell Driver Pack Catalog

Dell has recently re-released their Driver Pack Catalog, and while looking saw an excellent script by Dustin Hedges that shows how to parse the XML Catalog and download some packages. I wanted to enhance the experience for MDT LiteTouch, so I wrote some scripts.

Install-DellWinPEDriverCatalog.ps1

The first script is designed for downloading and installing the correct Dell WinPE driver pack to your MDT Litetouch Environment.

  • The script will automatically determine your local MDT LiteTouch Deployment share and connect to it. If there is more than one share in your MDT Deployment Console, then the script will prompt you for which one to use.
  • The script will automatically download, extract and parse the Dell Driver Pack Catalog.
  • The script will automatically search your local host for the WAIK or ADK, and download the corresponding Dell WinPE Driver Pack.
  • The Script will automatically extract the Dell WinPE DriverPack and import the drivers into the MDT Deployment Share identified above.
  • Finally the script automatically create a Selection Profile for the drivers imported, and assign your Deployment share to build WinPE images with these drivers.

For most IT Pros this is a silent and automated process. And if you are just starting out with WinPE Drivers, this is a great way to setup your environment.

If you would like to see this script in action, I have recorded a video that shows how it works:

Download: Install-DellWinPEDriverCatalog.ps1

Install-DellDriverCatalog.ps1

The second script is designed for downloading and installing the Dell driver pack for specific makes and models to your MDT LiteTouch environment.

  • The script will automatically determine your local MDT LiteTouch Deployment share and connect to it. If there is more than one share in your MDT Deployment Console, then the script will prompt you for which one to use.
  • The script will automatically download, extract and parse the Dell Driver Pack Catalog.
  • The script will display a list of Driver Packs available from Dell (using out-gridview), allowing you to select which packs to install.
  • The Script will automatically extract each selected Dell DriverPack(s) and import the drivers into the MDT Deployment Share identified above.
  • Finally the script will import each driver pack in a %Make%\%Model% folder hierarchy allowing for the Total Control method of driver management (Thanks Johan).

Here is an example of what the package list looks like while running the script:
delllist

Read the notes at the top of the script to ensure you are following the total control method of drivers. Selection Profile must be set to “Nothing” and you should have a step in your task sequence that contains the one of the following (choose the correct one):

DriverGroup001=Windows 7 x86\%Make%\%Model%
DriverGroup001=Windows 7 x64\%Make%\%Model%
DriverGroup001=Windows 8.1 x86\%Make%\%Model%
DriverGroup001=Windows 8.1 x64\%Make%\%Model%

For most IT Pros this is a quick way to import drivers based on Make\Model into your MDT Litetouch Environment, just select the packages you want from the import page and GO!

If you would like to see this script in action, I have recorded a video that shows how it works:

Download: Install-DellDriverCatalog.ps1

Notes

  • Sadly I don’t have a lot of Dell machines in my home lab (only one), so I haven’t done nearly enough testing with makes and models, if you have any problems, send me a bdd.log and I’ll look at it.
  • I removed some OS types from the script:
    • XP is no longer supported
    • Windows 8.0 is superseded by Windows 8.1 (free upgrade)
    • Vista is well… yuck.
  • The Dell driver catalog doesn’t support a 1:1 mapping for each platform to the Makes/Models stored in the firmware/BIOS (example: R3PXF J5VX9 VH2G7), so the script only displays drivers that I felt confident it could re-construct the values from Win32_ComputerSystem. No Tablets.
  • It should be possible to modify the script to also import drivers directly into SCCM, if I get enough feedback, I may do that as well.

Update: 9/15/2016

I have updated the code to handle instances where the driver contains both x86 and x64 drivers.

Links have been updated:

https://1drv.ms/u/s!AplqNBQ2sAdUiOpG_sqeDIQpoX4PiQ

https://1drv.ms/u/s!AplqNBQ2sAdUip4dnfwMUGpRW0QJ9A

Advertisements

35 thoughts on “Dell Driver Pack Catalog

  1. Thanks for the script!

    I had trouble with it not seeming to build out x64 drivers and dumping all drivers in to the x86 folder. I think this is because of this line:

    $OSFolder = $Package.SupportedOperatingSystems.OperatingSystem.osCode | Select-object -first 1 | %{ $SupportedOSes.Item( $_ ) }

    I’m assuming we want to iterate through the OSCodes, the way it’s written will only return the first value every time. I rewrote the section as:

    $osCodes = @($Package.SupportedOperatingSystems.OperatingSystem.osCode)
    foreach ($osCode in $osCodes)
    {

    $OSFolder = $SupportedOSes.Item( $osCode )
    $Platform = $OSFolder.length - 3 | %{ $OSFolder.substring( $_ ) }
    $PackageModel = $Package.SupportedSystems.Brand | select-object -first 1 | %{ $_.Display.'#cdata-section'.Trim() + " " + $_.Model.Display.'#cdata-section'.Trim() }
    $DriverPath = "Out-of-Box Drivers\$OSFolder\Dell Inc.\$PackageModel"
    $OSFolder, "\$OSFolder\Dell Inc.", "$OSFolder\Dell Inc.\$PackageModel" | %{ new-DirectorySafe -path "DS001:\Out-of-Box Drivers\$_" }
    foreach ( $Source in "$DestFolder\*\*\$Platform","$DestFolder\*\$Platform" | get-childitem )
    {
    write-Verbose "Import $Platform Dell Driver $($Source.FullName) for platform SrcPath DS001:\$DriverPath"
    Import-MDTDriver -path "DS001:\$DriverPath" -SourcePath $Source.FullName -ImportDuplicates:$ImportDuplicates
    }

    }

      • I just noticed that it’s not listing any of the AIO (All-in-One) versions of a model. Are they purposely excluded?
        Also to filter out tablets, change line 88 to:
        $SupportedList = $DellDriverCatalog.DriverPackManifest.DriverPackage | ?{ $_.SupportedSystems.Brand.Prefix -ne “90” } # Tablets not supported (Make Model names can’t be regenerated).

  2. Yes, as mentioned at the end of the article above, not all types are supported, this is by design. If Dell starts writing the full BIOS “Model” in the catalog, I’ll add that back in.

  3. The OptiPlex 760 throws the error “did not get Driver Package” when I tried to get the Windows 7 drivers. I have an engineer contact at Dell I could ask if they or someone else can update the catalog with the full BIOS model. It’s worth a shot.

    • The folks at Dell said you all talked about it at TechEd and it’s slated for implementation. I assume they’ll let you know before me, but they did say they’d let me know too. Either way, your script helps out but I have noticed it’s very slow during the download process as compared to manually downloading the cab files.

    • Weird, when I first ran it I had about 10 systems selected and it took about 18 hrs to complete. Selecting a single system takes a while too, slow enough that I see it process in the tens of kb. Even the cabs that were only around 270mb took much longer than they should have. I’m just opening an administrative command window and running the power shell script. I already have most of the drivers I need now. For what it’s worth this is on server 2013R2

  4. I had created something a while back before the catalog existed that scraped the Dell site in order to build my own catalog. It worked, but never had it cleaned up enough to post and then the driver catalog was released. Mine was more focused on keeping an existing installation up-to-date. Seeing what you’ve done here, is motivating me to go back and revisit what I had been working on. Thanks for sharing this.

      • Hi Keith,

        Your script is really a time saver when it comes to driver packages.
        I do have on question. I can’t seem to get it t work anymore.

        It has worked fine for months but nowadays it just stops.

        I can execute the script but after picking the deployment share, the script just stops.

        Do you know what that could be? Is there some temp files i have to clear for it to initiate again?

        Thank you.

  5. Pingback: New Tool: Chocolatey Application Wrapper for MDT | Keith's Consulting Blog

  6. Pingback: Updated Install-DellDriverCatalog.ps1 | Keith's Consulting Blog

  7. Pingback: Uncomplicated Solutions Of kmspico office 2013 Simplified - Softwarefullcrack.com | Free Download Software Full

  8. cheers for script keith, i’m getting a “exception calling (“downloadfile” with “2” argument(s): “the remote server returned an error: (407) proxy authentication required.”

  9. Thanks for the creating scripts – are they still available? When I attempt to download Install-DellDriverCatalog.ps1, OneDrive says, “This item might not exist or is no longer available.”

    Thanks!

  10. It won’t do batches. It always stops after it installs the 1st machine, one OS. I had it set to install drivers for both 7010 and 7020 OptiPlex models, with all 3 OSes…Win 7, Win 8.1 and Win 10. It stopped after installing the 7010 model Win 10 drivers only. I had to re-run it, telling it 7010 model with Win 7 OS…it found the previously downloaded CAB and installed it. Then I re-ran it to install the drivers for the 7010 for Win 8.1 it had previously downloaded. So it still saves some time, but it doesn’t take a full list of systems and OSes and complete them.

    • I’m seeing this as well, though the problem I have is if I do any filter/criteria to narrow it down, the script throws an error for “Did not get driver package” with the earlier message referencing this error:
      Exception calling “DownloadFile” with “2” argument(s): “An exception occurred during a WebClient request.”

      I can put the full error in, but I thought I’d ask if anyone else saw this first.

      I’m new to this whole realm of MDT and it would be lovely to get this working instead of downloading the CABs manually.

    • Yes, only install the driver package for x64 versions of Windows.

      Select the “Add Criteria” button at the top, and check the “OS” field, and press “OK”.
      In the new edit box at the top of the screen add “x64” the list should only contain packages that are supported for x64.
      Additionally you can add “Windows 10 x64” in the “filter” box at the top of the screen to filter by OS.

  11. Keith,

    Thanks for the quick reply. I tried that, but most if not all of the packages that I need support both x64 and x86. If I choose one of those both x86 and x64 drivers are still installed.

    Even with that minor inconvenience I’m glad I ran across your script. Thank you for sharing!

    Andy

  12. Thanks for the quick reply. I tried your suggestion, but most of the packages that I need have both x86 and x64 drivers.

    This is a very minor inconvenience though when I compare my driver management today (with your script) to my driver management yesterday (without your script.) Thank you for sharing!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s