Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Get a concise summary of the most recent solution health check results, highlighting critical and important health issues that you should immediately address.
Note
Get-SolutionHealthSummary is only available in Azure Local release 2610 and later. For previous releases of Azure Local, use the Get-SolutionUpdateEnvironment or Get-SolutionUpdate commands. For help with troubleshooting updates, see Troubleshoot updates. For help with troubleshooting health check failures, see Troubleshoot health check failures.
Syntax
Get-SolutionHealthSummary [-CriticalFailures] [-WarningFailures] [-IncludeInformational] [-Detailed]
[-LcmUpdateServiceClient <ILcmUpdateServiceClient>] [<CommonParameters>]
Description
Get-SolutionHealthSummary returns a customer-friendly summary of the latest health check results for the Azure Local cluster. The most common way to run it is with no parameters: the default output lists the failing Critical and Warning checks with just the fields needed to act on them (Severity, DisplayName, Title, Description, and Remediation), followed by a status line and an aggregate statistics footer. The optional switches described in the following section let you adjust the view when needed.
The cmdlet automatically selects the most recent health check run results. When you schedule an update and a recent pre-update health check exists, the cmdlet uses the pre-update health check. Otherwise, the cmdlet uses the most recent daily system health check. The top-level Info block reports the selected source and its most recent health check time.
By default, the Results list includes only failing checks, while the footer statistics reflect every check (including those that passed). The switches adjust which severities are listed and how much detail is returned:
- By default, the cmdlet returns both
CriticalandWarningfailing checks, because both warrant immediate review before updating. -CriticalFailuresrestricts the list toCriticalfailing checks only.-WarningFailuresrestricts the list toWarningfailing checks only.-CriticalFailuresand-WarningFailuresare mutually exclusive. To list both severities, run the cmdlet with neither switch (the default).-IncludeInformationaladditionally includesInformationalfailing checks. You can combine it with the default view or with either-CriticalFailuresor-WarningFailures.-Detailedreturns the full set of fields for each returned result instead of the compact default.
-CriticalFailures and -WarningFailures narrow the view to a single severity, while -IncludeInformational and -Detailed widen or enrich it.
Examples
Example 1: Show the blocking failures (default view)
PS C:\> Get-SolutionHealthSummary
Status : FAILED
Info : {
HealthCheckSource : Daily system health check for 12.2606.1003.36
HealthCheckDate : 5/25/2026 12:08:55 PM
Time since last check : 3.7h ago
Statistics : 334 total checks: 1 critical, 0 warning, 0 informational, 333 passed
Action : 1 critical issue(s) must be resolved before installation can proceed.
}
Results : {
Result : Result 1
Severity : Critical
DisplayName : Test Network Intent
Title : Test Network intent on existing cluster nodes
Description : Checking if network intent is healthy on existing nodes
Remediation : https://aka.ms/hci-envch
}
Most Recent Check Timestamp: 5/25/2026 12:08:55 UTC (3.7h ago)
FAILED
334 total checks: 1 critical, 0 warning, 0 informational, 333 passed
The default output requires no parameters and surfaces the important failures with enough information to remediate.
Example 2: Show only the critical blocking failures
PS C:\> Get-SolutionHealthSummary -CriticalFailures
This example restricts the listed results to Critical severity failures. Use -WarningFailures instead to list only Warning severity failures. -CriticalFailures and -WarningFailures are mutually exclusive, so to see both severities, run the cmdlet with neither switch (the default view).
Example 3: Include informational results
PS C:\> Get-SolutionHealthSummary -IncludeInformational
Adds Informational failing checks to the default Critical and Warning results, without needing a Where-Object filter.
Example 4: Show all details of all failing health checks
This example combines two switches for a complete "show me everything" view: -IncludeInformational widens the list to include Critical, Warning, and Informational failing checks, while -Detailed returns the full set of fields for each result instead of the compact default. See the NOTES section for the full field list.
PS C:\> Get-SolutionHealthSummary -Detailed -IncludeInformational
Status : FAILED
Info : {
HealthCheckSource : Daily system health check for 12.2606.1003.36
HealthCheckDate : 5/25/2026 12:08:55 PM
Time since last check : 3.7h ago
Statistics : 334 total checks: 1 critical, 0 warning, 1 informational, 332 passed
Action : 1 critical issue(s) must be resolved before installation can proceed.
}
Results : {
Result : Result 1
Severity : Critical
DisplayName : Test Network Intent
Title : Test Network intent on existing cluster nodes
Description : Checking if network intent is healthy on existing nodes
Remediation : https://aka.ms/hci-envch
Name : AzStackHci_Network_Test_Intent
Status : Failed
Tags : {Group: Network}
TargetResourceID : Machine: AzLocalNode01, Class: NetIntent
TargetResourceName : AzLocalNode01
TargetResourceType : NetIntent
Timestamp : 5/25/2026 12:08:55 PM
HealthCheckSource : PreUpdate\Standard\Medium\Network\5564dd2a
AdditionalData : {Detail: Checking network intent on AzLocalNode01}
Result : Result 2
Severity : Informational
DisplayName : Test System Drive Free Space
Title : Test available free space on the system drive
Description : Checking that the system drive has sufficient free space
Remediation : https://aka.ms/hci-envch
Name : AzStackHci_System_Test_DriveSpace
Status : Failed
Tags : {Group: System}
TargetResourceID : Machine: AzLocalNode02, Class: SystemDrive
TargetResourceName : AzLocalNode02
TargetResourceType : SystemDrive
Timestamp : 5/25/2026 8:55 PM
HealthCheckSource : PreUpdate\Standard\Medium\Hardware\7788bc10
AdditionalData : {Detail: 12% free on volume C:}
}
Most Recent Check Timestamp: 5/25/2026 12:08:55 UTC (3.7h ago)
FAILED
334 total checks: 1 critical, 0 warning, 1 informational, 332 passed
Example 5: Capture the overall status programmatically
PS C:\> (Get-SolutionHealthSummary).Status
FAILED
The top-level Status property exposes the overall status word (FAILED, WARNING, or SUCCESS) so it can be captured directly in automation.
Parameters
-CriticalFailures
The -CriticalFailures parameter filters the results to show only failing checks with Critical severity. This parameter is mutually exclusive with -WarningFailures. To list both severities, run the cmdlet without either switch (the default view). Combine it with -IncludeInformational to also include Informational results.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Detailed
By default, each result includes a compact set of five fields: Severity, DisplayName, Title, Description, and Remediation. When you specify -Detailed, the cmdlet returns the full set of fields for each result, including Name, Status, the TargetResource properties, Timestamp, Tags, AdditionalData, and HealthCheckSource.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-IncludeInformational
The -IncludeInformational parameter adds Informational severity failing checks to the results. This switch is additive: by default, the cmdlet shows only Critical and Warning results, and -IncludeInformational adds Informational failures on top of the current selection.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-LcmUpdateServiceClient
Use -LcmUpdateServiceClient to optionally specify an ILcmUpdateServiceClient object that the cmdlet uses to make REST calls to the update service. Create the client object by using the New-SolutionUpdateClient cmdlet.
You don't need to use this parameter in most cases, but you can use it to override some client-side timeouts.
Type: ILcmUpdateServiceClient
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-WarningFailures
The -WarningFailures parameter filters the results to show only failing checks with Warning severity. This parameter is mutually exclusive with -CriticalFailures. To list both severities, run the cmdlet without either switch (the default view). Combine it with -IncludeInformational to also include Informational results.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Common parameters
Get-SolutionHealthSummary supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
Inputs
None.
Outputs
System.Object.
Notes
The object that Get-SolutionHealthSummary returns has the following top-level properties.
| Name | Type | Example | Description |
|---|---|---|---|
| Status | String | FAILED |
The overall status word for the summary: FAILED when any Critical failures are present, WARNING when Warning failures are present but no Critical failures, otherwise SUCCESS. Exposed as a top-level property so you can capture it directly, for example (Get-SolutionHealthSummary).Status. |
| Info | HealthSummaryInfo | Details about the most recent health check: where the results came from, when they were produced, aggregate counts, and guidance messages. See Info properties below. | |
| Results | List<HealthCheckResultProjection> | The individual failing health check results that matched the requested severities. By default each result contains the five compact fields; with -Detailed, all fourteen fields are populated. See the following table. |
Info properties
The Info object has the following properties.
| Name | Type | Example | Description |
|---|---|---|---|
| HealthCheckSource | String | Daily system health check for 12.2606.1003.36 |
A human-readable label describing which health check the server selected (pre-update or daily) and the version it applies to. |
| HealthCheckDate | DateTime? | 2026-05-25T12:08:55Z |
The timestamp at which the underlying health check engine produced these results, or null when no health check is available. |
| LastHealthCheck | String | 3.7h ago |
The pre-formatted relative age of the most recent health check, rendered as the Time since last check line in the info block. The absolute time is carried separately on HealthCheckDate. |
| Statistics | String | 334 total checks: 2 critical, 7 warning, 0 informational, 325 passed |
A pre-formatted aggregate count line across all severities. |
| Messages | List<String> | 2 critical issue(s) must be resolved before installation can proceed. |
The ordered directive sentences the server surfaces. Each entry is rendered as its own line in the cmdlet footer. |
| TotalChecks | Int32 | 334 |
The total number of health check results across all severities. |
| CriticalCount | Int32 | 2 |
The number of failing results with Critical severity. |
| WarningCount | Int32 | 7 |
The number of failing results with Warning severity. |
| InformationalCount | Int32 | 0 |
The number of failing results with Informational severity. |
| PassedCount | Int32 | 325 |
The number of results that passed. |
Result properties
Each item in Results has the following properties. By default, only the first five compact fields are populated. The remaining fields are populated when you specify -Detailed.
| Name | Type | Example | Description |
|---|---|---|---|
| Severity | HealthCheckResultSeverity | Critical |
The severity of the result. Possible values: Informational, Warning, Critical. (compact) |
| DisplayName | String | Test System Drive Free Space |
The localized display name of the health check. (compact) |
| Title | String | Test Network intent on existing cluster nodes |
A short, user-facing title describing the issue. (compact) |
| Description | String | Checking if network intent is healthy on existing nodes |
A detailed description of the issue and its impact. (compact) |
| Remediation | String | https://aka.ms/hci-envch |
The steps or link that you can use to resolve the issue. (compact) |
| Name | String | AzStackHci_Network_Test_Intent |
The programmatic name of the health check. (-Detailed) |
| Status | HealthCheckResultStatus | Failed |
The outcome of the health check. Possible values: Failed, Passed. By default, only Failed results are returned. (-Detailed) |
| Tags | Dictionary<String, String> | {Group: Network} |
The key-value tags used to group and filter health checks. (-Detailed) |
| TargetResourceID | String | Machine: AzLocalNode01, Class: NetIntent |
The unique identifier of the affected resource. (-Detailed) |
| TargetResourceName | String | AzLocalNode01 |
The name of the affected resource. (-Detailed) |
| TargetResourceType | String | NetIntent |
The type of the affected resource. (-Detailed) |
| Timestamp | DateTime? | 2026-05-25T12:08:55Z |
The UTC timestamp at which the health check was executed. (-Detailed) |
| AdditionalData | Dictionary<String, String> | {Detail: Checking network intent on AzLocalNode01} |
A property bag of supplementary key-value data. (-Detailed) |
| HealthCheckSource | String | PreUpdate\Standard\Medium\Network\5564dd2a |
The name of the service that produced the health check. (-Detailed) |
HealthCheckResultSeverity Values
| Value | Description |
|---|---|
| Informational | An informational result with no required action. |
| Warning | An initially blocking issue that you should review, but you can bypass and it doesn't prevent an update. |
| Critical | A blocking issue that you must resolve before proceeding with an update. |
HealthCheckResultStatus Values
| Value | Description |
|---|---|
| Failed | The health check produced a failing result, or couldn't be executed. |
| Passed | The health check executed successfully and produced a passing result. |
By default, Get-SolutionHealthSummary lists only Failed results, while the statistics footer reflects all checks.