Driver Download Automation Tool

Following on from the success of the Dell, HP and Lenovo Driver Download Tools I have posted over the past couple of months here is the new multi-vendor version.

The script generates a PowerShell GUI to automate the processes of downloading, extracting and importing driver packages for all three of the previous vendors and I hope to add more with time. The initial version is labelled v2.0 as many of the features that people requested as additional extras were built into the Dell version, so it made sense to build upon that release.

The tool automates the following processes;

  1. Queries XML content from Acer, Dell, Lenovo, HP and Microsoft
  2. Provides Driver Downloads for all three
  3. Provides BIOS downloads for Dell only (at present)
  4. Creates a PowerShell Script for the BIOS update
    I have changed this slightly from the earlier Dell verison. I had requests to allow the BIOS package to retain version info, so SCCM admins could select which release to push out rather than using the latest version
  5. Create a BIOS Update Package
  6. Download Driver CAB for each model
  7. Extract the Driver CAB
  8. Import the drivers in the extracted CAB folder
  9. Create a Category based on the machine model
  10. Create a Driver Package based on the machine model and filename
  11. Imports the associated drivers into the newly created Driver Package

The script can be run against SCCM, MDT, both SCCM/MDT or as a standalone driver download utility (by popular request). I have also added notes on the individual tabs as previously people had tried specifying long UNC paths for the repositories and not the base share directory I had advised to use, causing issues with long UNC path names.

Model listings are obtained from XML feeds from the three vendors. I don’t have control over the models listed in them, however if there are models missing, let me know and I will feed it back into them for future updates.

New Features

There are a few new features in this version of the GUI script, these being;

  1. SCCM Driver Packages – Create standard or driver pacakges for your deployments
  2. Cleanup Unused Drivers – Removes drivers not associated with a driver package from your SCCM environment
  3. Remove Superseded Driver Packages – Removes driver packages which have been replaced by a more recent version

Note : Be careful when using the clean up options, as they will impact on your task sequences.

SCCM Driver Package Options
Driver Cleanup Screenshot
Superseded Driver Pack Cleanup
Example: Dell Latitude E5470 A05 and A06 listed
Post Driver Package Cleanup – A05 Removed, A06 is current

 

Microsoft TechNet Script Library Link – https://gallery.technet.microsoft.com/scriptcenter/Driver-Tool-Automate-9ddcc010

How To Run The Script

Launch the script from an administrative PowerShell window using an account with rights to your SCCM site server (if using the SCCM query option).

If you are using the tool for SCCM, the script will use the current machine name as the SCCM site server name, if this is run on a different machine delete this and type in your site server name. Please ensure that you have rights to the SCCM server and shares specified under the account you are using.

  1. Select the Deployment Platform (SCCM, MDT, Both, Download Only) and Download Type
  2. Select the Operating System and Architecture
  3. Click on the Manufacturer Selection tab
  4. Select the Makes you wish to use and click “Find Models”
  5. Select Models and click “Add To Import List”
  6. On the Import List, select the models you wish to download drivers for
  7. Click on the Driver Storage Selection tab
  8. Specify UNC paths to your Driver Repository share (used for downloads and extracts) and your Driver Package share (used for driver packages)
  9. Optionally chose one of the cleanup options in the SCCM Driver Cleanup Options tab
  10. Click on “Start Download and Import Process”
SCCM Driver Import
MDT Driver Import

Things To Note

  1. Downloads are transferred via Bits and require direct internet access or access via proxy. I have included a proxy authentication option for compatibility, however you will need to test this against your own environment and alter as required.
  2. Background jobs and multi threading are not yet in this release.
  3. Import driver jobs can take considerable time, this is the same for OEM tools but something to be aware of as the GUI remains static during this process at present. If you are downloading drivers for multiple models you might wish to run this overnight.
  4. Jobs for “Both” and “MDT” are restricted to “Drivers” only.

SCCM Job

Driver Packages – Post Script Run

sccmdriverslist

Driver Package Contents

sccmdriverslist2

MDT Job

MDT Drivers Post Script Run;

Driver Download Folders

BIOS Update & PowerShell Update Script

BIOS Folder & PowerShell Contents

 

BIOS Packages including version

Model Folder

Sub-Folders created for BIOS, Driver Cab and Extracted Drivers (Dell Revision Number)

respository1

Driver Cab Folder

respository3

 

Change Log

Version 2.0 – Initial Public Release
Version 2.1 – Bug Fixes
Version 2.2 – Changed options for SCCM driver packages – Standard and Driver packages
Version 2.3 – Dell x86 Bug Fix, Added Output for Created Packages & Errors
Version 2.4 – HP Bug Fix for models with “/” included. Note that the Z440/Z640/Z840 has issues extracting. This has been raised with HP. Text box controls locked
Version 2.5 – Re-introduced the Dell WMI call for known models as requested
Version 2.6 – Minor UI changes and MDT variable bug fix when selecting download only. Import list models will now select all models unless individual models are selected when initiating the download process.
Version 2.7 – Changes to Dell model lookup. Standard Packages will now take the following format: Drivers – %Make% %Model% – %OS% %Architecture
Version 2.8 – Added Remove Item(s) button to remove one or more models from the Import list prior to running the tool. Fixed issue with progress bar not rendering correctly. Added condition for SiteCode when checking for Dell models in WMI. Added Time Stamps next to key sections of the script.
Version 2.9 – Changed HP Model lookup branch in the HP XML to cater for models sharing the same SoftPaq driver
Version 3.0 – Inf folder name bug. Added file filter for DriverInfFiles variable collection.
Version 3.1 –  Added support for Acer and Microsoft models.
Packages can now be distributed to single/multiple distribution points or distribution point groups.
Temp location now set to SCConfigMgr_Temp folder within the running folder.
Dell Flash 64w WinPe support added. Modified BIOS upgrade script to cater for this.
EXE wrapper added.

Known Issues

  • Special model Dell systems such as ATG, XG and so on have issues obtaining the link for their BIOS download. I am working on this at present.

Support

This is a community tool and as such please by patient when sending over requests or tweets. I do try to accommodate where possible but remote support or troubleshooting sessions are not available hence the “No Support Provided” message.

Maurice Daly
Maurice has been working in the IT industry since 1999. Technology focus includes Active Directory, Group Policy, Hyper-V, Windows Deployment (SCCM & MDT) and Office 365.

Maurice is a Microsoft MVP since 2017 in the area of Enterprise Mobility

(6698)

comments
  • aimar
    Posted at 16:29 March 1, 2017
    aimar
    Reply
    Author

    Please make possible to import drivers as regural packages, not only “Driver Packages”.

  • Donovan
    Posted at 18:11 March 1, 2017
    Donovan
    Reply
    Author

    badass. just sayin

  • zackj
    Posted at 21:28 March 1, 2017
    zackj
    Reply
    Author

    very nice. when i run it the import list does not seem to populate after hitting connect to SCCM

    • Maurice Daly
      Posted at 21:32 March 1, 2017
      Maurice Daly
      Reply
      Author

      The Dell model lookup was removed in this version as it’s multi vendor. If you go to the manufacturer tab you can select Dell etc then click Find Models and add which ever models you want.

  • Andrew
    Posted at 12:15 March 2, 2017
    Andrew
    Reply
    Author

    Great tool but the Lenovo Links don’t appear to be working.

    • Maurice Daly
      Posted at 16:22 March 2, 2017
      Maurice Daly
      Reply
      Author

      Hi Andrew. They are working here ok. Are you going through a proxy or do you have direct internet access?

      • Andrew
        Posted at 10:06 March 3, 2017
        Andrew
        Reply
        Author

        Ok on a different connection it downloaded an X260 Lenovo driver for Win 7 x64. However it failed to extract and I had the following errors:

        C:windowssystem32>PowerShell.exe -ExecutionPolicy Bypass -Command “& ‘C:UsersAndrewDownloadsMicrosoftDriverDownloadTool.ps1′”
        You cannot call a method on a null-valued expression.
        At C:UsersAndrewDownloadsMicrosoftDriverDownloadTool.ps1:432 char:34
        + … ne “MDT”) { $DriverPackageRoot = ($PackagePath.Trimend(“”) + “$Make …
        + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull

        Exception calling “Substring” with “2” argument(s): “Length cannot be less than zero.
        Parameter name: length”
        At C:UsersAndrewDownloadsMicrosoftDriverDownloadTool.ps1:497 char:5
        + … $DriverPackageDir = ($DriverCab | Split-Path -Leaf).Subst …
        + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : ArgumentOutOfRangeException

        Get-Process : Cannot find a process with the name “tp_x260_w732_201601”. Verify the process name and call the cmdlet
        again.
        At C:UsersAndrewDownloadsMicrosoftDriverDownloadTool.ps1:756 char:18
        + … While (Get-Process -Name $DriverProcess)
        + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo : ObjectNotFound: (tp_x260_w732_201601:String) [Get-Process], ProcessCommandException
        + FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.Commands.GetProcessCommand

        along with popup Webpage Errors:
        (line: 2 Error: “I” is undefined),
        (Line: 2 Error: the value property “$” is null or undefined, not a function object),
        (Line: 1 Error: ‘jQuery’ is undefined)

        • Maurice Daly
          Posted at 10:25 March 3, 2017
          Maurice Daly
          Reply
          Author

          Hi Andrew, send over the log file and I’ll take a look. I’ve just tried downloading the driver and it is currently importing 127 inf files so it’s working here.

          • Andrew
            Posted at 10:32 March 3, 2017
            Andrew
            Author

            I was testing using Driver Download only. Where is the log file?

          • Maurice Daly
            Posted at 10:43 March 3, 2017
            Maurice Daly
            Author

            It should be in the temp directory of the user profile used to run the script. Labelled DeployEverythingDriverToolLog

          • Andrew
            Posted at 10:52 March 3, 2017
            Andrew
            Author

            03 March 2017 09:48:53
            Logging Running…..

            ======== Starting Download Processes ========

            Models selected: Lenovo X260
            Operating System specified: Windows 7
            Operating System architecture specified: x64

            Site Code specified:
            Respository Path specified: \xxxOSDTESTING$
            Package Path specified:

            Starting Download,Extract And Import Processes For Lenovo Model: X260

            Download Only: Retrieving SCCM Driver Pack Site For Lenovo X260
            Download Only: URL Found: https://support.lenovo.com/downloads/ds111749
            Download Only: Creating X260 download folder
            Download Only: Downloading tp_x260_w732_201601.exe driver cab file
            Download Only: Downloading from URL: https://download.lenovo.com/pccbbs/mobiles/tp_x260_w732_201601.exe
            Download Only: Downloaded 2816 kB of 187460 kB (2%). Next update in 30 seconds..
            Download Only: Downloaded 27648 kB of 187460 kB (15%). Next update in 30 seconds..
            Download Only: Downloaded 52224 kB of 187460 kB (28%). Next update in 30 seconds..
            Download Only: Downloaded 76800 kB of 187460 kB (41%). Next update in 30 seconds..
            Download Only: Downloaded 101376 kB of 187460 kB (54%). Next update in 30 seconds..
            Download Only: Downloaded 125952 kB of 187460 kB (67%). Next update in 30 seconds..
            Download Only: Downloaded 150528 kB of 187460 kB (80%). Next update in 30 seconds..
            Download Only: Downloaded 175360 kB of 187460 kB (94%). Next update in 30 seconds..
            Download Only: Driver Revision: 201601

            ==================== Download Only DRIVER EXTRACT ====================

            Download Only: Expanding Driver CAB Source File: tp_x260_w732_201601.exe
            Download Only: Driver CAB Destination Directory: \xxxOSDTESTING$LenovoX260201601-Windows7-x64
            Download Only: Waiting For Extract Process To Complete.. Next Check In 60 Seconds

            ======== Finished Processing ========

          • Maurice Daly
            Posted at 10:54 March 3, 2017
            Maurice Daly
            Author

            You could have emailed it ;-). Looking at that log the download completed and the driver file was expanded

  • Brian Shelton
    Posted at 13:40 March 4, 2017
    Brian Shelton
    Reply
    Author

    How can I manipulate this script, to import drivers into MDT model folder instead of revision folder? I currently use a task sequence variable to pulls the drivers from os/arch/make/model.

    • Maurice Daly
      Posted at 10:05 March 6, 2017
      Maurice Daly
      Reply
      Author

      Hi Brian,

      If you take a look at lines 1192-1232 you will see the section that is used to create the structure within your MDT deployment share. It would simply be a matter of rearranging the variables to suit your own naming convention.

      Maurice

  • Shelby Price
    Posted at 19:25 March 6, 2017
    Shelby Price
    Reply
    Author

    Hey Maurice,
    Looks great. Congrats on the new MVP status.

    Just an FYI, your tab order on the “Driver Storage Locations” allows me to tab over into the note section. Your note section is actually editable from within the GUI.

    Onto my actual question, the “Package Path” textbox is greyed out for me. What gives?

    Thanks,
    Shelby

  • Victor
    Posted at 13:51 March 17, 2017
    Victor
    Reply
    Author

    Hi Maurice,
    Excellent work on this script!

    One problem though, in my case it downloads the cab-file successfully, it also creates the folder structure successfully both in the driver repository and in MDT, but neither folders contain any files, so something seems to go wrong with the extraction. I tried “HP Slice” model.

    Rgds,

    • Victor
      Posted at 14:26 March 17, 2017
      Victor
      Reply
      Author

      It seems to be the same no matter which model I’m trying… But it seems to work with your old “Model”-specific scripts…

      • Maurice Daly
        Posted at 12:31 March 20, 2017
        Maurice Daly
        Reply
        Author

        Hi Victor,

        I have just ran through downloading the “HP Elite Slide” as per your query and it created the folders and package successfully. There was an issue with a large number of HP driver packages not performing a silent extract up to a couple of days ago, so you might clear out any previously download files and directories then try it again as HP have since resolved this issue. If you are still experiencing issues let me know the OS and Architecture you are using and I will attempt to replicate / recreate the issue.

        Maurice

  • D
    Posted at 01:41 March 24, 2017
    D
    Reply
    Author

    Firstly thanks for the great tool.

    Any known issues with the Lenovo side of things? Dell works fine for me but I get this from Lenovo:

    SCCM: Retrieving SCCM Driver Pack Site For Lenovo M700z
    SCCM: URL Found: http://downloads.dell.com/published/Pages/
    SCCM: Creating M700z download folder
    SCCM: Downloading badLink driver cab file
    SCCM: Downloading from URL: badLink
    SCCM: Driver Revision: badLink

    • Maurice Daly
      Posted at 21:26 March 26, 2017
      Maurice Daly
      Reply
      Author

      Hi David,

      I tried downloading the M700z drivers without issue. Perhaps you could email me the full log so I can see what was going on?.

      Maurice

  • BK
    Posted at 16:56 March 26, 2017
    BK
    Reply
    Author

    Hello! First – great tool. I was able to import a number of older Dell Laptops in my SCCM. However, newer laptops, like the Dell Latitude E5540 and E5470 all prompt errors like below when importing. Any help would be appreciated!

    New-Item : Object reference not set to an instance of an object.
    At C:\Users\********Desktop\DriverDownloadTool.ps1:874 char:12
    + New-Item -Type dir -Path $DriverPackageDest
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [New-Item], NullReferenceException
    + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShell.Commands.NewItemCommand

    WARNING: Configuration Manager cannot import the specified driver. Verify that the driver exists in the specified
    location and that the SMS Provider computer has Read permissions to the specified shared folder.
    Import-CMDriver : Configuration Manager cannot import the specified driver. Verify that the driver exists in the
    specified location and that the SMS Provider computer has Read permissions to the specified shared folder.
    At C:\Users\*********\Desktop\DriverDownloadTool.ps1:908 char:28
    + $DriverInfo = Import-CMDriver -UncFileLocation
    ($DriverINF.FullName …
    +
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidOperation: (Microsoft.Confi…rtDriverCommand:ImportDriverCommand) [Import-CMDr
    er], InvalidOperationException
    + FullyQualifiedErrorId : ImportError,Microsoft.ConfigurationManagement.Cmdlets.Osd.Commands.ImportDriverCommand

    • Maurice Daly
      Posted at 21:53 March 27, 2017
      Maurice Daly
      Reply
      Author

      I’m looking into this for you.

      • Ram
        Posted at 16:52 March 29, 2017
        Ram
        Reply
        Author

        How can I add Lenovo T430 models???

        Excellent tool – I like it.

        Thanks

        RL

        • Maurice Daly
          Posted at 08:02 April 8, 2017
          Maurice Daly
          Reply
          Author

          The Lenovo Model list is generated by Lenovo themselves in the form of an XML. I will pass your feedback for the T430 to be added.

    • Chris Lamb
      Posted at 15:54 April 7, 2017
      Chris Lamb
      Reply
      Author

      The issue has to do with the folder structure of the Dell drivers. If you browse through the imported files you will notice several directories are named with *.inf as the folder name. In the script, the Get-ChildItem command in Line 900 collects all files as well as directories named *.inf.

      When the drivers are attempted to be added, the script attempts to add the directory as a driver package. To solve the problem change line 900 to include the -File filter so only files are included in the list and the directory object themselves are excluded.

      $DriverINFFiles = Get-ChildItem -File -Path “$DriverExtractDest” -Recurse -Filter “*.inf” | Where-Object { $_.FullName -like “*$Architecture*” }

      • Maurice Daly
        Posted at 07:59 April 8, 2017
        Maurice Daly
        Reply
        Author

        Hi Chris,

        I’ve added in the fix to the latest version. Well spotted.

        Maurice

  • BK
    Posted at 22:07 March 28, 2017
    BK
    Reply
    Author

    Most excellent! Thanks so much.

    The Dell Latitude E5520 also tries to d/l the E5520M driver cab. I was able to manually download it and change the name to match the script to install. Looks like a bit of a syntax issue on Dell’s part, but not sure.

    • Maurice Daly
      Posted at 14:53 March 29, 2017
      Maurice Daly
      Reply
      Author

      I’ve made a minor change to the script that should correct this along with some other tweaks. It will be posted in the morning – version 2.7.

      • BK
        Posted at 19:59 April 4, 2017
        BK
        Reply
        Author

        Excellent! Thanks so much!

  • Lam Cake
    Posted at 15:28 March 30, 2017
    Lam Cake
    Reply
    Author

    Thanks for providing this tool. However, I am running into an issue when trying to use it. Upon running it from PS ISE (run as Admin) on our SCCM server the window loads but the “Site Code” box is empty and uneditable. Site Server populates just fine. If I click “Connect to SCCM,” I get the error “SCCM Server Specified Not Found” in the Job Process Log and the following in PS ISE:

    Test-WSMan : The WinRM client sent a request to an HTTP server and
    got a response saying the requested HTTP URL was not available. This is usually returned by a HTTP server
    that does not support the WS-Management protocol.
    At C:\DriverDownloader\DriverDownloadTool.ps1:1383 char:8
    + If ((Test-WSMan -ComputerName $SiteServer).wsmid -ne $null)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidOperation: (OC-SCCM-SRV01:String) [Test-WSMan], InvalidOperationExcepti
    on
    + FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.TestWSManCommand

    Any assistance you could provide would be greatly appreciated.

    • Maurice Daly
      Posted at 15:32 March 30, 2017
      Maurice Daly
      Reply
      Author

      Hi Lam,

      Can you confirm that PS remoting is enabled on the server and a rule for port 5985 is enabled?.

      Maurice

      • Lam Cake
        Posted at 15:38 March 30, 2017
        Lam Cake
        Reply
        Author

        We have a physical firewall for the whole campus, so Windows Firewall is disabled. I enabled PS Remoting, no change.

        • Maurice Daly
          Posted at 15:56 March 30, 2017
          Maurice Daly
          Reply
          Author

          Did you use Enable-PSRemoting -Force?

          • Lam Cake
            Posted at 16:15 March 30, 2017
            Lam Cake
            Author

            So I was able to run it successfully on a different computer. However, upon selecting the Dell checkbox and clicking “Find Models” I get the messages:

            INFO : Found 27 Known Dell Models

            followed by

            INFO: No Dell Models Found. If you are using a proxy…

            Additionally, the following is output in PowerShell:

            Start-BitsTransfer : The operation being requested was not performed because the user has not logged on to the
            network. The specified service does not exist. (Exception from HRESULT: 0x800704DD)
            At C:\Temp\DriverDownloadTool.ps1:2825 char:7
            + … Start-BitsTransfer -Source $DellXMLCabinetSource -Destina …
            + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            + CategoryInfo : NotSpecified: (:) [Start-BitsTransfer], COMException
            + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.BackgroundIntelligentTransfer.Mana
            gement.NewBitsTransferCommand

            Get-Content : Cannot find path ‘C:\Users\CLAKE-~1\AppData\Local\Temp\DriverPackCatalog.xml’ because it does not exist.
            At C:\Temp\DriverDownloadTool.ps1:2838 char:26
            + … [xml]$DellModelXML = Get-Content -Path $env:TEMP\$DellXMLFile
            + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            + CategoryInfo : ObjectNotFound: (C:\Users\CLAKE-…PackCatalog.xml:String) [Get-Content], ItemNotFoundEx
            ception
            + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

            You cannot call a method on a null-valued expression.
            At C:\Temp\DriverDownloadTool.ps1:2840 char:5
            + $DellModelXML.GetType().FullName
            + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            + CategoryInfo : InvalidOperation: (:) [], RuntimeException
            + FullyQualifiedErrorId : InvokeMethodOnNull

          • Maurice Daly
            Posted at 17:12 March 30, 2017
            Maurice Daly
            Author

            I presume you are running the account as a different user on the machine?. If so can you log on interactively on the machine and test the script?.

            In regards to the Dell and HP models not being returned, the XML’s are extracted out of a downloaded CAB file so you might want to check if there are any proxy restrictions on this, the Lenovo XML file is hosted by them.

          • Lam Cake
            Posted at 13:50 March 31, 2017
            Lam Cake
            Author

            That did it! We use standard credentials to log in with an admin login to run things as needed. Logging in as the admin account allowed everything to work, including reading the XMLs. Thanks for all your help!

  • David
    Posted at 21:52 March 30, 2017
    David
    Reply
    Author

    I am not sure if this is working or not. Example I run the task for a driver package, Dell Optiplex 3050 to be exact, the process runs but gets stuck on a certain “importing Driver INI 46 of 79”, I let this run over night knowing that this process is static and may not look like anything. I had to force quit Powershell but the driver package does show up in ConfigMgr. I am not sure if this is normal or not. Btw thanks for this tool, it will really help a lot.

    • Maurice Daly
      Posted at 15:51 March 31, 2017
      Maurice Daly
      Reply
      Author

      Hi David,

      Please let me know the OS you had selected and I will run through this to see can I replicate the issue.

      Maurice

      • David
        Posted at 15:54 March 31, 2017
        David
        Reply
        Author

        Thanks for the reply, Windows 10 x64

  • Eric Giroux
    Posted at 19:56 March 31, 2017
    Eric Giroux
    Reply
    Author

    I am excited about the prospects of this utility. I am testing it in my CM test environment which is running 1606. I am running into some issues and notice a few flaws in the UI of the tool. Would you prefer an email communication vs posting my findings here?

    • Maurice Daly
      Posted at 22:34 March 31, 2017
      Maurice Daly
      Reply
      Author

      Hi Eric

      I’ll look into the points you raised and try to add in improvements and functionality.

      Maurice

  • Trevor
    Posted at 10:08 April 5, 2017
    Trevor
    Reply
    Author

    Hi Maurice,
    Great tool, thanks for making it available to the community!

    I downloaded several Dell driver packs with it, most downloaded and imported with no issue, but on some models (for example E6420, E6430) there are multiple entries listed in the “Manufacturer Selection” tab. This appears to be for different versions, like ATG and XFR, but the tool does not distinguish between these in the list.

    Also, I had 2 models which did not download the driver cabs (E6420, E6430). From the log it seems that the URL is malformed:
    SCCM: Downloading from URL: http://downloads.dell.com/FOLDER03481138M/1/E6430-WIN7-A13-YTNXR.CAB FOLDER03479583M/1/E6430S-WIN7-A11-Y8FD3.CAB

    The E6430s model downloaded to 76%, then seemed to stop, skip the import step and move to the next model in the list:
    SCCM: Downloaded 579584 kB of 771790 kB (75%). Next update in 30 seconds..
    SCCM: Downloaded 585728 kB of 771790 kB (76%). Next update in 30 seconds..
    SCCM: Driver Revision: A11

    Starting Download,Extract And Import Processes For Dell Model: Latitude E6440

    • Maurice Daly
      Posted at 16:02 April 5, 2017
      Maurice Daly
      Reply
      Author

      Hi Trevor,

      The “special” models such as the ATG and XFR need to be worked on in an update as some have specific download pages and some do not. Unfortunately in some cases the model naming convention is not standardized, however I will add in exception rules where required. I am also working to add in another Dell XML feed for BIOS updates not currently listed in the tool and additional package checks, all of which will be in the next build in a couple of days.

      Maurice

  • Dean
    Posted at 05:42 April 6, 2017
    Dean
    Reply
    Author

    HI Maurice

    Truly next level tool this, on have one problem when I put in my server name it keeps saying sccm server specified not found – I am an admin on the box and in configMgr

    every thing else works like a charm

    • Maurice Daly
      Posted at 10:08 April 6, 2017
      Maurice Daly
      Reply
      Author

      Hi Dean,

      I presume when you say it wont connect to your server you are running the script remotely?. Can you confirm that PS remoting is enabled, use enable-psremoting -force from a administrative PS shell on your SCCM server if unsure.

      Maurice

      • dean
        Posted at 06:07 April 7, 2017
        dean
        Reply
        Author

        Hi Maurice

        Command worked Thanks a mil

  • dean
    Posted at 06:04 April 10, 2017
    dean
    Reply
    Author

    Hi Maurice

    for Lenovo models it only picks up the latest model and not the older can this be included like with the dell model.

    • Maurice Daly
      Posted at 10:16 April 10, 2017
      Maurice Daly
      Reply
      Author

      Hi Dean,

      The full list of available Lenovo SCCM driver packages / models is obtained from an XML published at their end. I will pass on this feedback though.

      Maurice

  • Adrian Moss
    Posted at 15:49 April 11, 2017
    Adrian Moss
    Reply
    Author

    Well Liked Process and Brain saver allowing more Coffee time, we have a total of 13 Dell models across 3 OS platforms using x86 and x64 on each this is going to same me whole bunch of time every quarter when we run updates against hardware.

  • BK
    Posted at 18:35 April 19, 2017
    BK
    Reply
    Author

    Hi. Ran into an issue with a few of the Dell models we use. It looks like it’s trying to download the CAB file, but never does. There is no error in the GUI, but it never downloads, extracts, and imports the drivers. Effected models are the Optiplex 9010, Optiplex 3020, and Optiplex 9020. Also, the status bar was stuck at 20% after it was finished running.

    • Maurice Daly
      Posted at 20:34 April 19, 2017
      Maurice Daly
      Reply
      Author

      I have found the issue, it applies to models with multiple sub-models, such as 9020, 9020M, 9020 AIO etc. I have just removed a wildcard on this line –

      $DriverDownload = $DellDownloadBase + “/” + ($DellModelCabFiles | Where-Object { ((($_.SupportedOperatingSystems).OperatingSystem).osCode -like “*$WindowsVersion*”) -and ($_.SupportedSystems.Brand.Model.Name -like “*$Model“) }).path

      This should resolve your issue. I have also updated the script if you need to download it again.

      Maurice

  • Jasper
    Posted at 14:20 April 21, 2017
    Jasper
    Reply
    Author

    Nice tool, I really want to use it but I receive always the same error when the script tries to import the drivers.

    New-Item : Object reference not set to an instance of an object.
    At D:\sccm_dml\tools\Driver Automation Tool\DriverDownloadTool.ps1:996 char:12
    + … New-Item -ItemType Directory -Path $DriverPackageDest
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [New-Item], NullReferenceException
    + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShell.Commands.NewItemCommand

    • Maurice Daly
      Posted at 14:57 April 21, 2017
      Maurice Daly
      Reply
      Author

      Do you have the required share/security permissions to create folders on the share specified in the package path specified?

      • Jasper
        Posted at 12:52 April 28, 2017
        Jasper
        Reply
        Author

        Yes I have. The strange thing is, the driver packages are created and do contain the drivers. With a previous version of your tool I received the same error but the driver packages were empty.

        • Maurice Daly
          Posted at 16:23 April 28, 2017
          Maurice Daly
          Reply
          Author

          Hi Jasper,

          It was due to the spaces used in the UNC paths specified, as per the instructions the intention was for only a \\SERVER\SHARE path to be used. I have just updated the script to allow for these.

          Maurice

  • Leave a Reply to Jasper
    Cancel Reply