maurice-daly / DriverAutomationTool

Home of the Driver Automation Tool
https://www.msendpointmgr.com
BSD 2-Clause "Simplified" License
381 stars 114 forks source link

Dell Drivers not downloading - error received from dl.dell.com #497

Open ghost opened 10 months ago

ghost commented 10 months ago

Hey Guys,

Seems like the download URL in the driver automation tool is incorrect for this model. The URL tries to download from is "https://dl.dell.com/FOLDER10243247M/1/Latitude-3440-YTT4Y-Win10_1.0_A02.exe", whereas if you navigate through Dell's site to the download link it is actually "https://downloads.dell.com/FOLDER10243247M/1/Latitude-3440-YTT4Y_Win10_1.0_A02.exe". Navigating to the former returns a 404 error which I suspect is what the tool gets stuck on.

image

KissmanCZ commented 10 months ago

Exactly same thing here.... I think you should change title of the issue. I am trying 7440 today, working link is: https://downloads.dell.com/FOLDER10367594M/1/Latitude-7440-THPH0_Win10_1.0_A01.exe

image image
bknickelbine commented 10 months ago

I have been receiving this yesterday and today. I took a stab at updating the OEMLinks to point to downloads.dell.com instead of dl.dell.com, but DriverAutomationTool started getting some weird divide by zero errors.

alexbrint commented 10 months ago

We also started seeing this yesterday. A little playing on my co-workers part showed that using requesting with no useragent gets access denied, but adding a useragent to the request (such as Chrome) gets the download successfully. We suspect that Start-BitsTransfer has the same lack of useragent, thus no download.

Weird that Dell would change this download site to require a useragent on requests.

alexbrint commented 10 months ago

@iwontlistentomatt also recommend changing title to "Dell Drivers not downloading - error received from dl.dell.com"

Additional info to support the dell change:

PS C:\files> Invoke-WebRequest -Uri http://dl.dell.com/catalog/DriverPackCatalog.cab -OutFile "C:\Files\DriverPackCatalog.cab" -Verbose
VERBOSE: GET http://dl.dell.com/catalog/DriverPackCatalog.cab with 0-byte payload
Invoke-WebRequest : Access Denied
You don't have permission to access http://dl.dell.com/catalog/DriverPackCatalog.cab on this server.
Reference #18.e8c11cc.1692746797.6c901e3
At line:1 char:1
+ Invoke-WebRequest -Uri "http://dl.dell.com/catalog/DriverPackCatalog. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

PS C:\files> Invoke-WebRequest -Uri http://dl.dell.com/catalog/DriverPackCatalog.cab -OutFile "C:\Files\DriverPackCatalog.cab" -UserAgent "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" -Verbose
VERBOSE: GET http://dl.dell.com/catalog/DriverPackCatalog.cab with 0-byte payload
VERBOSE: received 290279-byte response of content type application/vnd.ms-cab-compressed
sodafogboots commented 10 months ago

changing "dl" to "downloads" in the oemlinks worked for me just now.

KissmanCZ commented 10 months ago

changing "dl" to "downloads" in the oemlinks worked for me just now.

this is working for me too :P thank you, I was initially started searching in the script itself, where the logic for switching between dl and downloads is.

bknickelbine commented 10 months ago

changing "dl" to "downloads" in the oemlinks worked for me just now.

this is working for me too :P thank you, I was initially started searching in the script itself, where the logic for switching between dl and downloads is.

Would you mind sharing the Dell portion of your OEMLinks? I tried switching the links earlier and kept getting divide by zero errors when DriverAutomationTool went to download the file.

alexbrint commented 10 months ago

Here's mine: confirmed working to download two models this afternoon.

    <Manufacturer Name="Dell" >
        <Link Type="DownloadList" URL="https://downloads.dell.com/published/Pages/index.html"></Link>
        <Link Type="DownloadBase" URL="https://downloads.dell.com"></Link>
        <Link Type="DriversList" URL="https://en.community.dell.com/techcenter/enterprise-client/w/wiki/2065.dell-command-deploy-driver-packs-for-enterprise-client-os-deployment"></Link>
        <Link Type="BaseURL" URL="https://en.community.dell.com"></Link>
        <Link Type="BIOSUtility" URL="https://downloads.dell.com/FOLDER08405216M/1/Ver3.3.16.zip"></Link>
        <Link Type="XMLCabinetSource" URL="https://downloads.dell.com/catalog/DriverPackCatalog.cab"></Link>
        <Link Type="CatalogSource" URL="https://downloads.dell.com/catalog/CatalogPC.cab"></Link>
    </Manufacturer>
Latiron commented 10 months ago

Here's mine: confirmed working to download two models this afternoon.

  <Manufacturer Name="Dell" >
      <Link Type="DownloadList" URL="https://downloads.dell.com/published/Pages/index.html"></Link>
      <Link Type="DownloadBase" URL="https://downloads.dell.com"></Link>
      <Link Type="DriversList" URL="https://en.community.dell.com/techcenter/enterprise-client/w/wiki/2065.dell-command-deploy-driver-packs-for-enterprise-client-os-deployment"></Link>
      <Link Type="BaseURL" URL="https://en.community.dell.com"></Link>
      <Link Type="BIOSUtility" URL="https://downloads.dell.com/FOLDER08405216M/1/Ver3.3.16.zip"></Link>
      <Link Type="XMLCabinetSource" URL="https://downloads.dell.com/catalog/DriverPackCatalog.cab"></Link>
      <Link Type="CatalogSource" URL="https://downloads.dell.com/catalog/CatalogPC.cab"></Link>
  </Manufacturer>

I did a copy and paste of what @alexbrint posted, into and over the code in my oemlinks.xml file and I can confirm that it works for me as well.

@maurice-daly - One more issue to get fixed. Any idea on when you might be working on 7.2.3?

bknickelbine commented 10 months ago

I was able to figure out what the issue was with the divide by zero errors, and it was (mostly) unrelated to the download link. When I was troubleshooting the downloads before, I had tried some manual BITS transfers and ones from modifying the PS1 file. Those piled up and corrupted, and further troubleshooting revealed that DriverAutomationTool was trying to do the division on an array of objects instead of a single BITS transfer. Once I rebooted and ran bitsadmin /reset /allusers the issue cleared up.

For posterity, the lines of code throwing the error in question were around 15,266. I added the following code, and commented out all of the $global:WriteLogEntry lines that did division, to help narrow down the zero division being on an array.

if ($BitsJob.BytesTotal -eq 0) {
    global:Write-LogEntry -Value "- BitsTransfer: BytesTotal is zero, cannot calculate percentage" -Severity 2
}
elseif ($BitsJob.BytesTotal -eq $null -or $BitsJob.BytesTransferred -eq $null) {
    global:Write-LogEntry -Value "- BitsTransfer: BytesTotal or BytesTransferred is null, cannot calculate percentage" -Severity 2
}
elseif ($BitsJob.BytesTotal -is [array] -or $BitsJob.BytesTransferred -is [array]) {
    global:Write-LogEntry -Value "- BitsTransfer: BytesTotal or BytesTransferred returned multiple values, cannot calculate percentage" -Severity 2
}
else {
    $percentComplete = [int](($BitsJob.BytesTransferred * 100) / $BitsJob.BytesTotal)
}
archa3us commented 10 months ago

changing "dl" to "downloads" in the oemlinks worked for me just now.

Thanks for this. Fixed it for us as well!