Driver Automation Tool - Automate Driver Downloads & Packaging for SCCM/MDT

The script generates a PowerShell GUI to automate the processes of downloading, extracting and importing driver packages for Dell, Lenovo, HP and Microsoft systems.

4.9 Star
46,216 times
Add to favorites
System Center
E-mail Twitter Digg Facebook
Sign in to ask a question

  • Proxy
    6 Posts | Last post Thu 3:24 PM
    • Log shows
       Proxy Server Validation 
        Connected to successfully
        Global proxy settings set for web/bits transfers
       Querying Model List
        Cannot bind parameter Proxy
        Cannot convert the System.NetWebProxy value of type System.NetWebProxy to type System.Uri
      Any suggestions? Thanks!
    • Try changing the following piece of code:
      		$global:InvokeProxyOptions = @{
      			'Proxy'		     = "$global:ProxyServer";
      			'ProxyUseDefaultCredentials' = $true
      If you could let me know how that works out.
    • Sad to say it does not work in my environment. I am getting Cannot bind parameter ProxyList. Cannot convert the System.Net.WebProxy value of type System.Net.WebProxy to type System.Uri
      For Proxy settings, I have tried both IP and FQDN of proxy and my creds as just username and domain\username but no difference . . . 
    • I have the same problem here. Where do I have to place the code from Maurice-Dalys answer?
    • hi, i had same issue, here what i did to fix it. 
      Click on Reset tool, Check box for proxy and use HTTP: (use ip addresses for proxy server without any username and password). I close the tool and relaunched it, working fine now. 
      hope this will help.
    • I had the same issue. What fixed the problem for me is to add the proxy IP into the internet settings and left the tool proxy config portion not configured. It seems in my case the tool proxy config page did not work. Hope this helps someone. Anyways, the tool is awesome thanks for making this available.
  • Problems with MS Surface Packeges
    6 Posts | Last post Wed 9:08 PM
    • There seems to be a problem regarding the import into ConfigMgr - StandrdPkg step for Surface Pro models. 
      Process Log:
      ConfigMgr: Expanding driver CAB source file: SurfacePro_Win10_18362_19.083.29712.0.msi		01.01.1601 00:00:00	0 (0x0000)
      ConfigMgr: Driver CAB destination directory: \\osl-sccm01\os Deployment\Driver Sources\Microsoft\Surface Pro 5\Windows10-1903-x64-18362		01.01.1601 00:00:00	0 (0x0000)
      ConfigMgr: Extracting Microsoft Drivers to C:\Program Files\SCConfigMgr\Driver Automation Tool\Temp\Surface Pro 5\Win10x64		01.01.1601 00:00:00	0 (0x0000)
      ConfigMgr: Waiting for extract process (Process ID: 15852) to complete. Next check in 30 seconds		01.01.1601 00:00:00	0 (0x0000)
      ConfigMgr: Microsoft Drivers source directory set to 		01.01.1601 00:00:00	0 (0x0000)
      ConfigMgr: Checking for extracted drivers		01.01.1601 00:00:00	0 (0x0000)
      ConfigMgr: Import into is ConfigMgr - Standard Pkg		01.01.1601 00:00:00	0 (0x0000)
      ConfigMgr: Driver count in path \\osl-sccm01\os Deployment\Driver Sources\Microsoft\Surface Pro 5\Windows10-1903-x64-18362 - 0 		01.01.1601 00:00:00	0 (0x0000)
      ======== DRIVER EXTRACT ISSUE DETECTED ========		01.01.1601 00:00:00	0 (0x0000)
      ConfigMgr: Issues occurred while reading extracted drivers		01.01.1601 00:00:00	0 (0x0000)
      ConfigMgr: Driver count in path \\osl-sccm01\os Deployment\Driver Sources\Microsoft\Surface Pro 5\Windows10-1903-x64-18362 - 0 		01.01.1601 00:00:00	0 (0x0000)
      Now the Temp folder is full of drivers, and I can move them manually, but the script fails. It's the "ConfigMgr: Microsoft Drivers source directory set to    " part of the log that concerns me. Do you think this is a bug or a error in configuration on my part?
    • I noticed an issue the other day as well with the surface firmware extraction.  We have minimal numbers of them so i moved on.  Would be good if they worked again.
    • Same issue here. We have quite a few surface pro's so it would be good if this one is resolved.
    • It appears that the Surface Pro 4 onward no longer use a drivers and firmware folder, they are all placed in individual folders in the SurfaceUpdate folder.
    • So does that mean the Surface Bios step is no longer needed, and you can run the entire thing off of the Driver step?
      It still doesn't fix the problem with the driver extraction in the script tho.
    • Any news on this issue?
  • Run-DriverAutomationToolSvc.ps1 is not working
    1 Posts | Last post Tue 4:46 PM
    • Hi!
      I'm considering taking use of Driver Automation Tool. I tested this in GUI mode and there everything is fine, but if I try to execute it with silent script (Run-DriverAutomationToolSvc.ps1) then I get error. Maybe you can help me what's wrong.
      PS C:\Windows\system32> C:\Program Files\SCConfigMgr\Driver Automation Tool\Run-DriverAutomationToolSvc.ps1
      attempting to read C:\Program Files\SCConfigMgr\Driver Automation Tool\Settings\DATSettings.xml 
      === SCConfigMgr Download Automation Tool - Silent Running ===
      1. Updating model list based on models found within the XML settings file
      2. Starting download and packaging phase
      You cannot call a method on a null-valued expression.
      At C:\Program Files\SCConfigMgr\Driver Automation Tool\Run-DriverAutomationToolSvc.ps1:1174 char:5
      + ...             $DriverPackageDir = ($DriverCab).Substring(0, $DriverCab. ...
  • Update drivers with latest versions
    3 Posts | Last post November 07, 2019
    • Hi
      Most hardware vendors has a utility to search online for missing drivers.
      Lenove use DynamicDriverTool.exe (
      Have you considered an option to "get latest" to be able to update the drivers just downloaded with the driver automation tool?
      example: if you download drivers to Lenovo model nnn, then there will most likely be new drives not yet included in the package. 
    • The idea of the tools is to download the later driver packager and bios available. If you want separate drivers outside of these, you can simply use the vendor tools like you stated. I've used SDM with SSM on HP and HPMIA for a long time, but it wasn't very good. Always some drivers that install but are still detected as not updated, have to manually force the inf.
    • Thnx for the Feedback. the issue is that eg. Lenove releases driver updates not yet added to the SCCM package. they do this every 'n' month, if we're lucky.
      So what im looking for is a nice way to ensure the package downloaded with the tool can be updated with the newly released drivers.
  • PRoblem with Dell Latitude 5501 driver package
    2 Posts | Last post November 07, 2019
    • Hello,
      There seems to be a problem with the Dell Latitude 5501 driver package. The download link it should in the log show 2 packages, thus I think that's why it's failing. It shoes the full download path to the first, then a space, then only the folder portion of the second one. None get downloaded.
      THank you
    • Same problem with BIOS for Dell Latitude 5500
  • Select Known Models - Query identified collections?
    1 Posts | Last post November 05, 2019
    • Awesome tool and thanks Maurice!
      Is there a way to add query selected collection to find known devices?
      Long story - I have 19 DPs many with limited storage. Currently my org will not restrict models allowed. Pretty much what each location wants to purchase (Headache for me) I have 113 unique models expanding over the 5 year replace cycle. I cannot simply choose find models and distribute the drivers out to everyone as some DPs storage will reach max. Instead i have to query each site  then select each model in the tool and distribute only to that DP.
  • Create multiple scheduled tasks / Webservice fallback
    1 Posts | Last post November 04, 2019
    • Hi all,
      first of all thanks for this great tool!
      I have two questions:
      Is it somehow possible to create more than one scheduled task with different configurations? For example to get different drivers to different distribution points.
      Is it possible to have a second web service running on another server for load balancing or as a fallback in an automated way?
  • HP Silent switches
    5 Posts | Last post November 02, 2019
    • Hi Maurice,
      First of all, I'd like to take the opportunity to thank you and your crew for this wonderful tool, thank you!
      Now to the question. When it is time for the tool to extract HP Driver/BIOS packs a window popup (Open File - Security Warning) asking me if I want to "Run" or "Cancel" the file.
      After a little bit of research I found that some of the packages needs to run with upper case letters such as, "-PDF -F...-S -E" and others need lower case letters, "-pdf -f...-s -e". Is there a way to correct this?
      I haven't tried to schedule the updates yet to see if it will download newer packages or not or if it get stuck because of that question.
      If I am unclear, please don't hesitate to let me know.
      Best regards,
    • I'll have a look into this. Thanks
    • I'm also having this problem with only HP driver packs. Has there been a resolution? As it stands, I need to babysit the import if there's a large number of models, or it'll just sit waiting for me to click "run"
      Thanks for the all the great work!
    • Hey!
      I get the same problem, i get past it by doing this:
      Start a powershell with admin rights, and run: powershell.exe -executionpolicy bypass -file C:\DriverAutomationTool\DriverAutomationTool.ps1 (change to where your files are placed).
      Hopefully you will be able to continue working until Maurice finds a fix
    • I'm still seeing this behavior as well, but only for Lenovo driver packages. The automation tool blasts right through Lenovo BIOS updates without a single prompt. I tried calling DriverAutomationTool.ps1 from PoSh with admin rights as recommended, but I still get the security popups.
      It's not a huge deal. Just wondering if anyone had found another solution.
  • Issues downloading
    1 Posts | Last post October 28, 2019
    • DAT is running on Windows Server 2012. Latest SCCM-Version 1906 with Hotfix Rollup.
      Could not downlad any Drivers and Driver-Catalogue-Sync with HP also not working:
      Start-BitsTransfer : A connection with the server could not be established
      At line:13574 char:7
      + ...             Start-BitsTransfer -Source $HPXMLCabinetSource -Destinati ...
      +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          + CategoryInfo          : InvalidOperation: (:) [Start-BitsTransfer], Exception
          + FullyQualifiedErrorId : StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.Management.NewBitsTransferCommand
      Get-Content : Cannot find path 'C:\Program Files\SCConfigMgr\Driver Automation Tool\Temp\HPClientDriverPackCatalog.xml' because it does not exist.
      At line:13592 char:31
      + ... lobal:HPModelXML = Get-Content -Path $global:TempDirectory\$HPXMLFile
      +                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          + CategoryInfo          : ObjectNotFound: (C:\Program File...PackCatalog.xml:String) [Get-Content], ItemNotFoundException
          + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
      You cannot call a method on a null-valued expression.
      At line:13594 char:5
      +                 $global:HPModelXML.GetType().FullName
      +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
          + FullyQualifiedErrorId : InvokeMethodOnNull
      Start-BitsTransfer : A connection with the server could not be established
      At line:13609 char:8
      + ...             Start-BitsTransfer -Source $HPSoftPaqCab -Destination $gl ...
      +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          + CategoryInfo          : InvalidOperation: (:) [Start-BitsTransfer], Exception
          + FullyQualifiedErrorId : StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.Management.NewBitsTransferCommand
  • Issues downloading Precision 3541
    2 Posts | Last post October 23, 2019
    • We had an issue downloading Dell Precision 3541 drivers, the reason was that the DriverPackCatalog.xml contains two driver package entries for that model. The script doesn't seem to handle this case.
      Lines 12911-12913 select the higher version of the cab file, that part works:
      ConfigMgr: Downloading 3541-win10-A03-K4P9T.CAB
      However, lines 12908-12910 return two values ("FOLDER05773745M/1/3541-win10-A02-TWG9T.CAB", "FOLDER05795699M/1/3541-win10-A03-K4P9T.CAB"), so the script tries to download the driver from an invalid URL:
      ConfigMgr: Downloading from URL: FOLDER05795699M/1/3541-win10-A03-K4P9T.CAB
      I manually removed the A02 driver package from the XML file to get it working. But I guess you could first set the $DriverCab variable and then add "-match $DriverCab" at the very end when setting the $DriverDownload variable. That way it would only return the higher version.
    • Same problem here with the Latitude 5401.
      ConfigMgr: Downloading 5401-win10-A03-2D1M7.CAB
      ConfigMgr: Downloading from URL: FOLDER05789443M/1/5401-win10-A03-2D1M7.CAB
      ConfigMgr: Reported file byte size size:
      ConfigMgr: Downloaded file byte size:  0
      ConfigMgr: 5401-win10-A03-2D1M7.CAB file download failed
1 - 10 of 544 Items