Public/Dell.DCU/Public/Get-DellDeviceDriverPack.ps1
|
function Get-DellDeviceDriverPack { [CmdletBinding()] param ( [Parameter(Mandatory=$False)] [ValidateLength(4,4)] [string]$SystemSKUNumber, [ValidateSet('Windows10','Windows11')] [string]$OSVer ) $Manufacturer = (Get-CimInstance -ClassName Win32_ComputerSystem).Manufacturer if (!($SystemSKUNumber)) { if ($Manufacturer -notmatch "Dell"){return "This Function is only for Dell Systems, or please provide a SKU"} $SystemSKUNumber = (Get-CimInstance -ClassName Win32_ComputerSystem).SystemSKUNumber } $MoreData = Get-DellDriverPackXML $DriverPacks = $MoreData.DriverPackManifest.DriverPackage | Where-Object {$_.SupportedSystems.brand.model.systemid -eq $SystemSKUNumber} $DeviceDetails = $MoreData.DriverPackManifest.DriverPackage.SupportedSystems.brand.model | Where-Object {$_.systemid -eq $SystemSKUNumber} | Select-Object -First 1 $DriverPacksOBject = @() foreach ($DriverPack in $DriverPacks){ $URL = "http://$($MoreData.DriverPackManifest.baseLocation)/$($DriverPack.path)" $FileName = $DriverPack.path -split "/" | Select-Object -Last 1 $DeviceDriverPack = New-Object -TypeName PSObject $MetaDataVersion = $MoreData.DriverPackManifest.version $SizeinMB = [Math]::Round($DriverPack.size/1MB,2) $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "SystemID" -Value "$($DeviceDetails.systemID)" -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "Model" -Value "$($DeviceDetails.name)" -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "MetaDataVersion" -Value "$MetaDataVersion" -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "FileName" -Value "$FileName" -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "ReleaseID" -Value "$($DriverPack.releaseID)" -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "URL" -Value "$URL" -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "DateTime" -Value $([DATETIME]$DriverPack.dateTime) -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "hashMD5" -Value $($DriverPack.hashMD5) -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "SizeinMB" -Value $SizeinMB -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "OSSupported" -Value $($DriverPack.SupportedOperatingSystems.OperatingSystem.osCode) -Force $DeviceDriverPack | Add-Member -MemberType NoteProperty -Name "OsArch" -Value $($DriverPack.SupportedOperatingSystems.OperatingSystem.osArch) -Force $DriverPacksOBject += $DeviceDriverPack } if ($OSVer){ $DriverPacksOBject = $DriverPacksOBject | Where-Object {$_.OSSupported -match $OSVer} } return $DriverPacksOBject } |