Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot Download any HP Driver FTP #454

Open
Mrgreen17 opened this issue Jan 27, 2023 · 6 comments
Open

Cannot Download any HP Driver FTP #454

Mrgreen17 opened this issue Jan 27, 2023 · 6 comments

Comments

@Mrgreen17
Copy link

i can manually download the driver packs but it is not working thru the tool.

here is just the error:

[Error] - An error occurred while attempting contact http://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/89d2/89d2_64_22H2.cab - The remote server returned an error: (404) Not Found. DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)
DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)

  • Could not download HP EliteBook 645 14 inch G9 Notebook PC BIOS update DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)

here is the full log

======== Processing HP EliteBook 645 14 inch G9 Notebook PC Downloads ======== DriverAutomationTool 1/27/2023 9:37:29 AM 9692 (0x25DC)

  • Starting Download, extract and import processes for HP model: EliteBook 645 14 inch G9 Notebook PC DriverAutomationTool 1/27/2023 9:37:29 AM 9692 (0x25DC)
  • Setting HP variables DriverAutomationTool 1/27/2023 9:37:29 AM 9692 (0x25DC)
  • Using Configuration Manager console BIOS package folder - SH1:\Package\BIOS Packages\HP DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • Using Configuration Manager console Driver package folder - SH1:\Package\Driver Packages\HP DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
    ======== HP EliteBook 645 14 inch G9 Notebook PC BIOS PROCESSING STARTED ======== DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • Attempting to find HP BIOS download DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • Checking for existing HP cabinet file platformList.cab DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • Reading HP XML from C:\Program Files\MSEndpointMgr\Driver Automation Tool\Temp\platformList.xml DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • OS pre build strip is 22H2 DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • Model is EliteBook 645 14 inch G9 Notebook PC DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • SystemID is 89d2 DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • OS is 22H2 DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • Architecture is x64 DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
  • URL is http://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/89d2/89d2_64_22H2.cab DriverAutomationTool 1/27/2023 9:37:38 AM 9692 (0x25DC)
    ======== Errors(s) Occurred ======== DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)
    [Error] - An error occurred while attempting contact http://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/89d2/89d2_64_22H2.cab - The remote server returned an error: (404) Not Found. DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)
    DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)
  • Could not download HP EliteBook 645 14 inch G9 Notebook PC BIOS update DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)
    Warning: Unable to retrieve BIOS Download URL For HP Client Model: EliteBook 645 14 inch G9 Notebook PC DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)
    ======== HP EliteBook 645 14 inch G9 Notebook PC BIOS PROCESSING FINISHED ======== DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)
    ======== Superseded BIOS Package Option Processing ======== DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)
  • Remaining models to process: 0 DriverAutomationTool 1/27/2023 9:37:39 AM 9692 (0x25DC)
@XchoK
Copy link

XchoK commented Mar 20, 2023

@Mrgreen17 I am having the same issue with HP models for the BIOS. The drivers work. Were you able to resolve this?

@stephannn
Copy link

stephannn commented Apr 5, 2023

it seems like HP changed the file URI from
http://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/89d2/89d2_64_22H2.cab
to
https://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/89d2/89d2_64_10.0.22h2.cab

the OS version was added and the H in H2 is case sensitive.

If I understand the code correctly the issue is that , same as in the Invoke Driver Script, the function Find-HPBIOS does not separate between Windows 10 and 11. Any double checking would be appreciated.


Edit:
I changed the function like that:

function Find-HPBIOS {
		param (
			[string]$Model,
			[string]$OSBuild ,
			[string]$OSVersion,
			[string]$Architecture,
			[string]$SKUValue
		)
		global:Write-LogEntry -Value "- Checking for existing HP cabinet file $HPPlatformCabFile" -Severity 1
		if ((Test-Path -Path $(Join-Path -Path $global:TempDirectory -ChildPath $HPPlatformCabFile)) -eq $false) {
			try {
				Set-Location -Path $global:TempDirectory
				# Download HP Model Details XML
				
				global:Write-LogEntry -Value "- Downloading HP XML from $HPPlatFormList" -Severity 1
				if ($global:ProxySettingsSet -eq $true) {
					Start-BitsTransfer -Source $HPPlatFormList -Destination $global:TempDirectory @global:BitsProxyOptions
				} else {
					Start-BitsTransfer -Source $HPPlatFormList -Destination $global:TempDirectory @global:BitsOptions
				}
				if ((Test-Path -Path $(Join-Path $global:TempDirectory -ChildPath $HPPlatformXMLFile)) -eq $false) {
					# Expand Cabinet File
					global:Write-LogEntry -Value "- Expanding HP cabinet file: $HPXMLFile" -Severity 1
					Expand "$global:TempDirectory\$HPPlatformCabFile" -F:* "$global:TempDirectory" -R | Out-Null
				}
			} catch {
				global:Write-ErrorOutput -Message "[Error] - $($_.Exception.Message)" -Severity 3
			}
		}
		global:Write-LogEntry -Value "- Reading HP XML from $(Join-Path -Path $global:TempDirectory -ChildPath ($HPPlatformXMLFile | Split-Path -Leaf))" -Severity 1
		$global:HPPlatformXML = (Select-Xml (Join-Path -Path $global:TempDirectory -ChildPath ($HPPlatformXMLFile | Split-Path -Leaf)) -XPath "/ImagePal").Node.Platform
		if ($global:HPPlatformXML -ne $null) {
			global:Write-LogEntry -Value "- OS pre build strip is $OSVersion" -Severity 1
			global:Write-LogEntry -Value "- Model is $Model" -Severity 1
			if ($global:SkuValue -ne $null) {
				# Windows Build Driver Switch
				switch -Wildcard ($OSVersion) {
					"*21H2"	{
						$OSVersion = "10.0.2009"
					}
					"*21H1"	{
						$OSVersion = "10.0.2009"
					}
					"*20H2"	{
						$OSVersion = "10.0.2009"
					}
					"*2004"	{
						$OSVersion = "10.0.2004"
					}
					"*1909"	{
						$OSVersion = "10.0.1909"
					}
					"*1903"	{
						$OSVersion = "10.0.1903"
					}
					"*1809"	{
						$OSVersion = "10.0.1809"
					}
					"*1803"	{
						$OSVersion = "10.0.1803"
					}
					"*1709"	{
						$OSVersion = "10.0.1709"
					}
					"*1703" {
						$OSVersion = "10.0.1703"
					}
					"*1607" {
						$OSVersion = "10.0.1607"
					}
					"*10" {
						$OSVersion = "10.0.1511"
					}
					"8.1" {
						$OSVersion = "6.3"
					}
					"*7" {
						$OSVersion = "6.1"
					}
				}
				global:Write-LogEntry -Value "- SystemID is $SKUValue" -Severity 1
				global:Write-LogEntry -Value "- OS is $OSVersion" -Severity 1
				global:Write-LogEntry -Value "- Architecture is $Architecture" -Severity 1
				$HPXMLCabinetSource = "http://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/" + $($($SKUValue.Split(",") | Select-Object -First 1) + "/" + $($SKUValue.Split(",") | Select-Object -First 1) + "_" + $($Architecture.TrimStart("x")) + "_" + [regex]::match($OSBuild,[regex]("^\d+\.\d+")).Value + "." + $OSVersion.ToLower() + ".cab")
				global:Write-LogEntry -Value "- URL is $HPXMLCabinetSource" -Severity 1
				# Try both credential and default methods
				try {
					if ($global:ProxySettingsSet -eq $true) {
						$HPModelXML = Invoke-WebRequest -Uri $HPXMLCabinetSource @global:InvokeProxyOptions
					} else {
						$HPModelXML = Invoke-WebRequest -Uri $HPXMLCabinetSource -UseBasicParsing
					}
				} catch {
					$HPDownloadError = $true
					global:Write-ErrorOutput -Message "[Error] - An error occurred while attempting contact $HPXMLCabinetSource - $($_.Exception.Message)" -Severity 2
				}
				if ($HPDownloadError -ne $true) {
					# Download HP Model Cabinet File
					try {
						if ($global:ProxySettingsSet -eq $true) {
							Start-BitsTransfer -Source $HPXMLCabinetSource -Destination $global:TempDirectory @global:BitsProxyOptions
						} else {
							Start-BitsTransfer -Source $HPXMLCabinetSource -Destination $global:TempDirectory @global:BitsOptions
						}
					} catch {
						global:Write-ErrorOutput -Message "[Error] - $($_.Exception.Message)" -Severity 3
					}
					$HPCabFile = $HPXMLCabinetSource | Split-Path -Leaf
					$HPXMLFile = $HPCabFile.Replace(".cab", ".xml")
					
					if ((Test-Path -Path $(Join-Path -Path $global:TempDirectory -ChildPath $HPCabFile)) -eq $true) {
						# Expand Cabinet File
						global:Write-LogEntry -Value "- Expanding HP SoftPaq cabinet file: $HPCabFile" -Severity 1
						Expand "$global:TempDirectory\$HPCabFile" -F:* "$global:TempDirectory" -R | Out-Null
						
						# Read HP Model XML
						global:Write-LogEntry -Value "- Reading model XML $HPXMLFile" -Severity 1
						[xml]$HPSoftPaqDetails = Get-Content -Path $(Join-Path -Path $global:TempDirectory -ChildPath $HPXMLFile) -Raw
						$HPBIOSDetails = ($HPSoftPaqDetails.ImagePal.Solutions.UpdateInfo | Where-Object {
								($_.Category -match "BIOS") -and ($_.Name -notmatch "Utilities")
							} | Sort-Object Version -Descending | Select-Object -First 1)
						global:Write-LogEntry -Value "- BIOS download URL is $($HPBIOSDetails.URL)" -Severity 1
						Return $HPBIOSDetails
					} else {
						global:Write-ErrorOutput -Message "[Error] - Failed to download $HPXMLCabinetSource" -Severity 3
					}
				} else {
					global:Write-LogEntry -Value "- Could not download HP $Model BIOS update" -Severity 1
				}
			}
		}
	}

Keep in mind that I added a variable and change the name of the $OS one. Also I had to change for the download the protocol from HTTP to HTTPS, but I guess this is because of our environment.

$HPBIOSDownload = Find-HPBIOS -Model $Model -OSBuild $OSBuild -OSVersion $OSVersion -Architecture $Architecture -SKUValue $(($global:SkuValue).Split(",") | Select-Object -First 1)

@Mrgreen17
Copy link
Author

@XchoK you are correct the drivers are working but the bios for hp models are still getting the error. I have not resolved this.

@XchoK
Copy link

XchoK commented Apr 12, 2023

@stephannn Where did you change the http to https? Thanks!

@stephannn
Copy link

@XchoK ,
I did this change here:
$BIOSDownload = "https://" + $($HPBIOSDownload.URL)
right below
# ================= HP BIOS Upgrade Download ==================

I was just too lazy to put a global variable for http or https. I also published my changes here:
#474

@korpx
Copy link

korpx commented May 31, 2024

I confirm this is still a problem for downloading HP BIOS
@maurice-daly can this be fixed in the Master branch?

The tool gives the invalid URL;
https://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/8b50/8b50_64_22H2.cab

While this appear to be the correct URL;
https://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/8b50/8b50_64_10.0.22h2.cab

Full log for HP Pro x360 435 13.3 inch G10 Notebook PC BIOS

======== HP Pro x360 435 13.3 inch G10 Notebook PC BIOS PROCESSING STARTED ======== DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)

  • Attempting to find HP BIOS download DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)
  • Checking for existing HP cabinet file platformList.cab DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)
  • Reading HP XML from C:\Program Files\MSEndpointMgr\Driver Automation Tool\Temp\platformList.xml DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)
  • OS pre build strip is 22H2 DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)
  • Model is Pro x360 435 13.3 inch G10 Notebook PC DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)
  • SystemID is 8b50 DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)
  • OS is 22H2 DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)
  • Architecture is x64 DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)
  • URL is http://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/8b50/8b50_64_22H2.cab DriverAutomationTool 2024-05-31 09:55:04 16504 (0x4078)
    ======== Error(s) Occurred ======== DriverAutomationTool 2024-05-31 09:55:05 16504 (0x4078)
    [Error] - An error occurred while attempting contact http://ftp.hp.com/pub/caps-softpaq/cmit/imagepal/ref/8b50/8b50_64_22H2.cab - The remote server returned an error: (404) Not Found. DriverAutomationTool 2024-05-31 09:55:05 16504 (0x4078)
    DriverAutomationTool 2024-05-31 09:55:05 16504 (0x4078)
  • Could not download HP Pro x360 435 13.3 inch G10 Notebook PC BIOS update DriverAutomationTool 2024-05-31 09:55:05 16504 (0x4078)
    Warning: Unable to retrieve BIOS Download URL For HP Client Model: Pro x360 435 13.3 inch G10 Notebook PC DriverAutomationTool 2024-05-31 09:55:05 16504 (0x4078)
    ======== HP Pro x360 435 13.3 inch G10 Notebook PC BIOS PROCESSING FINISHED ======== DriverAutomationTool 2024-05-31 09:55:05 16504 (0x4078)
  • Remaining models to process: 0 DriverAutomationTool 2024-05-31 09:55:05 16504 (0x4078)
    ======== Clean Up Driver Option Processing ======== DriverAutomationTool 2024-05-31 09:55:06 16504 (0x4078)
  • ConfigMgr: Removing driver download and extracted source driver files from \sdsrv002\Source$\OS\DATPkgDownload DriverAutomationTool 2024-05-31 09:55:06 16504 (0x4078)
    ======== PROCESS SUMMARY ======== DriverAutomationTool 2024-05-31 09:55:06 16504 (0x4078)
    ======== FINISHED PROCESSING ======== DriverAutomationTool 2024-05-31 09:55:06 16504 (0x4078)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants