diff --git a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerKnownBuildIssues.ps1 b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerKnownBuildIssues.ps1 index 415637e24f..bd861ed6db 100644 --- a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerKnownBuildIssues.ps1 +++ b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerKnownBuildIssues.ps1 @@ -240,9 +240,9 @@ function Invoke-AnalyzerKnownBuildIssues { } $params = @{ CurrentVersion = $currentVersion - KnownBuildIssuesToFixes = @((GetKnownIssueBuildInformation "15.2.1544.9" $null), - (GetKnownIssueBuildInformation "15.2.1258.32" $null), - (GetKnownIssueBuildInformation "15.1.2507.37", $null)) + KnownBuildIssuesToFixes = @((GetKnownIssueBuildInformation "15.2.1544.9" "15.2.1544.11"), + (GetKnownIssueBuildInformation "15.2.1258.32" "15.2.1258.34"), + (GetKnownIssueBuildInformation "15.1.2507.37", "15.1.2507.39")) InformationUrl = (GetKnownIssueInformation @infoParams) } TestForKnownBuildIssues @params diff --git a/Shared/Get-ExchangeBuildVersionInformation.ps1 b/Shared/Get-ExchangeBuildVersionInformation.ps1 index 4a9fafb8da..999d007f47 100644 --- a/Shared/Get-ExchangeBuildVersionInformation.ps1 +++ b/Shared/Get-ExchangeBuildVersionInformation.ps1 @@ -127,6 +127,7 @@ function Get-ExchangeBuildVersionInformation { $cuReleaseDate = "02/13/2024" $supportedBuildNumber = $true } + (GetBuildVersion $ex19 "CU14" -SU "Apr24HU") { $latestSUBuild = $true } (GetBuildVersion $ex19 "CU14" -SU "Mar24SU") { $latestSUBuild = $true } { $_ -lt (GetBuildVersion $ex19 "CU14") } { $cuLevel = "CU13" @@ -134,6 +135,7 @@ function Get-ExchangeBuildVersionInformation { $supportedBuildNumber = $true $orgValue = 16761 } + (GetBuildVersion $ex19 "CU13" -SU "Apr24HU") { $latestSUBuild = $true } (GetBuildVersion $ex19 "CU13" -SU "Mar24SU") { $latestSUBuild = $true } { $_ -lt (GetBuildVersion $ex19 "CU13") } { $cuLevel = "CU12" @@ -226,6 +228,7 @@ function Get-ExchangeBuildVersionInformation { $cuReleaseDate = "04/20/2022" $supportedBuildNumber = $true } + (GetBuildVersion $ex16 "CU23" -SU "Apr24HU") { $latestSUBuild = $true } (GetBuildVersion $ex16 "CU23" -SU "Mar24SU") { $latestSUBuild = $true } { $_ -lt (GetBuildVersion $ex16 "CU23") } { $cuLevel = "CU22" @@ -711,6 +714,7 @@ function GetExchangeBuildDictionary { "Oct23SU" = "15.1.2507.34" "Nov23SU" = "15.1.2507.35" "Mar24SU" = "15.1.2507.37" + "Apr24HU" = "15.1.2507.39" }) } "Exchange2019" = @{ @@ -809,9 +813,11 @@ function GetExchangeBuildDictionary { "Oct23SU" = "15.2.1258.27" "Nov23SU" = "15.2.1258.28" "Mar24SU" = "15.2.1258.32" + "Apr24HU" = "15.2.1258.34" }) "CU14" = (NewCUAndSUObject "15.2.1544.4" @{ "Mar24SU" = "15.2.1544.9" + "Apr24HU" = "15.2.1544.11" }) } } diff --git a/Shared/Tests/Get-ExchangeBuildVersionInformation.Tests.ps1 b/Shared/Tests/Get-ExchangeBuildVersionInformation.Tests.ps1 index 50d9e0f137..0500a91cbb 100644 --- a/Shared/Tests/Get-ExchangeBuildVersionInformation.Tests.ps1 +++ b/Shared/Tests/Get-ExchangeBuildVersionInformation.Tests.ps1 @@ -179,16 +179,20 @@ Describe "Testing Get-ExchangeBuildVersionInformation.ps1" { $latestSU.Supported | Should -Be $true $latestSU.LatestSU | Should -Be $true $notSecondVersionSU = $null -eq ($latestSU.FriendlyName | Select-String "\D{3}\d{2}SUv\d") + $notHotfixUpdate = $null -eq ($latestSU.FriendlyName | Select-String "\D{3}\d{2}HU") # Hotfix updates are cumulative and contain the latest security improvements if ($latest2SUs.Count -eq 2 -and - $notSecondVersionSU) { + $notSecondVersionSU -and + $notHotfixUpdate) { $latestSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[1] $latestSU.Supported | Should -Be $true $latestSU.LatestSU | Should -Be $false } elseif ($latest2SUs.Count -eq 2) { $secondSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[1] $secondSU.Supported | Should -Be $true - $latestSU.FriendlyName.Substring(0, $latestSU.FriendlyName.Length - 2) | Should -Be $secondSU.FriendlyName + if ($notHotfixUpdate) { + $latestSU.FriendlyName.Substring(0, $latestSU.FriendlyName.Length - 2) | Should -Be $secondSU.FriendlyName + } # This test could change depending on the reason for the v2 release. $secondSU.LatestSU | Should -Be $true } @@ -212,16 +216,20 @@ Describe "Testing Get-ExchangeBuildVersionInformation.ps1" { $latestSupportedSU.Supported | Should -Be $true $latestSupportedSU.LatestSU | Should -Be $true $notSecondVersionSU = $null -eq ($latestSupportedSU.FriendlyName | Select-String "\D{3}\d{2}SUv\d") + $notHotfixUpdate = $null -eq ($latestSupportedSU.FriendlyName | Select-String "\D{3}\d{2}HU") # Hotfix updates are cumulative and contain the latest security improvements if ($latestSupportedSUs.Count -eq 2 -and - $notSecondVersionSU) { + $notSecondVersionSU -and + $notHotfixUpdate) { $latestSupportedSU = Get-ExchangeBuildVersionInformation -FileVersion $latestSupportedSUs[1] $latestSupportedSU.Supported | Should -Be $true $latestSupportedSU.LatestSU | Should -Be $false } elseif ($latestSupportedSUs.Count -eq 2) { $secondSU = Get-ExchangeBuildVersionInformation -FileVersion $latestSupportedSUs[1] $secondSU.Supported | Should -Be $true - $latestSupportedSU.FriendlyName.Substring(0, $latestSupportedSU.FriendlyName.Length - 2) | Should -Be $secondSU.FriendlyName + if ($notHotfixUpdate) { + $latestSupportedSU.FriendlyName.Substring(0, $latestSupportedSU.FriendlyName.Length - 2) | Should -Be $secondSU.FriendlyName + } # This test could change depending on the reason for the v2 release. $secondSU.LatestSU | Should -Be $true } @@ -259,15 +267,19 @@ Describe "Testing Get-ExchangeBuildVersionInformation.ps1" { $latestSU.LatestSU | Should -Be $true $notSecondVersionSU = $null -eq ($latestSU.FriendlyName | Select-String "\D{3}\d{2}SUv\d") + $notHotfixUpdate = $null -eq ($latestSU.FriendlyName | Select-String "\D{3}\d{2}HU") # Hotfix updates are cumulative and contain the latest security improvements - if ($notSecondVersionSU) { + if ($notSecondVersionSU -and + $notHotfixUpdate) { $previousSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[1] $previousSU.Supported | Should -Be $true $previousSU.LatestSU | Should -Be $false } else { $previousSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[1] $previousSU.Supported | Should -Be $true - $latestSU.FriendlyName.Substring(0, $latestSU.FriendlyName.Length - 2) | Should -Be $previousSU.FriendlyName + if ($notHotfixUpdate) { + $latestSU.FriendlyName.Substring(0, $latestSU.FriendlyName.Length - 2) | Should -Be $previousSU.FriendlyName + } # This test could change depending on the reason for the v2 release. $previousSU.LatestSU | Should -Be $true }