Skip to content

Commit 96bf8db

Browse files
dpaulson45Copilot
andcommitted
Clarify Visual C++ Redistributable finding and docs (#2508)
Update docs and analyzer output to make it clear that Exchange specifically requires the Visual C++ 2012 and 2013 Redistributable, and that these are not replaced by newer versions. When a version is reported as outdated, the message now specifies which year's Redistributable needs updating. Fix double 'the' typo in documentation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 4284df0 commit 96bf8db

4 files changed

Lines changed: 9 additions & 7 deletions

File tree

Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerOsInformation.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -400,15 +400,15 @@ function Invoke-AnalyzerOsInformation {
400400
$displayWriteType2012 = "Green"
401401
$displayValue2012 = "$($installed2012.DisplayVersion) Version is current"
402402
} elseif (Test-VisualCRedistributableInstalled -Year 2012 -Installed $osInformation.VcRedistributable) {
403-
$displayValue2012 = "Redistributable ($($installed2012.DisplayVersion)) is outdated"
403+
$displayValue2012 = "Redistributable is outdated ($($installed2012.DisplayVersion)). Update the Visual C++ 2012 version."
404404
$displayWriteType2012 = "Yellow"
405405
}
406406

407407
if (Test-VisualCRedistributableUpToDate -Year 2013 -Installed $osInformation.VcRedistributable) {
408408
$displayWriteType2013 = "Green"
409409
$displayValue2013 = "$($installed2013.DisplayVersion) Version is current"
410410
} elseif (Test-VisualCRedistributableInstalled -Year 2013 -Installed $osInformation.VcRedistributable) {
411-
$displayValue2013 = "Redistributable ($($installed2013.DisplayVersion)) is outdated"
411+
$displayValue2013 = "Redistributable is outdated ($($installed2013.DisplayVersion)). Update the Visual C++ 2013 version."
412412
$displayWriteType2013 = "Yellow"
413413
}
414414
}
@@ -435,7 +435,7 @@ function Invoke-AnalyzerOsInformation {
435435
$displayWriteType2012 -eq "Yellow") {
436436

437437
$params = $baseParams + @{
438-
Details = "Note: For more information about the latest C++ Redistributable please visit: https://aka.ms/HC-LatestVC`r`n`t`tThis is not a requirement to upgrade, only a notification to bring to your attention."
438+
Details = "Note: Exchange requires the Visual C++ 2012 and 2013 Redistributable specifically. These are not replaced by newer versions.`r`n`t`tFor more information please visit: https://aka.ms/HC-LatestVC"
439439
DisplayWriteType = "Yellow"
440440
DisplayCustomTabNumber = 2
441441
}

Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2016" {
5858
TestObjectMatch "Power Plan" "Balanced --- Error"-WriteType "Red"
5959
$httpProxy = GetObject "Http Proxy Setting"
6060
$httpProxy.ProxyAddress | Should -Be "None"
61-
TestObjectMatch "Visual C++ 2012 x64" "Redistributable (11.0.50727) is outdated" -WriteType "Yellow"
62-
TestObjectMatch "Visual C++ 2013 x64" "Redistributable (12.0.21005) is outdated" -WriteType "Yellow"
61+
TestObjectMatch "Visual C++ 2012 x64" "Redistributable is outdated (11.0.50727). Update the Visual C++ 2012 version." -WriteType "Yellow"
62+
TestObjectMatch "Visual C++ 2013 x64" "Redistributable is outdated (12.0.21005). Update the Visual C++ 2013 version." -WriteType "Yellow"
6363
TestObjectMatch "Server Pending Reboot" $false
6464

6565
$pageFile = GetObject "PageFile Size 0"

Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ Describe "Testing Health Checker by Mock Data Imports" {
127127
$httpProxy = GetObject "Http Proxy Setting"
128128
$httpProxy.ProxyAddress | Should -Be "None"
129129
TestObjectMatch "Visual C++ 2012 x64" "11.0.61030 Version is current" -WriteType "Green"
130-
TestObjectMatch "Visual C++ 2013 x64" "Redistributable (12.0.21005) is outdated" -WriteType "Yellow"
130+
TestObjectMatch "Visual C++ 2013 x64" "Redistributable is outdated (12.0.21005). Update the Visual C++ 2013 version." -WriteType "Yellow"
131131
TestObjectMatch "Server Pending Reboot" $false
132132

133133
$pageFile = GetObject "PageFile Size 0"

docs/Diagnostics/HealthChecker/VisualCRedistributableVersionCheck.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
**Description:**
44

5-
We check if the the latest Visual C++ Redistributable version, required for the installed Exchange server role, is installed or not.
5+
We check if the Visual C++ Redistributable versions required for the installed Exchange server role are installed and up to date. Exchange Server specifically requires the [Visual C++ 2012 (VC++ 11.0)](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2012-vc-110-update-4-no-longer-supported) and [Visual C++ 2013 (VC++ 12.0)](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2013-vc-120-no-longer-supported) Redistributable. These older versions are **not** replaced by newer Visual C++ Redistributable versions (e.g., the latest Visual C++ 2015-2022 Redistributable) and must remain installed.
6+
7+
When Health Checker reports that a version is "outdated", it means the installed version of that specific year's Redistributable (2012 or 2013) needs to be updated to the latest release within that same series.
68

79
**Included in HTML Report?**
810

0 commit comments

Comments
 (0)