Private/Utilities/Resolve-MinimumSupportedOperatingSystem.ps1
|
function Resolve-MinimumSupportedOperatingSystem { <# .SYNOPSIS Maps Windows release labels to Graph minimum supported operating system payload keys. .PARAMETER Release The Windows release label (for example W10_22H2 or W11_24H2). .OUTPUTS hashtable #> [CmdletBinding()] [OutputType([hashtable])] param( [Parameter()] [string]$Release ) $releaseMap = @{ 'W10_1607' = 'v10_1607' 'W10_1703' = 'v10_1703' 'W10_1709' = 'v10_1709' 'W10_1803' = 'v10_1803' 'W10_1809' = 'v10_1809' 'W10_1903' = 'v10_1903' 'W10_1909' = 'v10_1909' 'W10_2004' = 'v10_2004' 'W10_20H2' = 'v10_20H2' 'W10_21H1' = 'v10_21H1' 'W10_21H2' = 'v10_21H1' 'W10_22H2' = 'v10_21H1' 'W11_21H2' = 'v10_21H1' 'W11_22H2' = 'v10_21H1' 'W11_23H2' = 'v10_21H1' 'W11_24H2' = 'v10_21H1' } $resolvedRelease = if ([string]::IsNullOrWhiteSpace($Release)) { 'W10_1607' } else { $Release } $operatingSystemKey = if ($releaseMap.ContainsKey($resolvedRelease)) { $releaseMap[$resolvedRelease] } else { 'v10_1607' } return @{ $operatingSystemKey = $true } } |