mirror of
https://github.com/rbalsleyMSFT/FFU.git
synced 2026-06-14 02:09:35 -06:00
Completely refactored Dell driver downloads
- Client OSes will now use CatalogIndexPC.xml to identify which ProductLine_SystemID.xml to use to identify which drivers to download. This is inline with how DCU works. - In the UI, Dell Model names now show the full product line, model number, and system ID in the model column. - There are many more models now shown due to breaking each model out by systemID (one model will have many systemIDs). - Downloads per model should be much smaller as prior code was downloading drivers for models that Dell had reused their model number (e.g. Precision/Inspiron/Latitude/Vostro 3520 would result in a very large driver download) - Dell driver downloads are best effort based on the data from the XML files. In some cases the Dell support website may show a newer driver than what is downloaded. This is rare, but in testing I've seen one or two drivers per model where the XML doesn't have what's listed on Dell's website. Again, rare, but not unexpected.
This commit is contained in:
@@ -84,8 +84,8 @@ function ConvertTo-StandardizedDriverModel {
|
||||
[psobject]$State
|
||||
)
|
||||
|
||||
$modelDisplay = $RawDriverObject.Model # Default
|
||||
$id = $RawDriverObject.Model # Default
|
||||
$modelDisplay = $RawDriverObject.Model
|
||||
$id = $RawDriverObject.Model
|
||||
$link = $null
|
||||
$productName = $null
|
||||
$machineType = $null
|
||||
@@ -96,26 +96,51 @@ function ConvertTo-StandardizedDriverModel {
|
||||
|
||||
# Lenovo specific handling
|
||||
if ($Make -eq 'Lenovo') {
|
||||
$modelDisplay = $RawDriverObject.Model
|
||||
$modelDisplay = $RawDriverObject.Model
|
||||
$productName = $RawDriverObject.ProductName
|
||||
$machineType = $RawDriverObject.MachineType
|
||||
$id = $RawDriverObject.MachineType
|
||||
$id = $RawDriverObject.MachineType
|
||||
}
|
||||
|
||||
return [PSCustomObject]@{
|
||||
# Dell-specific passthrough (needed for per-model cab workflow)
|
||||
$dellBrand = $null
|
||||
$dellModelNumber = $null
|
||||
$dellSystemId = $null
|
||||
$dellCabUrl = $null
|
||||
$dellCabRelative = $null
|
||||
if ($Make -eq 'Dell') {
|
||||
if ($RawDriverObject.PSObject.Properties['Brand']) { $dellBrand = $RawDriverObject.Brand }
|
||||
if ($RawDriverObject.PSObject.Properties['ModelNumber']) { $dellModelNumber = $RawDriverObject.ModelNumber }
|
||||
if ($RawDriverObject.PSObject.Properties['SystemId']) { $dellSystemId = $RawDriverObject.SystemId }
|
||||
if ($RawDriverObject.PSObject.Properties['CabUrl']) { $dellCabUrl = $RawDriverObject.CabUrl }
|
||||
if ($RawDriverObject.PSObject.Properties['CabRelativePath']) { $dellCabRelative = $RawDriverObject.CabRelativePath }
|
||||
}
|
||||
|
||||
$output = [PSCustomObject]@{
|
||||
IsSelected = $false
|
||||
Make = $Make
|
||||
Model = $modelDisplay
|
||||
Model = $modelDisplay
|
||||
Link = $link
|
||||
Id = $id
|
||||
ProductName = $productName
|
||||
MachineType = $machineType
|
||||
Version = "" # Placeholder
|
||||
Type = "" # Placeholder
|
||||
Size = "" # Placeholder
|
||||
Arch = "" # Placeholder
|
||||
DownloadStatus = "" # Initial download status
|
||||
Id = $id
|
||||
ProductName = $productName
|
||||
MachineType = $machineType
|
||||
Version = ""
|
||||
Type = ""
|
||||
Size = ""
|
||||
Arch = ""
|
||||
DownloadStatus = ""
|
||||
}
|
||||
|
||||
if ($Make -eq 'Dell') {
|
||||
# Add Dell-only fields so Save-DellDriversTask can use CabUrl
|
||||
$output | Add-Member -NotePropertyName Brand -NotePropertyValue $dellBrand
|
||||
$output | Add-Member -NotePropertyName ModelNumber -NotePropertyValue $dellModelNumber
|
||||
$output | Add-Member -NotePropertyName SystemId -NotePropertyValue $dellSystemId
|
||||
$output | Add-Member -NotePropertyName CabUrl -NotePropertyValue $dellCabUrl
|
||||
$output | Add-Member -NotePropertyName CabRelativePath -NotePropertyValue $dellCabRelative
|
||||
}
|
||||
|
||||
return $output
|
||||
}
|
||||
|
||||
# Function to filter the driver model list based on text input
|
||||
|
||||
Reference in New Issue
Block a user