Public/DriverPack/Get-DellDriverPack.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function Get-DellDriverPack {
    [CmdletBinding()]
    param (
        [string]$DownloadPath
    )
    #=================================================
    # Get-CatalogDellDriverPack
    #=================================================
    $Results = Get-CatalogDellDriverPack
    $Results = $Results | Where-Object {$_.SupportedSystemId -ne $null}
    $Results = $Results | Where-Object {$_.SupportedOperatingSystems -contains 'Windows 10 x64'}
    $Results = $Results | Sort-Object OSVersion -Descending | Group-Object Name | ForEach-Object {$_.Group | Select-Object -First 1}
    #=================================================
    # Download
    #=================================================
    if ($DownloadPath) {
        $Results = $Results | Out-GridView -Title 'Select one or more DriverPacks to Download' -PassThru -ErrorAction Stop
        foreach ($Item in $Results) {
            $Product = $Item.SupportedSystemId | Select-Object -First 1
            Write-Output $Product
            Write-Verbose "Saving $Product" -Verbose
            Save-MyDriverPack -Manufacturer Dell -Product $Product -DownloadPath $DownloadPath
        }
    }
    #=================================================
    # Results
    #=================================================
    $Results | Sort-Object ReleaseDate -Descending | Select-Object CatalogVersion,ReleaseDate,Name,`
    @{Name='Product';Expression={($_.SupportedSystemId)}},`
    @{Name='DriverPackUrl';Expression={($_.Url)}},FileName
    #=================================================
}