From 5bcd6e9a3975961c51bb95eaad4ab6dc52607b79 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Thu, 9 May 2024 15:44:38 -0500 Subject: [PATCH 01/11] Adding Edge Transport Back Pressure detection --- .../Invoke-AnalyzerExchangeInformation.ps1 | 28 +++++++++++++ .../Get-ExchangeInformation.ps1 | 10 +++++ Shared/Get-ExchangeDiagnosticInformation.ps1 | 42 +++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 Shared/Get-ExchangeDiagnosticInformation.ps1 diff --git a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 index 761b60b8f9..e172e5fc29 100644 --- a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 +++ b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 @@ -466,6 +466,34 @@ function Invoke-AnalyzerExchangeInformation { } } + if ($null -ne $exchangeInformation.EdgeTransportResourceThrottling) { + try { + # SystemMemory does not block mail flow. + $resourceThrottling = ([xml]$exchangeInformation.EdgeTransportResourceThrottling).Diagnostics.Components.ResourceThrottling.ResourceTracker.ResourceMeter | + Where-Object { $_.Resource -ne "SystemMemory" -and $_.CurrentResourceUse -ne "Low" } + } catch { + Invoke-CatchActions + } + + if ($null -ne $resourceThrottling) { + $resourceThrottlingList = @($resourceThrottling.Resource | + ForEach-Object { + $index = $_.IndexOf("[") + if ($index -eq -1) { + $_ + } else { + $_.Substring(0, $index) + } + }) + $params = $baseParams + @{ + Name = "Transport Back Pressure" + Details = "--ERROR-- The following resources are causing back pressure: $([string]::Join(", ", $resourceThrottlingList))" + DisplayWriteType = "Red" + } + Add-AnalyzedResultInformation @params + } + } + Write-Verbose "Working on Exchange Server Maintenance" $serverMaintenance = $exchangeInformation.ServerMaintenance $getMailboxServer = $exchangeInformation.GetMailboxServer diff --git a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 index 9d5abe474d..217337b3f8 100644 --- a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 +++ b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 @@ -4,6 +4,7 @@ . $PSScriptRoot\..\..\..\..\Shared\Get-ExtendedProtectionConfiguration.ps1 . $PSScriptRoot\..\..\..\..\Shared\ErrorMonitorFunctions.ps1 . $PSScriptRoot\..\..\..\..\Shared\Get-ExchangeBuildVersionInformation.ps1 +. $PSScriptRoot\..\..\..\..\Shared\Get-ExchangeDiagnosticInformation.ps1 . $PSScriptRoot\..\..\..\..\Shared\Get-ExchangeSettingOverride.ps1 . $PSScriptRoot\..\..\..\..\Shared\Get-ExSetupFileVersionInfo.ps1 . $PSScriptRoot\..\..\..\..\Shared\Get-FileContentInformation.ps1 @@ -186,6 +187,14 @@ function Get-ExchangeInformation { VersionInformation = $versionInformation } $aes256CbcDetails = Get-ExchangeAES256CBCDetails @aes256CbcParams + + Write-Verbose "Getting Exchange Diagnostic Information" + $params = @{ + Server = $Server + Process = "EdgeTransport" + Component = "ResourceThrottling" + } + $edgeTransportResourceThrottling = Get-ExchangeDiagnosticInformation @params } end { Write-Verbose "Exiting: Get-ExchangeInformation" @@ -202,6 +211,7 @@ function Get-ExchangeInformation { ServerMaintenance = $serverMaintenance ExchangeCertificates = [array]$exchangeCertificates ExchangeEmergencyMitigationServiceResult = $eemsEndpointResults + EdgeTransportResourceThrottling = $edgeTransportResourceThrottling # If we want to checkout other diagnosticInfo, we should create a new object here. ApplicationConfigFileStatus = $applicationConfigFileStatus DependentServices = $dependentServices IISSettings = $iisSettings diff --git a/Shared/Get-ExchangeDiagnosticInformation.ps1 b/Shared/Get-ExchangeDiagnosticInformation.ps1 new file mode 100644 index 0000000000..80d380d9b9 --- /dev/null +++ b/Shared/Get-ExchangeDiagnosticInformation.ps1 @@ -0,0 +1,42 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +. $PSScriptRoot\Invoke-CatchActionError.ps1 +function Get-ExchangeDiagnosticInformation { + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string]$Server, + + [Parameter(Mandatory = $true)] + [string]$Process, + + [Parameter(Mandatory = $true)] + [string]$Component, + + [string]$Argument, + + [Parameter(Mandatory = $false)] + [ScriptBlock]$CatchActionFunction + ) + process { + try { + Write-Verbose "Calling: $($MyInvocation.MyCommand)" + $params = @{ + Process = $Process + Component = $Component + Server = $Server + ErrorAction = "Stop" + } + + if (-not ([string]::IsNullOrEmpty($Argument))) { + $params.Add("Argument", $Argument) + } + + return (Get-ExchangeDiagnosticInfo @params) + } catch { + Write-Verbose "Failed to execute $($MyInvocation.MyCommand). Inner Exception: $_" + Invoke-CatchActionError $CatchActionFunction + } + } +} From e591c6e49985b531c82430eb6a49f9c207c5fda0 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Wed, 22 May 2024 10:02:22 -0500 Subject: [PATCH 02/11] Use new function for Get-ExchangeDiagnosticInfo processing --- Shared/Get-ExchangeSettingOverride.ps1 | 52 ++++++++++++++------------ 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/Shared/Get-ExchangeSettingOverride.ps1 b/Shared/Get-ExchangeSettingOverride.ps1 index 35e00458d9..3aa9e0f9e1 100644 --- a/Shared/Get-ExchangeSettingOverride.ps1 +++ b/Shared/Get-ExchangeSettingOverride.ps1 @@ -1,6 +1,7 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. +. $PSScriptRoot\Get-ExchangeDiagnosticInformation.ps1 . $PSScriptRoot\Invoke-CatchActionError.ps1 function Get-ExchangeSettingOverride { @@ -21,33 +22,38 @@ function Get-ExchangeSettingOverride { process { try { $params = @{ - Process = "Microsoft.Exchange.Directory.TopologyService" - Component = "VariantConfiguration" - Argument = "Overrides" - Server = $Server - ErrorAction = "Stop" + Process = "Microsoft.Exchange.Directory.TopologyService" + Component = "VariantConfiguration" + Argument = "Overrides" + Server = $Server + CatchActionFunction = $CatchActionFunction } - $diagnosticInfo = Get-ExchangeDiagnosticInfo @params - Write-Verbose "Successfully got the Exchange Diagnostic Information" - $xml = [xml]$diagnosticInfo.Result - $overrides = $xml.Diagnostics.Components.VariantConfiguration.Overrides - $updatedTime = $overrides.Updated - $settingOverrides = $overrides.SettingOverride + $diagnosticInfo = Get-ExchangeDiagnosticInformation @params - foreach ($override in $settingOverrides) { - Write-Verbose "Working on $($override.Name)" - $simpleSettingOverrides.Add([PSCustomObject]@{ - Name = $override.Name - ModifiedBy = $override.ModifiedBy - Reason = $override.Reason - ComponentName = $override.ComponentName - SectionName = $override.SectionName - Status = $override.Status - Parameters = $override.Parameters.Parameter - }) + if ($null -ne $diagnosticInfo) { + Write-Verbose "Successfully got the Exchange Diagnostic Information" + $xml = [xml]$diagnosticInfo.Result + $overrides = $xml.Diagnostics.Components.VariantConfiguration.Overrides + $updatedTime = $overrides.Updated + $settingOverrides = $overrides.SettingOverride + + foreach ($override in $settingOverrides) { + Write-Verbose "Working on $($override.Name)" + $simpleSettingOverrides.Add([PSCustomObject]@{ + Name = $override.Name + ModifiedBy = $override.ModifiedBy + Reason = $override.Reason + ComponentName = $override.ComponentName + SectionName = $override.SectionName + Status = $override.Status + Parameters = $override.Parameters.Parameter + }) + } + } else { + Write-Verbose "Failed to get Exchange Diagnostic Information" } } catch { - Write-Verbose "Failed to get the Exchange setting override" + Write-Verbose "Failed to get the Exchange setting override. Inner Exception: $_" Invoke-CatchActionError $CatchActionFunction } } From e346724702ea26363baf545d66246aa99bdabb2e Mon Sep 17 00:00:00 2001 From: David Paulson Date: Thu, 23 May 2024 15:27:35 -0500 Subject: [PATCH 03/11] Change GetExchangeDiagnosticInfo test data file name --- ...ExchangeDiagnosticInfo_ADTopVariantConfiguration.xml} | 0 ...ExchangeDiagnosticInfo_ADTopVariantConfiguration.xml} | 0 ...ExchangeDiagnosticInfo_ADTopVariantConfiguration.xml} | 0 ...xchangeDiagnosticInfo_ADTopVariantConfiguration1.xml} | 0 .../Tests/HealthChecker.E19.Scenarios.Tests.ps1 | 6 ++++-- .../Tests/HealthChecker.MockedCalls.Tests.ps1 | 3 ++- .../Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 | 9 +++++---- 7 files changed, 11 insertions(+), 7 deletions(-) rename Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/{GetExchangeDiagnosticInfo.xml => GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml} (100%) rename Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/{GetExchangeDiagnosticInfo.xml => GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml} (100%) rename Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/{GetExchangeDiagnosticInfo.xml => GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml} (100%) rename Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/{GetExchangeDiagnosticInfo1.xml => GetExchangeDiagnosticInfo_ADTopVariantConfiguration1.xml} (100%) diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetExchangeDiagnosticInfo.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml similarity index 100% rename from Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetExchangeDiagnosticInfo.xml rename to Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetExchangeDiagnosticInfo.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml similarity index 100% rename from Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetExchangeDiagnosticInfo.xml rename to Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml similarity index 100% rename from Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo.xml rename to Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo1.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_ADTopVariantConfiguration1.xml similarity index 100% rename from Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo1.xml rename to Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_ADTopVariantConfiguration1.xml diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 index 76630b7678..25d1680608 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 @@ -44,7 +44,8 @@ Describe "Testing Health Checker by Mock Data Imports" { Mock Get-WebConfigFile -ParameterFilter { $PSPath -eq "IIS:\Sites\Exchange Back End/ecp" } -MockWith { return [PSCustomObject]@{ FullName = "$Script:MockDataCollectionRoot\Exchange\IIS\ClientAccess\ecp\web.config" } } Mock Get-WebConfigFile -ParameterFilter { $PSPath -eq "IIS:\Sites\Default Web Site/ecp" } -MockWith { return [PSCustomObject]@{ FullName = "$Script:MockDataCollectionRoot\Exchange\IIS\DefaultWebSite_web.config" } } Mock Invoke-ScriptBlockHandler -ParameterFilter { $ScriptBlockDescription -eq "Getting applicationHost.config" } -MockWith { return Get-Content "$Script:MockDataCollectionRoot\Exchange\IIS\applicationHost1.config" -Raw -Encoding UTF8 } - Mock Get-ExchangeDiagnosticInfo { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo1.xml" } + Mock Get-ExchangeDiagnosticInfo -ParameterFilter { $Process -eq "Microsoft.Exchange.Directory.TopologyService" -and $Component -eq "VariantConfiguration" -and $Argument -eq "Overrides" } ` + -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo_ADTopVariantConfiguration1.xml" } Mock Get-IISModules { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetIISModulesNoTokenCacheModule.xml" } Mock Get-Service { param( @@ -211,7 +212,8 @@ Describe "Testing Health Checker by Mock Data Imports" { Context "Checking Scenarios 2" { BeforeAll { Mock Get-SettingOverride { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetSettingOverride1.xml" } - Mock Get-ExchangeDiagnosticInfo { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo1.xml" } + Mock Get-ExchangeDiagnosticInfo -ParameterFilter { $Process -eq "Microsoft.Exchange.Directory.TopologyService" -and $Component -eq "VariantConfiguration" -and $Argument -eq "Overrides" } ` + -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo_ADTopVariantConfiguration1.xml" } Mock Get-RemoteRegistryValue -ParameterFilter { $GetValue -eq "KeepAliveTime" } -MockWith { return 1800000 } Mock Get-RemoteRegistryValue -ParameterFilter { $GetValue -eq "DisableGranularReplication" } -MockWith { return 1 } Mock Get-RemoteRegistryValue -ParameterFilter { $GetValue -eq "DisableAsyncNotification" } -MockWith { return 1 } diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.MockedCalls.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.MockedCalls.Tests.ps1 index f061abea8d..593ac847be 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.MockedCalls.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.MockedCalls.Tests.ps1 @@ -31,7 +31,8 @@ Describe "Testing Health Checker by Mock Data Imports" { Mock Get-OrganizationConfig { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetOrganizationConfig.xml" } Mock Get-InternalTransportCertificateFromServer { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetInternalTransportCertificateFromServer.xml" } Mock Get-HybridConfiguration { return $null } - Mock Get-ExchangeDiagnosticInfo { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo.xml" } + Mock Get-ExchangeDiagnosticInfo -ParameterFilter { $Process -eq "Microsoft.Exchange.Directory.TopologyService" -and $Component -eq "VariantConfiguration" -and $Argument -eq "Overrides" } ` + -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml" } # do not need to match the function. Only needed really to test the Assert-MockCalled Mock Get-Service { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetServiceMitigation.xml" } Mock Get-SettingOverride { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetSettingOverride.xml" } diff --git a/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 b/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 index 38355629ae..d4eadd8800 100644 --- a/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 @@ -229,6 +229,11 @@ Mock Get-ExSetupFileVersionInfo { # Do nothing Mock Invoke-CatchActions { } +function Get-ExchangeDiagnosticInfo { param($Argument, $Component, $Process, $Server) } + +Mock Get-ExchangeDiagnosticInfo -ParameterFilter { $Process -eq "Microsoft.Exchange.Directory.TopologyService" -and $Component -eq "VariantConfiguration" -and $Argument -eq "Overrides" } ` + -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml" } + # Need to use function instead of Mock for Exchange cmdlets function Get-ExchangeServer { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeServer.xml" @@ -322,7 +327,3 @@ function Get-ExchangeProtocolContainer { function Get-ExchangeWebSitesFromAd { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeWebSitesFromAd.xml" } - -function Get-ExchangeDiagnosticInfo { - return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo.xml" -} From 47962b52ce1a18ac8774c79e52056dce42714cb6 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Thu, 23 May 2024 15:44:54 -0500 Subject: [PATCH 04/11] Add Back Pressure pester test --- ...icInfo_EdgeTransportResourceThrottling.xml | 31 +++++++++++++++++++ ...icInfo_EdgeTransportResourceThrottling.xml | 31 +++++++++++++++++++ ...icInfo_EdgeTransportResourceThrottling.xml | 31 +++++++++++++++++++ ...cInfo_EdgeTransportResourceThrottling1.xml | 31 +++++++++++++++++++ .../HealthChecker.E19.Scenarios.Tests.ps1 | 3 ++ .../Tests/HealthChecker.MockedCalls.Tests.ps1 | 2 +- ...thCheckerTest.CommonMocks.NotPublished.ps1 | 2 ++ 7 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling1.xml diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml new file mode 100644 index 0000000000..c01d0dce89 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml @@ -0,0 +1,31 @@ + + + + Microsoft.Exchange.Management.Powershell.Support.ExchangeDiagnosticInfoResult + Microsoft.Exchange.Data.ConfigurableObject + System.Object + + <Diagnostics>_x000D__x000A_ <ProcessInfo>_x000D__x000A_ <id>2948</id>_x000D__x000A_ <serverName>SOLO-E19A</serverName>_x000D__x000A_ <startTime>2024-05-22T15:12:38.3041278Z</startTime>_x000D__x000A_ <currentTime>2024-05-23T19:57:24.2800853Z</currentTime>_x000D__x000A_ <lifetime>1.04:44:45.9759575</lifetime>_x000D__x000A_ <threadCount>48</threadCount>_x000D__x000A_ <handleCount>1760</handleCount>_x000D__x000A_ <workingSet>109.8 MB (115,101,696 bytes)</workingSet>_x000D__x000A_ <fastTrainExchangeVersion>15.2.1544.4</fastTrainExchangeVersion>_x000D__x000A_ </ProcessInfo>_x000D__x000A_ <Components>_x000D__x000A_ <ResourceThrottling>_x000D__x000A_ <ResourceTracker>_x000D__x000A_ <AggregateUse>Low</AggregateUse>_x000D__x000A_ <ResourceMeter Resource="PrivateBytes">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=75 HighToMedium=73 LowToMedium=72 MediumToLow=71]</PressureTransitions>_x000D__x000A_ <Pressure>6</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="SystemMemory">_x000D__x000A_ <CurrentResourceUse>High</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>High</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=94 HighToMedium=89 LowToMedium=88 MediumToLow=84]</PressureTransitions>_x000D__x000A_ <Pressure>92</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedVersionBuckets[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1000 LowToMedium=999 MediumToLow=800]</PressureTransitions>_x000D__x000A_ <Pressure>2</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="JetSessions[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1400 LowToMedium=1000 MediumToLow=900]</PressureTransitions>_x000D__x000A_ <Pressure>14</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="CheckpointDepth[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=300 HighToMedium=280 LowToMedium=250 MediumToLow=230]</PressureTransitions>_x000D__x000A_ <Pressure>0</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="DatabaseUsedSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=97 LowToMedium=96 MediumToLow=94]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ </ResourceTracker>_x000D__x000A_ <ResourceLevelMediator>_x000D__x000A_ <ResourceLevelObserver Name="BootScanner">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ContentAggregator">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="DelayedDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="EnhancedDns">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="IsMemberOfResolver">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessageResubmission">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessagingDatabase">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Pickup">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="RemoteDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ShadowRedundancy">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Replication">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="SmtpIn">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Categorizer">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ </ResourceLevelMediator>_x000D__x000A_ <Configuration>_x000D__x000A_ <ResourceThrottlingConfiguration DehydrateMessagesUnderMemoryPressure="true" DisabledResourceLevelObservers="System.String[]" MaxTransientExceptionsAllowed="5" ResourceLevelObserverTimeout="PT5M" ResourceThrottlingEnabled="true" SmtpBaseThrottlingDelayInterval="PT0S" SmtpMaxThrottlingDelayInterval="PT55S" SmtpStepThrottlingDelayInterval="PT1S" SmtpStartThrottlingDelayInterval="PT1S" PeriodicDehydrationEnabled="true" PeriodicDehydrationInterval="PT5M" />_x000D__x000A_ <Overrides>_x000D__x000A_ <Status OverrideCount="0" OverrideableProperties="resourcethrottling.processortime.mediumtohigh,resourcethrottling.processortime.hightomedium,resourcethrottling.processortime.lowtomedium,resourcethrottling.processortime.mediumtolow" />_x000D__x000A_ </Overrides>_x000D__x000A_ </Configuration>_x000D__x000A_ </ResourceThrottling>_x000D__x000A_ </Components>_x000D__x000A_</Diagnostics> + + <Diagnostics>_x000D__x000A_ <ProcessInfo>_x000D__x000A_ <id>2948</id>_x000D__x000A_ <serverName>SOLO-E19A</serverName>_x000D__x000A_ <startTime>2024-05-22T15:12:38.3041278Z</startTime>_x000D__x000A_ <currentTime>2024-05-23T19:57:24.2800853Z</currentTime>_x000D__x000A_ <lifetime>1.04:44:45.9759575</lifetime>_x000D__x000A_ <threadCount>48</threadCount>_x000D__x000A_ <handleCount>1760</handleCount>_x000D__x000A_ <workingSet>109.8 MB (115,101,696 bytes)</workingSet>_x000D__x000A_ <fastTrainExchangeVersion>15.2.1544.4</fastTrainExchangeVersion>_x000D__x000A_ </ProcessInfo>_x000D__x000A_ <Components>_x000D__x000A_ <ResourceThrottling>_x000D__x000A_ <ResourceTracker>_x000D__x000A_ <AggregateUse>Low</AggregateUse>_x000D__x000A_ <ResourceMeter Resource="PrivateBytes">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=75 HighToMedium=73 LowToMedium=72 MediumToLow=71]</PressureTransitions>_x000D__x000A_ <Pressure>6</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="SystemMemory">_x000D__x000A_ <CurrentResourceUse>High</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>High</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=94 HighToMedium=89 LowToMedium=88 MediumToLow=84]</PressureTransitions>_x000D__x000A_ <Pressure>92</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedVersionBuckets[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1000 LowToMedium=999 MediumToLow=800]</PressureTransitions>_x000D__x000A_ <Pressure>2</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="JetSessions[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1400 LowToMedium=1000 MediumToLow=900]</PressureTransitions>_x000D__x000A_ <Pressure>14</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="CheckpointDepth[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=300 HighToMedium=280 LowToMedium=250 MediumToLow=230]</PressureTransitions>_x000D__x000A_ <Pressure>0</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="DatabaseUsedSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=97 LowToMedium=96 MediumToLow=94]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ </ResourceTracker>_x000D__x000A_ <ResourceLevelMediator>_x000D__x000A_ <ResourceLevelObserver Name="BootScanner">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ContentAggregator">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="DelayedDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="EnhancedDns">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="IsMemberOfResolver">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessageResubmission">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessagingDatabase">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Pickup">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="RemoteDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ShadowRedundancy">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Replication">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="SmtpIn">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Categorizer">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ </ResourceLevelMediator>_x000D__x000A_ <Configuration>_x000D__x000A_ <ResourceThrottlingConfiguration DehydrateMessagesUnderMemoryPressure="true" DisabledResourceLevelObservers="System.String[]" MaxTransientExceptionsAllowed="5" ResourceLevelObserverTimeout="PT5M" ResourceThrottlingEnabled="true" SmtpBaseThrottlingDelayInterval="PT0S" SmtpMaxThrottlingDelayInterval="PT55S" SmtpStepThrottlingDelayInterval="PT1S" SmtpStartThrottlingDelayInterval="PT1S" PeriodicDehydrationEnabled="true" PeriodicDehydrationInterval="PT5M" />_x000D__x000A_ <Overrides>_x000D__x000A_ <Status OverrideCount="0" OverrideableProperties="resourcethrottling.processortime.mediumtohigh,resourcethrottling.processortime.hightomedium,resourcethrottling.processortime.lowtomedium,resourcethrottling.processortime.mediumtolow" />_x000D__x000A_ </Overrides>_x000D__x000A_ </Configuration>_x000D__x000A_ </ResourceThrottling>_x000D__x000A_ </Components>_x000D__x000A_</Diagnostics> + + true + + + Microsoft.Exchange.Data.ObjectState + System.Enum + System.ValueType + System.Object + + New + 0 + + + + solo-e19a.solo.com + 5754fdf0-384b-433f-a855-da6ba608c57e + false + I3NpZyOrJwAAAAEAAAD/////AQAAAAAAAAAMAgAAAHRNaWNyb3NvZnQuRXhjaGFuZ2UuTWFuYWdlbWVudC5Qb3dlcnNoZWxsLlN1cHBvcnQsIFZlcnNpb249MTUuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzFiZjM4NTZhZDM2NGUzNQwDAAAAW01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLCBWZXJzaW9uPTE1LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFAQAAAE1NaWNyb3NvZnQuRXhjaGFuZ2UuTWFuYWdlbWVudC5Qb3dlcnNoZWxsLlN1cHBvcnQuRXhjaGFuZ2VEaWFnbm9zdGljSW5mb1Jlc3VsdAQAAAALcHJvcGVydHlCYWceQ29uZmlndXJhYmxlT2JqZWN0K3Byb3BlcnR5QmFnLENvbmZpZ3VyYWJsZU9iamVjdCtzZXJpYWxpemVyQXNzZW1ibHlWZXJzaW9uJkNvbmZpZ3VyYWJsZU9iamVjdCtpbnN0YW50aWF0aW9uRXJyb3JzBAQDAzFNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5TaW1wbGVQcm92aWRlclByb3BlcnR5QmFnAwAAADFNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5TaW1wbGVQcm92aWRlclByb3BlcnR5QmFnAwAAAA5TeXN0ZW0uVmVyc2lvbqkBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5WYWxpZGF0aW9uRXJyb3IsIE1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLCBWZXJzaW9uPTE1LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzVdXQIAAAAJBAAAAAkEAAAACQUAAAAKBQQAAAAxTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuU2ltcGxlUHJvdmlkZXJQcm9wZXJ0eUJhZwYAAAAUUHJvcGVydHlCYWcrcmVhZE9ubHkbUHJvcGVydHlCYWcrc3RvcmVWYWx1ZXNPbmx5J1Byb3BlcnR5QmFnK3RyZWF0U3dpdGNoYWJsZUFzVmFsdWVzT25seSVQcm9wZXJ0eUJhZytzZXJpYWxpemVyQXNzZW1ibHlWZXJzaW9uI1Byb3BlcnR5QmFnK3NlcmlhbGl6ZWRDdXJyZW50VmFsdWVzJFByb3BlcnR5QmFnK3NlcmlhbGl6ZWRPcmlnaW5hbFZhbHVlcwAAAAMEBAEBAQ5TeXN0ZW0uVmVyc2lvbi9NaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5Qcm9wZXJ0eUJhZytWYWx1ZVBhaXJbXQMAAAAvTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyW10DAAAAAwAAAAAAAAkFAAAACQYAAAAJBwAAAAQFAAAADlN5c3RlbS5WZXJzaW9uBAAAAAZfTWFqb3IGX01pbm9yBl9CdWlsZAlfUmV2aXNpb24AAAAACAgICA8AAAAAAAAAAAAAAAAAAAAHBgAAAAABAAAAAwAAAAQtTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyAwAAAAX4////LU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlByb3BlcnR5QmFnK1ZhbHVlUGFpcgIAAAADS2V5BVZhbHVlBAI4TWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuU2ltcGxlUHJvdmlkZXJQcm9wZXJ0eURlZmluaXRpb24DAAAAAwAAAAkJAAAABgoAAADBNjxEaWFnbm9zdGljcz4NCiAgPFByb2Nlc3NJbmZvPg0KICAgIDxpZD4yOTQ4PC9pZD4NCiAgICA8c2VydmVyTmFtZT5TT0xPLUUxOUE8L3NlcnZlck5hbWU+DQogICAgPHN0YXJ0VGltZT4yMDI0LTA1LTIyVDE1OjEyOjM4LjMwNDEyNzhaPC9zdGFydFRpbWU+DQogICAgPGN1cnJlbnRUaW1lPjIwMjQtMDUtMjNUMTk6NTc6MjQuMjgwMDg1M1o8L2N1cnJlbnRUaW1lPg0KICAgIDxsaWZldGltZT4xLjA0OjQ0OjQ1Ljk3NTk1NzU8L2xpZmV0aW1lPg0KICAgIDx0aHJlYWRDb3VudD40ODwvdGhyZWFkQ291bnQ+DQogICAgPGhhbmRsZUNvdW50PjE3NjA8L2hhbmRsZUNvdW50Pg0KICAgIDx3b3JraW5nU2V0PjEwOS44IE1CICgxMTUsMTAxLDY5NiBieXRlcyk8L3dvcmtpbmdTZXQ+DQogICAgPGZhc3RUcmFpbkV4Y2hhbmdlVmVyc2lvbj4xNS4yLjE1NDQuNDwvZmFzdFRyYWluRXhjaGFuZ2VWZXJzaW9uPg0KICA8L1Byb2Nlc3NJbmZvPg0KICA8Q29tcG9uZW50cz4NCiAgICA8UmVzb3VyY2VUaHJvdHRsaW5nPg0KICAgICAgPFJlc291cmNlVHJhY2tlcj4NCiAgICAgICAgPEFnZ3JlZ2F0ZVVzZT5Mb3c8L0FnZ3JlZ2F0ZVVzZT4NCiAgICAgICAgPFJlc291cmNlTWV0ZXIgUmVzb3VyY2U9IlByaXZhdGVCeXRlcyI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD03NSBIaWdoVG9NZWRpdW09NzMgTG93VG9NZWRpdW09NzIgTWVkaXVtVG9Mb3c9NzFdPC9QcmVzc3VyZVRyYW5zaXRpb25zPg0KICAgICAgICAgIDxQcmVzc3VyZT42PC9QcmVzc3VyZT4NCiAgICAgICAgPC9SZXNvdXJjZU1ldGVyPg0KICAgICAgICA8UmVzb3VyY2VNZXRlciBSZXNvdXJjZT0iU3lzdGVtTWVtb3J5Ij4NCiAgICAgICAgICA8Q3VycmVudFJlc291cmNlVXNlPkhpZ2g8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5IaWdoPC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTQgSGlnaFRvTWVkaXVtPTg5IExvd1RvTWVkaXVtPTg4IE1lZGl1bVRvTG93PTg0XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+OTI8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkVmVyc2lvbkJ1Y2tldHNbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0xNTAwIEhpZ2hUb01lZGl1bT0xMDAwIExvd1RvTWVkaXVtPTk5OSBNZWRpdW1Ub0xvdz04MDBdPC9QcmVzc3VyZVRyYW5zaXRpb25zPg0KICAgICAgICAgIDxQcmVzc3VyZT4yPC9QcmVzc3VyZT4NCiAgICAgICAgPC9SZXNvdXJjZU1ldGVyPg0KICAgICAgICA8UmVzb3VyY2VNZXRlciBSZXNvdXJjZT0iSmV0U2Vzc2lvbnNbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0xNTAwIEhpZ2hUb01lZGl1bT0xNDAwIExvd1RvTWVkaXVtPTEwMDAgTWVkaXVtVG9Mb3c9OTAwXTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MTQ8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJDaGVja3BvaW50RGVwdGhbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0zMDAgSGlnaFRvTWVkaXVtPTI4MCBMb3dUb01lZGl1bT0yNTAgTWVkaXVtVG9Mb3c9MjMwXTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MDwvUHJlc3N1cmU+DQogICAgICAgIDwvUmVzb3VyY2VNZXRlcj4NCiAgICAgICAgPFJlc291cmNlTWV0ZXIgUmVzb3VyY2U9IkRhdGFiYXNlVXNlZFNwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YVxRdWV1ZV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk3IExvd1RvTWVkaXVtPTk2IE1lZGl1bVRvTG93PTk0XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkRGlza1NwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YVxRdWV1ZV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk0IExvd1RvTWVkaXVtPTkwIE1lZGl1bVRvTG93PTg4XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkRGlza1NwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk0IExvd1RvTWVkaXVtPTkwIE1lZGl1bVRvTG93PTg4XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICA8L1Jlc291cmNlVHJhY2tlcj4NCiAgICAgIDxSZXNvdXJjZUxldmVsTWVkaWF0b3I+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iQm9vdFNjYW5uZXIiPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJDb250ZW50QWdncmVnYXRvciI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9IkRlbGF5ZWREZWxpdmVyeSI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9IkVuaGFuY2VkRG5zIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iSXNNZW1iZXJPZlJlc29sdmVyIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iTWVzc2FnZVJlc3VibWlzc2lvbiI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9Ik1lc3NhZ2luZ0RhdGFiYXNlIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUGlja3VwIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUmVtb3RlRGVsaXZlcnkiPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJTaGFkb3dSZWR1bmRhbmN5Ij4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUmVwbGljYXRpb24iPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJTbXRwSW4iPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJDYXRlZ29yaXplciI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgPC9SZXNvdXJjZUxldmVsTWVkaWF0b3I+DQogICAgICA8Q29uZmlndXJhdGlvbj4NCiAgICAgICAgPFJlc291cmNlVGhyb3R0bGluZ0NvbmZpZ3VyYXRpb24gRGVoeWRyYXRlTWVzc2FnZXNVbmRlck1lbW9yeVByZXNzdXJlPSJ0cnVlIiBEaXNhYmxlZFJlc291cmNlTGV2ZWxPYnNlcnZlcnM9IlN5c3RlbS5TdHJpbmdbXSIgTWF4VHJhbnNpZW50RXhjZXB0aW9uc0FsbG93ZWQ9IjUiIFJlc291cmNlTGV2ZWxPYnNlcnZlclRpbWVvdXQ9IlBUNU0iIFJlc291cmNlVGhyb3R0bGluZ0VuYWJsZWQ9InRydWUiIFNtdHBCYXNlVGhyb3R0bGluZ0RlbGF5SW50ZXJ2YWw9IlBUMFMiIFNtdHBNYXhUaHJvdHRsaW5nRGVsYXlJbnRlcnZhbD0iUFQ1NVMiIFNtdHBTdGVwVGhyb3R0bGluZ0RlbGF5SW50ZXJ2YWw9IlBUMVMiIFNtdHBTdGFydFRocm90dGxpbmdEZWxheUludGVydmFsPSJQVDFTIiBQZXJpb2RpY0RlaHlkcmF0aW9uRW5hYmxlZD0idHJ1ZSIgUGVyaW9kaWNEZWh5ZHJhdGlvbkludGVydmFsPSJQVDVNIiAvPg0KICAgICAgICA8T3ZlcnJpZGVzPg0KICAgICAgICAgIDxTdGF0dXMgT3ZlcnJpZGVDb3VudD0iMCIgT3ZlcnJpZGVhYmxlUHJvcGVydGllcz0icmVzb3VyY2V0aHJvdHRsaW5nLnByb2Nlc3NvcnRpbWUubWVkaXVtdG9oaWdoLHJlc291cmNldGhyb3R0bGluZy5wcm9jZXNzb3J0aW1lLmhpZ2h0b21lZGl1bSxyZXNvdXJjZXRocm90dGxpbmcucHJvY2Vzc29ydGltZS5sb3d0b21lZGl1bSxyZXNvdXJjZXRocm90dGxpbmcucHJvY2Vzc29ydGltZS5tZWRpdW10b2xvdyIgLz4NCiAgICAgICAgPC9PdmVycmlkZXM+DQogICAgICA8L0NvbmZpZ3VyYXRpb24+DQogICAgPC9SZXNvdXJjZVRocm90dGxpbmc+DQogIDwvQ29tcG9uZW50cz4NCjwvRGlhZ25vc3RpY3M+AfX////4////CQwAAAAJDQAAAAHy////+P///wkPAAAACRAAAAAHBwAAAAABAAAAAQAAAAQtTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyAwAAAAHv////+P///wkJAAAACgUJAAAAOE1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlNpbXBsZVByb3ZpZGVyUHJvcGVydHlEZWZpbml0aW9uBQAAAAVmbGFncxdQcm9wZXJ0eURlZmluaXRpb24rbmFtZRdQcm9wZXJ0eURlZmluaXRpb24rdHlwZRtQcm9wZXJ0eURlZmluaXRpb24rdHlwZU5hbWU5UHJvcGVydHlEZWZpbml0aW9uK3JlcXVpcmVkUHJvcGVydHlEZWZpbml0aW9uc1doZW5SZWFkaW5nAAEDAQMIH1N5c3RlbS5Vbml0eVNlcmlhbGl6YXRpb25Ib2xkZXKzAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLklDb2xsZWN0aW9uYDFbW01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlByb3BlcnR5RGVmaW5pdGlvbiwgTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEsIFZlcnNpb249MTUuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzFiZjM4NTZhZDM2NGUzNV1dAwAAAAAAAAAGEwAAAAZSZXN1bHQJFAAAAAYVAAAAWlN5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQoBDAAAAAkAAAAAAAAABhYAAAAPRXhjaGFuZ2VWZXJzaW9uCRcAAAAGGAAAAIoBTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuRXhjaGFuZ2VPYmplY3RWZXJzaW9uLCBNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1CgUNAAAALU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlT2JqZWN0VmVyc2lvbgMAAAAFTWFqb3IFTWlub3INRXhjaGFuZ2VCdWlsZAAABAICJU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlQnVpbGQDAAAAAwAAAAAKBef///8lTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuRXhjaGFuZ2VCdWlsZAQAAAAFTWFqb3IFTWlub3IFQnVpbGQNQnVpbGRSZXZpc2lvbgAAAAACAg4OAwAAAA4AZAAAAAEPAAAACQAAAAABAAAGGgAAAAtPYmplY3RTdGF0ZQkbAAAABhwAAACAAU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLk9iamVjdFN0YXRlLCBNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1CgUQAAAAI01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLk9iamVjdFN0YXRlAQAAAAd2YWx1ZV9fAAgDAAAAAAAAAAQUAAAAH1N5c3RlbS5Vbml0eVNlcmlhbGl6YXRpb25Ib2xkZXIDAAAABERhdGEJVW5pdHlUeXBlDEFzc2VtYmx5TmFtZQEAAQgGHQAAAA1TeXN0ZW0uU3RyaW5nBAAAAAYeAAAAS21zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQEXAAAAFAAAAAYfAAAALU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlT2JqZWN0VmVyc2lvbgQAAAAGIAAAAFtNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1ARsAAAAUAAAABiEAAAAjTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuT2JqZWN0U3RhdGUEAAAACSAAAAALAeDVNaKra4Zaq2YXwwxFnWp5x1Sa4XEkA+BaGBFlAPg= + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml new file mode 100644 index 0000000000..c01d0dce89 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml @@ -0,0 +1,31 @@ + + + + Microsoft.Exchange.Management.Powershell.Support.ExchangeDiagnosticInfoResult + Microsoft.Exchange.Data.ConfigurableObject + System.Object + + <Diagnostics>_x000D__x000A_ <ProcessInfo>_x000D__x000A_ <id>2948</id>_x000D__x000A_ <serverName>SOLO-E19A</serverName>_x000D__x000A_ <startTime>2024-05-22T15:12:38.3041278Z</startTime>_x000D__x000A_ <currentTime>2024-05-23T19:57:24.2800853Z</currentTime>_x000D__x000A_ <lifetime>1.04:44:45.9759575</lifetime>_x000D__x000A_ <threadCount>48</threadCount>_x000D__x000A_ <handleCount>1760</handleCount>_x000D__x000A_ <workingSet>109.8 MB (115,101,696 bytes)</workingSet>_x000D__x000A_ <fastTrainExchangeVersion>15.2.1544.4</fastTrainExchangeVersion>_x000D__x000A_ </ProcessInfo>_x000D__x000A_ <Components>_x000D__x000A_ <ResourceThrottling>_x000D__x000A_ <ResourceTracker>_x000D__x000A_ <AggregateUse>Low</AggregateUse>_x000D__x000A_ <ResourceMeter Resource="PrivateBytes">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=75 HighToMedium=73 LowToMedium=72 MediumToLow=71]</PressureTransitions>_x000D__x000A_ <Pressure>6</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="SystemMemory">_x000D__x000A_ <CurrentResourceUse>High</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>High</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=94 HighToMedium=89 LowToMedium=88 MediumToLow=84]</PressureTransitions>_x000D__x000A_ <Pressure>92</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedVersionBuckets[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1000 LowToMedium=999 MediumToLow=800]</PressureTransitions>_x000D__x000A_ <Pressure>2</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="JetSessions[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1400 LowToMedium=1000 MediumToLow=900]</PressureTransitions>_x000D__x000A_ <Pressure>14</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="CheckpointDepth[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=300 HighToMedium=280 LowToMedium=250 MediumToLow=230]</PressureTransitions>_x000D__x000A_ <Pressure>0</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="DatabaseUsedSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=97 LowToMedium=96 MediumToLow=94]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ </ResourceTracker>_x000D__x000A_ <ResourceLevelMediator>_x000D__x000A_ <ResourceLevelObserver Name="BootScanner">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ContentAggregator">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="DelayedDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="EnhancedDns">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="IsMemberOfResolver">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessageResubmission">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessagingDatabase">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Pickup">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="RemoteDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ShadowRedundancy">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Replication">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="SmtpIn">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Categorizer">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ </ResourceLevelMediator>_x000D__x000A_ <Configuration>_x000D__x000A_ <ResourceThrottlingConfiguration DehydrateMessagesUnderMemoryPressure="true" DisabledResourceLevelObservers="System.String[]" MaxTransientExceptionsAllowed="5" ResourceLevelObserverTimeout="PT5M" ResourceThrottlingEnabled="true" SmtpBaseThrottlingDelayInterval="PT0S" SmtpMaxThrottlingDelayInterval="PT55S" SmtpStepThrottlingDelayInterval="PT1S" SmtpStartThrottlingDelayInterval="PT1S" PeriodicDehydrationEnabled="true" PeriodicDehydrationInterval="PT5M" />_x000D__x000A_ <Overrides>_x000D__x000A_ <Status OverrideCount="0" OverrideableProperties="resourcethrottling.processortime.mediumtohigh,resourcethrottling.processortime.hightomedium,resourcethrottling.processortime.lowtomedium,resourcethrottling.processortime.mediumtolow" />_x000D__x000A_ </Overrides>_x000D__x000A_ </Configuration>_x000D__x000A_ </ResourceThrottling>_x000D__x000A_ </Components>_x000D__x000A_</Diagnostics> + + <Diagnostics>_x000D__x000A_ <ProcessInfo>_x000D__x000A_ <id>2948</id>_x000D__x000A_ <serverName>SOLO-E19A</serverName>_x000D__x000A_ <startTime>2024-05-22T15:12:38.3041278Z</startTime>_x000D__x000A_ <currentTime>2024-05-23T19:57:24.2800853Z</currentTime>_x000D__x000A_ <lifetime>1.04:44:45.9759575</lifetime>_x000D__x000A_ <threadCount>48</threadCount>_x000D__x000A_ <handleCount>1760</handleCount>_x000D__x000A_ <workingSet>109.8 MB (115,101,696 bytes)</workingSet>_x000D__x000A_ <fastTrainExchangeVersion>15.2.1544.4</fastTrainExchangeVersion>_x000D__x000A_ </ProcessInfo>_x000D__x000A_ <Components>_x000D__x000A_ <ResourceThrottling>_x000D__x000A_ <ResourceTracker>_x000D__x000A_ <AggregateUse>Low</AggregateUse>_x000D__x000A_ <ResourceMeter Resource="PrivateBytes">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=75 HighToMedium=73 LowToMedium=72 MediumToLow=71]</PressureTransitions>_x000D__x000A_ <Pressure>6</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="SystemMemory">_x000D__x000A_ <CurrentResourceUse>High</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>High</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=94 HighToMedium=89 LowToMedium=88 MediumToLow=84]</PressureTransitions>_x000D__x000A_ <Pressure>92</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedVersionBuckets[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1000 LowToMedium=999 MediumToLow=800]</PressureTransitions>_x000D__x000A_ <Pressure>2</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="JetSessions[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1400 LowToMedium=1000 MediumToLow=900]</PressureTransitions>_x000D__x000A_ <Pressure>14</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="CheckpointDepth[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=300 HighToMedium=280 LowToMedium=250 MediumToLow=230]</PressureTransitions>_x000D__x000A_ <Pressure>0</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="DatabaseUsedSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=97 LowToMedium=96 MediumToLow=94]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ </ResourceTracker>_x000D__x000A_ <ResourceLevelMediator>_x000D__x000A_ <ResourceLevelObserver Name="BootScanner">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ContentAggregator">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="DelayedDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="EnhancedDns">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="IsMemberOfResolver">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessageResubmission">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessagingDatabase">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Pickup">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="RemoteDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ShadowRedundancy">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Replication">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="SmtpIn">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Categorizer">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ </ResourceLevelMediator>_x000D__x000A_ <Configuration>_x000D__x000A_ <ResourceThrottlingConfiguration DehydrateMessagesUnderMemoryPressure="true" DisabledResourceLevelObservers="System.String[]" MaxTransientExceptionsAllowed="5" ResourceLevelObserverTimeout="PT5M" ResourceThrottlingEnabled="true" SmtpBaseThrottlingDelayInterval="PT0S" SmtpMaxThrottlingDelayInterval="PT55S" SmtpStepThrottlingDelayInterval="PT1S" SmtpStartThrottlingDelayInterval="PT1S" PeriodicDehydrationEnabled="true" PeriodicDehydrationInterval="PT5M" />_x000D__x000A_ <Overrides>_x000D__x000A_ <Status OverrideCount="0" OverrideableProperties="resourcethrottling.processortime.mediumtohigh,resourcethrottling.processortime.hightomedium,resourcethrottling.processortime.lowtomedium,resourcethrottling.processortime.mediumtolow" />_x000D__x000A_ </Overrides>_x000D__x000A_ </Configuration>_x000D__x000A_ </ResourceThrottling>_x000D__x000A_ </Components>_x000D__x000A_</Diagnostics> + + true + + + Microsoft.Exchange.Data.ObjectState + System.Enum + System.ValueType + System.Object + + New + 0 + + + + solo-e19a.solo.com + 5754fdf0-384b-433f-a855-da6ba608c57e + false + I3NpZyOrJwAAAAEAAAD/////AQAAAAAAAAAMAgAAAHRNaWNyb3NvZnQuRXhjaGFuZ2UuTWFuYWdlbWVudC5Qb3dlcnNoZWxsLlN1cHBvcnQsIFZlcnNpb249MTUuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzFiZjM4NTZhZDM2NGUzNQwDAAAAW01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLCBWZXJzaW9uPTE1LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFAQAAAE1NaWNyb3NvZnQuRXhjaGFuZ2UuTWFuYWdlbWVudC5Qb3dlcnNoZWxsLlN1cHBvcnQuRXhjaGFuZ2VEaWFnbm9zdGljSW5mb1Jlc3VsdAQAAAALcHJvcGVydHlCYWceQ29uZmlndXJhYmxlT2JqZWN0K3Byb3BlcnR5QmFnLENvbmZpZ3VyYWJsZU9iamVjdCtzZXJpYWxpemVyQXNzZW1ibHlWZXJzaW9uJkNvbmZpZ3VyYWJsZU9iamVjdCtpbnN0YW50aWF0aW9uRXJyb3JzBAQDAzFNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5TaW1wbGVQcm92aWRlclByb3BlcnR5QmFnAwAAADFNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5TaW1wbGVQcm92aWRlclByb3BlcnR5QmFnAwAAAA5TeXN0ZW0uVmVyc2lvbqkBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5WYWxpZGF0aW9uRXJyb3IsIE1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLCBWZXJzaW9uPTE1LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzVdXQIAAAAJBAAAAAkEAAAACQUAAAAKBQQAAAAxTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuU2ltcGxlUHJvdmlkZXJQcm9wZXJ0eUJhZwYAAAAUUHJvcGVydHlCYWcrcmVhZE9ubHkbUHJvcGVydHlCYWcrc3RvcmVWYWx1ZXNPbmx5J1Byb3BlcnR5QmFnK3RyZWF0U3dpdGNoYWJsZUFzVmFsdWVzT25seSVQcm9wZXJ0eUJhZytzZXJpYWxpemVyQXNzZW1ibHlWZXJzaW9uI1Byb3BlcnR5QmFnK3NlcmlhbGl6ZWRDdXJyZW50VmFsdWVzJFByb3BlcnR5QmFnK3NlcmlhbGl6ZWRPcmlnaW5hbFZhbHVlcwAAAAMEBAEBAQ5TeXN0ZW0uVmVyc2lvbi9NaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5Qcm9wZXJ0eUJhZytWYWx1ZVBhaXJbXQMAAAAvTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyW10DAAAAAwAAAAAAAAkFAAAACQYAAAAJBwAAAAQFAAAADlN5c3RlbS5WZXJzaW9uBAAAAAZfTWFqb3IGX01pbm9yBl9CdWlsZAlfUmV2aXNpb24AAAAACAgICA8AAAAAAAAAAAAAAAAAAAAHBgAAAAABAAAAAwAAAAQtTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyAwAAAAX4////LU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlByb3BlcnR5QmFnK1ZhbHVlUGFpcgIAAAADS2V5BVZhbHVlBAI4TWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuU2ltcGxlUHJvdmlkZXJQcm9wZXJ0eURlZmluaXRpb24DAAAAAwAAAAkJAAAABgoAAADBNjxEaWFnbm9zdGljcz4NCiAgPFByb2Nlc3NJbmZvPg0KICAgIDxpZD4yOTQ4PC9pZD4NCiAgICA8c2VydmVyTmFtZT5TT0xPLUUxOUE8L3NlcnZlck5hbWU+DQogICAgPHN0YXJ0VGltZT4yMDI0LTA1LTIyVDE1OjEyOjM4LjMwNDEyNzhaPC9zdGFydFRpbWU+DQogICAgPGN1cnJlbnRUaW1lPjIwMjQtMDUtMjNUMTk6NTc6MjQuMjgwMDg1M1o8L2N1cnJlbnRUaW1lPg0KICAgIDxsaWZldGltZT4xLjA0OjQ0OjQ1Ljk3NTk1NzU8L2xpZmV0aW1lPg0KICAgIDx0aHJlYWRDb3VudD40ODwvdGhyZWFkQ291bnQ+DQogICAgPGhhbmRsZUNvdW50PjE3NjA8L2hhbmRsZUNvdW50Pg0KICAgIDx3b3JraW5nU2V0PjEwOS44IE1CICgxMTUsMTAxLDY5NiBieXRlcyk8L3dvcmtpbmdTZXQ+DQogICAgPGZhc3RUcmFpbkV4Y2hhbmdlVmVyc2lvbj4xNS4yLjE1NDQuNDwvZmFzdFRyYWluRXhjaGFuZ2VWZXJzaW9uPg0KICA8L1Byb2Nlc3NJbmZvPg0KICA8Q29tcG9uZW50cz4NCiAgICA8UmVzb3VyY2VUaHJvdHRsaW5nPg0KICAgICAgPFJlc291cmNlVHJhY2tlcj4NCiAgICAgICAgPEFnZ3JlZ2F0ZVVzZT5Mb3c8L0FnZ3JlZ2F0ZVVzZT4NCiAgICAgICAgPFJlc291cmNlTWV0ZXIgUmVzb3VyY2U9IlByaXZhdGVCeXRlcyI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD03NSBIaWdoVG9NZWRpdW09NzMgTG93VG9NZWRpdW09NzIgTWVkaXVtVG9Mb3c9NzFdPC9QcmVzc3VyZVRyYW5zaXRpb25zPg0KICAgICAgICAgIDxQcmVzc3VyZT42PC9QcmVzc3VyZT4NCiAgICAgICAgPC9SZXNvdXJjZU1ldGVyPg0KICAgICAgICA8UmVzb3VyY2VNZXRlciBSZXNvdXJjZT0iU3lzdGVtTWVtb3J5Ij4NCiAgICAgICAgICA8Q3VycmVudFJlc291cmNlVXNlPkhpZ2g8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5IaWdoPC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTQgSGlnaFRvTWVkaXVtPTg5IExvd1RvTWVkaXVtPTg4IE1lZGl1bVRvTG93PTg0XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+OTI8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkVmVyc2lvbkJ1Y2tldHNbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0xNTAwIEhpZ2hUb01lZGl1bT0xMDAwIExvd1RvTWVkaXVtPTk5OSBNZWRpdW1Ub0xvdz04MDBdPC9QcmVzc3VyZVRyYW5zaXRpb25zPg0KICAgICAgICAgIDxQcmVzc3VyZT4yPC9QcmVzc3VyZT4NCiAgICAgICAgPC9SZXNvdXJjZU1ldGVyPg0KICAgICAgICA8UmVzb3VyY2VNZXRlciBSZXNvdXJjZT0iSmV0U2Vzc2lvbnNbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0xNTAwIEhpZ2hUb01lZGl1bT0xNDAwIExvd1RvTWVkaXVtPTEwMDAgTWVkaXVtVG9Mb3c9OTAwXTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MTQ8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJDaGVja3BvaW50RGVwdGhbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0zMDAgSGlnaFRvTWVkaXVtPTI4MCBMb3dUb01lZGl1bT0yNTAgTWVkaXVtVG9Mb3c9MjMwXTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MDwvUHJlc3N1cmU+DQogICAgICAgIDwvUmVzb3VyY2VNZXRlcj4NCiAgICAgICAgPFJlc291cmNlTWV0ZXIgUmVzb3VyY2U9IkRhdGFiYXNlVXNlZFNwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YVxRdWV1ZV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk3IExvd1RvTWVkaXVtPTk2IE1lZGl1bVRvTG93PTk0XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkRGlza1NwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YVxRdWV1ZV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk0IExvd1RvTWVkaXVtPTkwIE1lZGl1bVRvTG93PTg4XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkRGlza1NwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk0IExvd1RvTWVkaXVtPTkwIE1lZGl1bVRvTG93PTg4XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICA8L1Jlc291cmNlVHJhY2tlcj4NCiAgICAgIDxSZXNvdXJjZUxldmVsTWVkaWF0b3I+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iQm9vdFNjYW5uZXIiPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJDb250ZW50QWdncmVnYXRvciI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9IkRlbGF5ZWREZWxpdmVyeSI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9IkVuaGFuY2VkRG5zIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iSXNNZW1iZXJPZlJlc29sdmVyIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iTWVzc2FnZVJlc3VibWlzc2lvbiI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9Ik1lc3NhZ2luZ0RhdGFiYXNlIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUGlja3VwIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUmVtb3RlRGVsaXZlcnkiPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJTaGFkb3dSZWR1bmRhbmN5Ij4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUmVwbGljYXRpb24iPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJTbXRwSW4iPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJDYXRlZ29yaXplciI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgPC9SZXNvdXJjZUxldmVsTWVkaWF0b3I+DQogICAgICA8Q29uZmlndXJhdGlvbj4NCiAgICAgICAgPFJlc291cmNlVGhyb3R0bGluZ0NvbmZpZ3VyYXRpb24gRGVoeWRyYXRlTWVzc2FnZXNVbmRlck1lbW9yeVByZXNzdXJlPSJ0cnVlIiBEaXNhYmxlZFJlc291cmNlTGV2ZWxPYnNlcnZlcnM9IlN5c3RlbS5TdHJpbmdbXSIgTWF4VHJhbnNpZW50RXhjZXB0aW9uc0FsbG93ZWQ9IjUiIFJlc291cmNlTGV2ZWxPYnNlcnZlclRpbWVvdXQ9IlBUNU0iIFJlc291cmNlVGhyb3R0bGluZ0VuYWJsZWQ9InRydWUiIFNtdHBCYXNlVGhyb3R0bGluZ0RlbGF5SW50ZXJ2YWw9IlBUMFMiIFNtdHBNYXhUaHJvdHRsaW5nRGVsYXlJbnRlcnZhbD0iUFQ1NVMiIFNtdHBTdGVwVGhyb3R0bGluZ0RlbGF5SW50ZXJ2YWw9IlBUMVMiIFNtdHBTdGFydFRocm90dGxpbmdEZWxheUludGVydmFsPSJQVDFTIiBQZXJpb2RpY0RlaHlkcmF0aW9uRW5hYmxlZD0idHJ1ZSIgUGVyaW9kaWNEZWh5ZHJhdGlvbkludGVydmFsPSJQVDVNIiAvPg0KICAgICAgICA8T3ZlcnJpZGVzPg0KICAgICAgICAgIDxTdGF0dXMgT3ZlcnJpZGVDb3VudD0iMCIgT3ZlcnJpZGVhYmxlUHJvcGVydGllcz0icmVzb3VyY2V0aHJvdHRsaW5nLnByb2Nlc3NvcnRpbWUubWVkaXVtdG9oaWdoLHJlc291cmNldGhyb3R0bGluZy5wcm9jZXNzb3J0aW1lLmhpZ2h0b21lZGl1bSxyZXNvdXJjZXRocm90dGxpbmcucHJvY2Vzc29ydGltZS5sb3d0b21lZGl1bSxyZXNvdXJjZXRocm90dGxpbmcucHJvY2Vzc29ydGltZS5tZWRpdW10b2xvdyIgLz4NCiAgICAgICAgPC9PdmVycmlkZXM+DQogICAgICA8L0NvbmZpZ3VyYXRpb24+DQogICAgPC9SZXNvdXJjZVRocm90dGxpbmc+DQogIDwvQ29tcG9uZW50cz4NCjwvRGlhZ25vc3RpY3M+AfX////4////CQwAAAAJDQAAAAHy////+P///wkPAAAACRAAAAAHBwAAAAABAAAAAQAAAAQtTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyAwAAAAHv////+P///wkJAAAACgUJAAAAOE1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlNpbXBsZVByb3ZpZGVyUHJvcGVydHlEZWZpbml0aW9uBQAAAAVmbGFncxdQcm9wZXJ0eURlZmluaXRpb24rbmFtZRdQcm9wZXJ0eURlZmluaXRpb24rdHlwZRtQcm9wZXJ0eURlZmluaXRpb24rdHlwZU5hbWU5UHJvcGVydHlEZWZpbml0aW9uK3JlcXVpcmVkUHJvcGVydHlEZWZpbml0aW9uc1doZW5SZWFkaW5nAAEDAQMIH1N5c3RlbS5Vbml0eVNlcmlhbGl6YXRpb25Ib2xkZXKzAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLklDb2xsZWN0aW9uYDFbW01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlByb3BlcnR5RGVmaW5pdGlvbiwgTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEsIFZlcnNpb249MTUuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzFiZjM4NTZhZDM2NGUzNV1dAwAAAAAAAAAGEwAAAAZSZXN1bHQJFAAAAAYVAAAAWlN5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQoBDAAAAAkAAAAAAAAABhYAAAAPRXhjaGFuZ2VWZXJzaW9uCRcAAAAGGAAAAIoBTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuRXhjaGFuZ2VPYmplY3RWZXJzaW9uLCBNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1CgUNAAAALU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlT2JqZWN0VmVyc2lvbgMAAAAFTWFqb3IFTWlub3INRXhjaGFuZ2VCdWlsZAAABAICJU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlQnVpbGQDAAAAAwAAAAAKBef///8lTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuRXhjaGFuZ2VCdWlsZAQAAAAFTWFqb3IFTWlub3IFQnVpbGQNQnVpbGRSZXZpc2lvbgAAAAACAg4OAwAAAA4AZAAAAAEPAAAACQAAAAABAAAGGgAAAAtPYmplY3RTdGF0ZQkbAAAABhwAAACAAU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLk9iamVjdFN0YXRlLCBNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1CgUQAAAAI01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLk9iamVjdFN0YXRlAQAAAAd2YWx1ZV9fAAgDAAAAAAAAAAQUAAAAH1N5c3RlbS5Vbml0eVNlcmlhbGl6YXRpb25Ib2xkZXIDAAAABERhdGEJVW5pdHlUeXBlDEFzc2VtYmx5TmFtZQEAAQgGHQAAAA1TeXN0ZW0uU3RyaW5nBAAAAAYeAAAAS21zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQEXAAAAFAAAAAYfAAAALU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlT2JqZWN0VmVyc2lvbgQAAAAGIAAAAFtNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1ARsAAAAUAAAABiEAAAAjTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuT2JqZWN0U3RhdGUEAAAACSAAAAALAeDVNaKra4Zaq2YXwwxFnWp5x1Sa4XEkA+BaGBFlAPg= + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml new file mode 100644 index 0000000000..c01d0dce89 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml @@ -0,0 +1,31 @@ + + + + Microsoft.Exchange.Management.Powershell.Support.ExchangeDiagnosticInfoResult + Microsoft.Exchange.Data.ConfigurableObject + System.Object + + <Diagnostics>_x000D__x000A_ <ProcessInfo>_x000D__x000A_ <id>2948</id>_x000D__x000A_ <serverName>SOLO-E19A</serverName>_x000D__x000A_ <startTime>2024-05-22T15:12:38.3041278Z</startTime>_x000D__x000A_ <currentTime>2024-05-23T19:57:24.2800853Z</currentTime>_x000D__x000A_ <lifetime>1.04:44:45.9759575</lifetime>_x000D__x000A_ <threadCount>48</threadCount>_x000D__x000A_ <handleCount>1760</handleCount>_x000D__x000A_ <workingSet>109.8 MB (115,101,696 bytes)</workingSet>_x000D__x000A_ <fastTrainExchangeVersion>15.2.1544.4</fastTrainExchangeVersion>_x000D__x000A_ </ProcessInfo>_x000D__x000A_ <Components>_x000D__x000A_ <ResourceThrottling>_x000D__x000A_ <ResourceTracker>_x000D__x000A_ <AggregateUse>Low</AggregateUse>_x000D__x000A_ <ResourceMeter Resource="PrivateBytes">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=75 HighToMedium=73 LowToMedium=72 MediumToLow=71]</PressureTransitions>_x000D__x000A_ <Pressure>6</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="SystemMemory">_x000D__x000A_ <CurrentResourceUse>High</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>High</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=94 HighToMedium=89 LowToMedium=88 MediumToLow=84]</PressureTransitions>_x000D__x000A_ <Pressure>92</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedVersionBuckets[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1000 LowToMedium=999 MediumToLow=800]</PressureTransitions>_x000D__x000A_ <Pressure>2</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="JetSessions[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1400 LowToMedium=1000 MediumToLow=900]</PressureTransitions>_x000D__x000A_ <Pressure>14</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="CheckpointDepth[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=300 HighToMedium=280 LowToMedium=250 MediumToLow=230]</PressureTransitions>_x000D__x000A_ <Pressure>0</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="DatabaseUsedSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=97 LowToMedium=96 MediumToLow=94]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ </ResourceTracker>_x000D__x000A_ <ResourceLevelMediator>_x000D__x000A_ <ResourceLevelObserver Name="BootScanner">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ContentAggregator">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="DelayedDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="EnhancedDns">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="IsMemberOfResolver">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessageResubmission">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessagingDatabase">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Pickup">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="RemoteDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ShadowRedundancy">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Replication">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="SmtpIn">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Categorizer">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ </ResourceLevelMediator>_x000D__x000A_ <Configuration>_x000D__x000A_ <ResourceThrottlingConfiguration DehydrateMessagesUnderMemoryPressure="true" DisabledResourceLevelObservers="System.String[]" MaxTransientExceptionsAllowed="5" ResourceLevelObserverTimeout="PT5M" ResourceThrottlingEnabled="true" SmtpBaseThrottlingDelayInterval="PT0S" SmtpMaxThrottlingDelayInterval="PT55S" SmtpStepThrottlingDelayInterval="PT1S" SmtpStartThrottlingDelayInterval="PT1S" PeriodicDehydrationEnabled="true" PeriodicDehydrationInterval="PT5M" />_x000D__x000A_ <Overrides>_x000D__x000A_ <Status OverrideCount="0" OverrideableProperties="resourcethrottling.processortime.mediumtohigh,resourcethrottling.processortime.hightomedium,resourcethrottling.processortime.lowtomedium,resourcethrottling.processortime.mediumtolow" />_x000D__x000A_ </Overrides>_x000D__x000A_ </Configuration>_x000D__x000A_ </ResourceThrottling>_x000D__x000A_ </Components>_x000D__x000A_</Diagnostics> + + <Diagnostics>_x000D__x000A_ <ProcessInfo>_x000D__x000A_ <id>2948</id>_x000D__x000A_ <serverName>SOLO-E19A</serverName>_x000D__x000A_ <startTime>2024-05-22T15:12:38.3041278Z</startTime>_x000D__x000A_ <currentTime>2024-05-23T19:57:24.2800853Z</currentTime>_x000D__x000A_ <lifetime>1.04:44:45.9759575</lifetime>_x000D__x000A_ <threadCount>48</threadCount>_x000D__x000A_ <handleCount>1760</handleCount>_x000D__x000A_ <workingSet>109.8 MB (115,101,696 bytes)</workingSet>_x000D__x000A_ <fastTrainExchangeVersion>15.2.1544.4</fastTrainExchangeVersion>_x000D__x000A_ </ProcessInfo>_x000D__x000A_ <Components>_x000D__x000A_ <ResourceThrottling>_x000D__x000A_ <ResourceTracker>_x000D__x000A_ <AggregateUse>Low</AggregateUse>_x000D__x000A_ <ResourceMeter Resource="PrivateBytes">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=75 HighToMedium=73 LowToMedium=72 MediumToLow=71]</PressureTransitions>_x000D__x000A_ <Pressure>6</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="SystemMemory">_x000D__x000A_ <CurrentResourceUse>High</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>High</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=94 HighToMedium=89 LowToMedium=88 MediumToLow=84]</PressureTransitions>_x000D__x000A_ <Pressure>92</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedVersionBuckets[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1000 LowToMedium=999 MediumToLow=800]</PressureTransitions>_x000D__x000A_ <Pressure>2</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="JetSessions[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1400 LowToMedium=1000 MediumToLow=900]</PressureTransitions>_x000D__x000A_ <Pressure>14</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="CheckpointDepth[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=300 HighToMedium=280 LowToMedium=250 MediumToLow=230]</PressureTransitions>_x000D__x000A_ <Pressure>0</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="DatabaseUsedSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=97 LowToMedium=96 MediumToLow=94]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ </ResourceTracker>_x000D__x000A_ <ResourceLevelMediator>_x000D__x000A_ <ResourceLevelObserver Name="BootScanner">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ContentAggregator">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="DelayedDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="EnhancedDns">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="IsMemberOfResolver">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessageResubmission">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessagingDatabase">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Pickup">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="RemoteDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ShadowRedundancy">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Replication">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="SmtpIn">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Categorizer">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ </ResourceLevelMediator>_x000D__x000A_ <Configuration>_x000D__x000A_ <ResourceThrottlingConfiguration DehydrateMessagesUnderMemoryPressure="true" DisabledResourceLevelObservers="System.String[]" MaxTransientExceptionsAllowed="5" ResourceLevelObserverTimeout="PT5M" ResourceThrottlingEnabled="true" SmtpBaseThrottlingDelayInterval="PT0S" SmtpMaxThrottlingDelayInterval="PT55S" SmtpStepThrottlingDelayInterval="PT1S" SmtpStartThrottlingDelayInterval="PT1S" PeriodicDehydrationEnabled="true" PeriodicDehydrationInterval="PT5M" />_x000D__x000A_ <Overrides>_x000D__x000A_ <Status OverrideCount="0" OverrideableProperties="resourcethrottling.processortime.mediumtohigh,resourcethrottling.processortime.hightomedium,resourcethrottling.processortime.lowtomedium,resourcethrottling.processortime.mediumtolow" />_x000D__x000A_ </Overrides>_x000D__x000A_ </Configuration>_x000D__x000A_ </ResourceThrottling>_x000D__x000A_ </Components>_x000D__x000A_</Diagnostics> + + true + + + Microsoft.Exchange.Data.ObjectState + System.Enum + System.ValueType + System.Object + + New + 0 + + + + solo-e19a.solo.com + 5754fdf0-384b-433f-a855-da6ba608c57e + false + I3NpZyOrJwAAAAEAAAD/////AQAAAAAAAAAMAgAAAHRNaWNyb3NvZnQuRXhjaGFuZ2UuTWFuYWdlbWVudC5Qb3dlcnNoZWxsLlN1cHBvcnQsIFZlcnNpb249MTUuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzFiZjM4NTZhZDM2NGUzNQwDAAAAW01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLCBWZXJzaW9uPTE1LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFAQAAAE1NaWNyb3NvZnQuRXhjaGFuZ2UuTWFuYWdlbWVudC5Qb3dlcnNoZWxsLlN1cHBvcnQuRXhjaGFuZ2VEaWFnbm9zdGljSW5mb1Jlc3VsdAQAAAALcHJvcGVydHlCYWceQ29uZmlndXJhYmxlT2JqZWN0K3Byb3BlcnR5QmFnLENvbmZpZ3VyYWJsZU9iamVjdCtzZXJpYWxpemVyQXNzZW1ibHlWZXJzaW9uJkNvbmZpZ3VyYWJsZU9iamVjdCtpbnN0YW50aWF0aW9uRXJyb3JzBAQDAzFNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5TaW1wbGVQcm92aWRlclByb3BlcnR5QmFnAwAAADFNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5TaW1wbGVQcm92aWRlclByb3BlcnR5QmFnAwAAAA5TeXN0ZW0uVmVyc2lvbqkBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5WYWxpZGF0aW9uRXJyb3IsIE1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLCBWZXJzaW9uPTE1LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzVdXQIAAAAJBAAAAAkEAAAACQUAAAAKBQQAAAAxTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuU2ltcGxlUHJvdmlkZXJQcm9wZXJ0eUJhZwYAAAAUUHJvcGVydHlCYWcrcmVhZE9ubHkbUHJvcGVydHlCYWcrc3RvcmVWYWx1ZXNPbmx5J1Byb3BlcnR5QmFnK3RyZWF0U3dpdGNoYWJsZUFzVmFsdWVzT25seSVQcm9wZXJ0eUJhZytzZXJpYWxpemVyQXNzZW1ibHlWZXJzaW9uI1Byb3BlcnR5QmFnK3NlcmlhbGl6ZWRDdXJyZW50VmFsdWVzJFByb3BlcnR5QmFnK3NlcmlhbGl6ZWRPcmlnaW5hbFZhbHVlcwAAAAMEBAEBAQ5TeXN0ZW0uVmVyc2lvbi9NaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5Qcm9wZXJ0eUJhZytWYWx1ZVBhaXJbXQMAAAAvTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyW10DAAAAAwAAAAAAAAkFAAAACQYAAAAJBwAAAAQFAAAADlN5c3RlbS5WZXJzaW9uBAAAAAZfTWFqb3IGX01pbm9yBl9CdWlsZAlfUmV2aXNpb24AAAAACAgICA8AAAAAAAAAAAAAAAAAAAAHBgAAAAABAAAAAwAAAAQtTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyAwAAAAX4////LU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlByb3BlcnR5QmFnK1ZhbHVlUGFpcgIAAAADS2V5BVZhbHVlBAI4TWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuU2ltcGxlUHJvdmlkZXJQcm9wZXJ0eURlZmluaXRpb24DAAAAAwAAAAkJAAAABgoAAADBNjxEaWFnbm9zdGljcz4NCiAgPFByb2Nlc3NJbmZvPg0KICAgIDxpZD4yOTQ4PC9pZD4NCiAgICA8c2VydmVyTmFtZT5TT0xPLUUxOUE8L3NlcnZlck5hbWU+DQogICAgPHN0YXJ0VGltZT4yMDI0LTA1LTIyVDE1OjEyOjM4LjMwNDEyNzhaPC9zdGFydFRpbWU+DQogICAgPGN1cnJlbnRUaW1lPjIwMjQtMDUtMjNUMTk6NTc6MjQuMjgwMDg1M1o8L2N1cnJlbnRUaW1lPg0KICAgIDxsaWZldGltZT4xLjA0OjQ0OjQ1Ljk3NTk1NzU8L2xpZmV0aW1lPg0KICAgIDx0aHJlYWRDb3VudD40ODwvdGhyZWFkQ291bnQ+DQogICAgPGhhbmRsZUNvdW50PjE3NjA8L2hhbmRsZUNvdW50Pg0KICAgIDx3b3JraW5nU2V0PjEwOS44IE1CICgxMTUsMTAxLDY5NiBieXRlcyk8L3dvcmtpbmdTZXQ+DQogICAgPGZhc3RUcmFpbkV4Y2hhbmdlVmVyc2lvbj4xNS4yLjE1NDQuNDwvZmFzdFRyYWluRXhjaGFuZ2VWZXJzaW9uPg0KICA8L1Byb2Nlc3NJbmZvPg0KICA8Q29tcG9uZW50cz4NCiAgICA8UmVzb3VyY2VUaHJvdHRsaW5nPg0KICAgICAgPFJlc291cmNlVHJhY2tlcj4NCiAgICAgICAgPEFnZ3JlZ2F0ZVVzZT5Mb3c8L0FnZ3JlZ2F0ZVVzZT4NCiAgICAgICAgPFJlc291cmNlTWV0ZXIgUmVzb3VyY2U9IlByaXZhdGVCeXRlcyI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD03NSBIaWdoVG9NZWRpdW09NzMgTG93VG9NZWRpdW09NzIgTWVkaXVtVG9Mb3c9NzFdPC9QcmVzc3VyZVRyYW5zaXRpb25zPg0KICAgICAgICAgIDxQcmVzc3VyZT42PC9QcmVzc3VyZT4NCiAgICAgICAgPC9SZXNvdXJjZU1ldGVyPg0KICAgICAgICA8UmVzb3VyY2VNZXRlciBSZXNvdXJjZT0iU3lzdGVtTWVtb3J5Ij4NCiAgICAgICAgICA8Q3VycmVudFJlc291cmNlVXNlPkhpZ2g8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5IaWdoPC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTQgSGlnaFRvTWVkaXVtPTg5IExvd1RvTWVkaXVtPTg4IE1lZGl1bVRvTG93PTg0XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+OTI8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkVmVyc2lvbkJ1Y2tldHNbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0xNTAwIEhpZ2hUb01lZGl1bT0xMDAwIExvd1RvTWVkaXVtPTk5OSBNZWRpdW1Ub0xvdz04MDBdPC9QcmVzc3VyZVRyYW5zaXRpb25zPg0KICAgICAgICAgIDxQcmVzc3VyZT4yPC9QcmVzc3VyZT4NCiAgICAgICAgPC9SZXNvdXJjZU1ldGVyPg0KICAgICAgICA8UmVzb3VyY2VNZXRlciBSZXNvdXJjZT0iSmV0U2Vzc2lvbnNbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0xNTAwIEhpZ2hUb01lZGl1bT0xNDAwIExvd1RvTWVkaXVtPTEwMDAgTWVkaXVtVG9Mb3c9OTAwXTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MTQ8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJDaGVja3BvaW50RGVwdGhbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0zMDAgSGlnaFRvTWVkaXVtPTI4MCBMb3dUb01lZGl1bT0yNTAgTWVkaXVtVG9Mb3c9MjMwXTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MDwvUHJlc3N1cmU+DQogICAgICAgIDwvUmVzb3VyY2VNZXRlcj4NCiAgICAgICAgPFJlc291cmNlTWV0ZXIgUmVzb3VyY2U9IkRhdGFiYXNlVXNlZFNwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YVxRdWV1ZV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk3IExvd1RvTWVkaXVtPTk2IE1lZGl1bVRvTG93PTk0XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkRGlza1NwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YVxRdWV1ZV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk0IExvd1RvTWVkaXVtPTkwIE1lZGl1bVRvTG93PTg4XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkRGlza1NwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk0IExvd1RvTWVkaXVtPTkwIE1lZGl1bVRvTG93PTg4XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICA8L1Jlc291cmNlVHJhY2tlcj4NCiAgICAgIDxSZXNvdXJjZUxldmVsTWVkaWF0b3I+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iQm9vdFNjYW5uZXIiPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJDb250ZW50QWdncmVnYXRvciI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9IkRlbGF5ZWREZWxpdmVyeSI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9IkVuaGFuY2VkRG5zIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iSXNNZW1iZXJPZlJlc29sdmVyIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iTWVzc2FnZVJlc3VibWlzc2lvbiI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9Ik1lc3NhZ2luZ0RhdGFiYXNlIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUGlja3VwIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUmVtb3RlRGVsaXZlcnkiPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJTaGFkb3dSZWR1bmRhbmN5Ij4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUmVwbGljYXRpb24iPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJTbXRwSW4iPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJDYXRlZ29yaXplciI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgPC9SZXNvdXJjZUxldmVsTWVkaWF0b3I+DQogICAgICA8Q29uZmlndXJhdGlvbj4NCiAgICAgICAgPFJlc291cmNlVGhyb3R0bGluZ0NvbmZpZ3VyYXRpb24gRGVoeWRyYXRlTWVzc2FnZXNVbmRlck1lbW9yeVByZXNzdXJlPSJ0cnVlIiBEaXNhYmxlZFJlc291cmNlTGV2ZWxPYnNlcnZlcnM9IlN5c3RlbS5TdHJpbmdbXSIgTWF4VHJhbnNpZW50RXhjZXB0aW9uc0FsbG93ZWQ9IjUiIFJlc291cmNlTGV2ZWxPYnNlcnZlclRpbWVvdXQ9IlBUNU0iIFJlc291cmNlVGhyb3R0bGluZ0VuYWJsZWQ9InRydWUiIFNtdHBCYXNlVGhyb3R0bGluZ0RlbGF5SW50ZXJ2YWw9IlBUMFMiIFNtdHBNYXhUaHJvdHRsaW5nRGVsYXlJbnRlcnZhbD0iUFQ1NVMiIFNtdHBTdGVwVGhyb3R0bGluZ0RlbGF5SW50ZXJ2YWw9IlBUMVMiIFNtdHBTdGFydFRocm90dGxpbmdEZWxheUludGVydmFsPSJQVDFTIiBQZXJpb2RpY0RlaHlkcmF0aW9uRW5hYmxlZD0idHJ1ZSIgUGVyaW9kaWNEZWh5ZHJhdGlvbkludGVydmFsPSJQVDVNIiAvPg0KICAgICAgICA8T3ZlcnJpZGVzPg0KICAgICAgICAgIDxTdGF0dXMgT3ZlcnJpZGVDb3VudD0iMCIgT3ZlcnJpZGVhYmxlUHJvcGVydGllcz0icmVzb3VyY2V0aHJvdHRsaW5nLnByb2Nlc3NvcnRpbWUubWVkaXVtdG9oaWdoLHJlc291cmNldGhyb3R0bGluZy5wcm9jZXNzb3J0aW1lLmhpZ2h0b21lZGl1bSxyZXNvdXJjZXRocm90dGxpbmcucHJvY2Vzc29ydGltZS5sb3d0b21lZGl1bSxyZXNvdXJjZXRocm90dGxpbmcucHJvY2Vzc29ydGltZS5tZWRpdW10b2xvdyIgLz4NCiAgICAgICAgPC9PdmVycmlkZXM+DQogICAgICA8L0NvbmZpZ3VyYXRpb24+DQogICAgPC9SZXNvdXJjZVRocm90dGxpbmc+DQogIDwvQ29tcG9uZW50cz4NCjwvRGlhZ25vc3RpY3M+AfX////4////CQwAAAAJDQAAAAHy////+P///wkPAAAACRAAAAAHBwAAAAABAAAAAQAAAAQtTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyAwAAAAHv////+P///wkJAAAACgUJAAAAOE1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlNpbXBsZVByb3ZpZGVyUHJvcGVydHlEZWZpbml0aW9uBQAAAAVmbGFncxdQcm9wZXJ0eURlZmluaXRpb24rbmFtZRdQcm9wZXJ0eURlZmluaXRpb24rdHlwZRtQcm9wZXJ0eURlZmluaXRpb24rdHlwZU5hbWU5UHJvcGVydHlEZWZpbml0aW9uK3JlcXVpcmVkUHJvcGVydHlEZWZpbml0aW9uc1doZW5SZWFkaW5nAAEDAQMIH1N5c3RlbS5Vbml0eVNlcmlhbGl6YXRpb25Ib2xkZXKzAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLklDb2xsZWN0aW9uYDFbW01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlByb3BlcnR5RGVmaW5pdGlvbiwgTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEsIFZlcnNpb249MTUuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzFiZjM4NTZhZDM2NGUzNV1dAwAAAAAAAAAGEwAAAAZSZXN1bHQJFAAAAAYVAAAAWlN5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQoBDAAAAAkAAAAAAAAABhYAAAAPRXhjaGFuZ2VWZXJzaW9uCRcAAAAGGAAAAIoBTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuRXhjaGFuZ2VPYmplY3RWZXJzaW9uLCBNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1CgUNAAAALU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlT2JqZWN0VmVyc2lvbgMAAAAFTWFqb3IFTWlub3INRXhjaGFuZ2VCdWlsZAAABAICJU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlQnVpbGQDAAAAAwAAAAAKBef///8lTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuRXhjaGFuZ2VCdWlsZAQAAAAFTWFqb3IFTWlub3IFQnVpbGQNQnVpbGRSZXZpc2lvbgAAAAACAg4OAwAAAA4AZAAAAAEPAAAACQAAAAABAAAGGgAAAAtPYmplY3RTdGF0ZQkbAAAABhwAAACAAU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLk9iamVjdFN0YXRlLCBNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1CgUQAAAAI01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLk9iamVjdFN0YXRlAQAAAAd2YWx1ZV9fAAgDAAAAAAAAAAQUAAAAH1N5c3RlbS5Vbml0eVNlcmlhbGl6YXRpb25Ib2xkZXIDAAAABERhdGEJVW5pdHlUeXBlDEFzc2VtYmx5TmFtZQEAAQgGHQAAAA1TeXN0ZW0uU3RyaW5nBAAAAAYeAAAAS21zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQEXAAAAFAAAAAYfAAAALU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlT2JqZWN0VmVyc2lvbgQAAAAGIAAAAFtNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1ARsAAAAUAAAABiEAAAAjTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuT2JqZWN0U3RhdGUEAAAACSAAAAALAeDVNaKra4Zaq2YXwwxFnWp5x1Sa4XEkA+BaGBFlAPg= + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling1.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling1.xml new file mode 100644 index 0000000000..c43c915ea6 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling1.xml @@ -0,0 +1,31 @@ + + + + Microsoft.Exchange.Management.Powershell.Support.ExchangeDiagnosticInfoResult + Microsoft.Exchange.Data.ConfigurableObject + System.Object + + <Diagnostics>_x000D__x000A_ <ProcessInfo>_x000D__x000A_ <id>2948</id>_x000D__x000A_ <serverName>SOLO-E19A</serverName>_x000D__x000A_ <startTime>2024-05-22T15:12:38.3041278Z</startTime>_x000D__x000A_ <currentTime>2024-05-23T19:57:24.2800853Z</currentTime>_x000D__x000A_ <lifetime>1.04:44:45.9759575</lifetime>_x000D__x000A_ <threadCount>48</threadCount>_x000D__x000A_ <handleCount>1760</handleCount>_x000D__x000A_ <workingSet>109.8 MB (115,101,696 bytes)</workingSet>_x000D__x000A_ <fastTrainExchangeVersion>15.2.1544.4</fastTrainExchangeVersion>_x000D__x000A_ </ProcessInfo>_x000D__x000A_ <Components>_x000D__x000A_ <ResourceThrottling>_x000D__x000A_ <ResourceTracker>_x000D__x000A_ <AggregateUse>Low</AggregateUse>_x000D__x000A_ <ResourceMeter Resource="PrivateBytes">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=75 HighToMedium=73 LowToMedium=72 MediumToLow=71]</PressureTransitions>_x000D__x000A_ <Pressure>6</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="SystemMemory">_x000D__x000A_ <CurrentResourceUse>High</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>High</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=94 HighToMedium=89 LowToMedium=88 MediumToLow=84]</PressureTransitions>_x000D__x000A_ <Pressure>92</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedVersionBuckets[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1000 LowToMedium=999 MediumToLow=800]</PressureTransitions>_x000D__x000A_ <Pressure>2</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="JetSessions[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1400 LowToMedium=1000 MediumToLow=900]</PressureTransitions>_x000D__x000A_ <Pressure>14</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="CheckpointDepth[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=300 HighToMedium=280 LowToMedium=250 MediumToLow=230]</PressureTransitions>_x000D__x000A_ <Pressure>0</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="DatabaseUsedSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>High</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=97 LowToMedium=96 MediumToLow=94]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ </ResourceTracker>_x000D__x000A_ <ResourceLevelMediator>_x000D__x000A_ <ResourceLevelObserver Name="BootScanner">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ContentAggregator">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="DelayedDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="EnhancedDns">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="IsMemberOfResolver">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessageResubmission">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessagingDatabase">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Pickup">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="RemoteDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ShadowRedundancy">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Replication">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="SmtpIn">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Categorizer">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ </ResourceLevelMediator>_x000D__x000A_ <Configuration>_x000D__x000A_ <ResourceThrottlingConfiguration DehydrateMessagesUnderMemoryPressure="true" DisabledResourceLevelObservers="System.String[]" MaxTransientExceptionsAllowed="5" ResourceLevelObserverTimeout="PT5M" ResourceThrottlingEnabled="true" SmtpBaseThrottlingDelayInterval="PT0S" SmtpMaxThrottlingDelayInterval="PT55S" SmtpStepThrottlingDelayInterval="PT1S" SmtpStartThrottlingDelayInterval="PT1S" PeriodicDehydrationEnabled="true" PeriodicDehydrationInterval="PT5M" />_x000D__x000A_ <Overrides>_x000D__x000A_ <Status OverrideCount="0" OverrideableProperties="resourcethrottling.processortime.mediumtohigh,resourcethrottling.processortime.hightomedium,resourcethrottling.processortime.lowtomedium,resourcethrottling.processortime.mediumtolow" />_x000D__x000A_ </Overrides>_x000D__x000A_ </Configuration>_x000D__x000A_ </ResourceThrottling>_x000D__x000A_ </Components>_x000D__x000A_</Diagnostics> + + <Diagnostics>_x000D__x000A_ <ProcessInfo>_x000D__x000A_ <id>2948</id>_x000D__x000A_ <serverName>SOLO-E19A</serverName>_x000D__x000A_ <startTime>2024-05-22T15:12:38.3041278Z</startTime>_x000D__x000A_ <currentTime>2024-05-23T19:57:24.2800853Z</currentTime>_x000D__x000A_ <lifetime>1.04:44:45.9759575</lifetime>_x000D__x000A_ <threadCount>48</threadCount>_x000D__x000A_ <handleCount>1760</handleCount>_x000D__x000A_ <workingSet>109.8 MB (115,101,696 bytes)</workingSet>_x000D__x000A_ <fastTrainExchangeVersion>15.2.1544.4</fastTrainExchangeVersion>_x000D__x000A_ </ProcessInfo>_x000D__x000A_ <Components>_x000D__x000A_ <ResourceThrottling>_x000D__x000A_ <ResourceTracker>_x000D__x000A_ <AggregateUse>Low</AggregateUse>_x000D__x000A_ <ResourceMeter Resource="PrivateBytes">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=75 HighToMedium=73 LowToMedium=72 MediumToLow=71]</PressureTransitions>_x000D__x000A_ <Pressure>6</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="SystemMemory">_x000D__x000A_ <CurrentResourceUse>High</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>High</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=94 HighToMedium=89 LowToMedium=88 MediumToLow=84]</PressureTransitions>_x000D__x000A_ <Pressure>92</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedVersionBuckets[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1000 LowToMedium=999 MediumToLow=800]</PressureTransitions>_x000D__x000A_ <Pressure>2</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="JetSessions[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=1500 HighToMedium=1400 LowToMedium=1000 MediumToLow=900]</PressureTransitions>_x000D__x000A_ <Pressure>14</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="CheckpointDepth[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=300 HighToMedium=280 LowToMedium=250 MediumToLow=230]</PressureTransitions>_x000D__x000A_ <Pressure>0</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="DatabaseUsedSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=97 LowToMedium=96 MediumToLow=94]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ <ResourceMeter Resource="UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data]">_x000D__x000A_ <CurrentResourceUse>Low</CurrentResourceUse>_x000D__x000A_ <PreviousResourceUse>Low</PreviousResourceUse>_x000D__x000A_ <PressureTransitions>[PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]</PressureTransitions>_x000D__x000A_ <Pressure>33</Pressure>_x000D__x000A_ </ResourceMeter>_x000D__x000A_ </ResourceTracker>_x000D__x000A_ <ResourceLevelMediator>_x000D__x000A_ <ResourceLevelObserver Name="BootScanner">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ContentAggregator">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="DelayedDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="EnhancedDns">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="IsMemberOfResolver">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessageResubmission">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="MessagingDatabase">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Pickup">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="RemoteDelivery">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="ShadowRedundancy">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Replication">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="SmtpIn">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ <ResourceLevelObserver Name="Categorizer">_x000D__x000A_ <Paused>false</Paused>_x000D__x000A_ <SubStatus></SubStatus>_x000D__x000A_ </ResourceLevelObserver>_x000D__x000A_ </ResourceLevelMediator>_x000D__x000A_ <Configuration>_x000D__x000A_ <ResourceThrottlingConfiguration DehydrateMessagesUnderMemoryPressure="true" DisabledResourceLevelObservers="System.String[]" MaxTransientExceptionsAllowed="5" ResourceLevelObserverTimeout="PT5M" ResourceThrottlingEnabled="true" SmtpBaseThrottlingDelayInterval="PT0S" SmtpMaxThrottlingDelayInterval="PT55S" SmtpStepThrottlingDelayInterval="PT1S" SmtpStartThrottlingDelayInterval="PT1S" PeriodicDehydrationEnabled="true" PeriodicDehydrationInterval="PT5M" />_x000D__x000A_ <Overrides>_x000D__x000A_ <Status OverrideCount="0" OverrideableProperties="resourcethrottling.processortime.mediumtohigh,resourcethrottling.processortime.hightomedium,resourcethrottling.processortime.lowtomedium,resourcethrottling.processortime.mediumtolow" />_x000D__x000A_ </Overrides>_x000D__x000A_ </Configuration>_x000D__x000A_ </ResourceThrottling>_x000D__x000A_ </Components>_x000D__x000A_</Diagnostics> + + true + + + Microsoft.Exchange.Data.ObjectState + System.Enum + System.ValueType + System.Object + + New + 0 + + + + solo-e19a.solo.com + 5754fdf0-384b-433f-a855-da6ba608c57e + false + I3NpZyOrJwAAAAEAAAD/////AQAAAAAAAAAMAgAAAHRNaWNyb3NvZnQuRXhjaGFuZ2UuTWFuYWdlbWVudC5Qb3dlcnNoZWxsLlN1cHBvcnQsIFZlcnNpb249MTUuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzFiZjM4NTZhZDM2NGUzNQwDAAAAW01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLCBWZXJzaW9uPTE1LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFAQAAAE1NaWNyb3NvZnQuRXhjaGFuZ2UuTWFuYWdlbWVudC5Qb3dlcnNoZWxsLlN1cHBvcnQuRXhjaGFuZ2VEaWFnbm9zdGljSW5mb1Jlc3VsdAQAAAALcHJvcGVydHlCYWceQ29uZmlndXJhYmxlT2JqZWN0K3Byb3BlcnR5QmFnLENvbmZpZ3VyYWJsZU9iamVjdCtzZXJpYWxpemVyQXNzZW1ibHlWZXJzaW9uJkNvbmZpZ3VyYWJsZU9iamVjdCtpbnN0YW50aWF0aW9uRXJyb3JzBAQDAzFNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5TaW1wbGVQcm92aWRlclByb3BlcnR5QmFnAwAAADFNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5TaW1wbGVQcm92aWRlclByb3BlcnR5QmFnAwAAAA5TeXN0ZW0uVmVyc2lvbqkBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5WYWxpZGF0aW9uRXJyb3IsIE1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLCBWZXJzaW9uPTE1LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzVdXQIAAAAJBAAAAAkEAAAACQUAAAAKBQQAAAAxTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuU2ltcGxlUHJvdmlkZXJQcm9wZXJ0eUJhZwYAAAAUUHJvcGVydHlCYWcrcmVhZE9ubHkbUHJvcGVydHlCYWcrc3RvcmVWYWx1ZXNPbmx5J1Byb3BlcnR5QmFnK3RyZWF0U3dpdGNoYWJsZUFzVmFsdWVzT25seSVQcm9wZXJ0eUJhZytzZXJpYWxpemVyQXNzZW1ibHlWZXJzaW9uI1Byb3BlcnR5QmFnK3NlcmlhbGl6ZWRDdXJyZW50VmFsdWVzJFByb3BlcnR5QmFnK3NlcmlhbGl6ZWRPcmlnaW5hbFZhbHVlcwAAAAMEBAEBAQ5TeXN0ZW0uVmVyc2lvbi9NaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YS5Qcm9wZXJ0eUJhZytWYWx1ZVBhaXJbXQMAAAAvTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyW10DAAAAAwAAAAAAAAkFAAAACQYAAAAJBwAAAAQFAAAADlN5c3RlbS5WZXJzaW9uBAAAAAZfTWFqb3IGX01pbm9yBl9CdWlsZAlfUmV2aXNpb24AAAAACAgICA8AAAAAAAAAAAAAAAAAAAAHBgAAAAABAAAAAwAAAAQtTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyAwAAAAX4////LU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlByb3BlcnR5QmFnK1ZhbHVlUGFpcgIAAAADS2V5BVZhbHVlBAI4TWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuU2ltcGxlUHJvdmlkZXJQcm9wZXJ0eURlZmluaXRpb24DAAAAAwAAAAkJAAAABgoAAADBNjxEaWFnbm9zdGljcz4NCiAgPFByb2Nlc3NJbmZvPg0KICAgIDxpZD4yOTQ4PC9pZD4NCiAgICA8c2VydmVyTmFtZT5TT0xPLUUxOUE8L3NlcnZlck5hbWU+DQogICAgPHN0YXJ0VGltZT4yMDI0LTA1LTIyVDE1OjEyOjM4LjMwNDEyNzhaPC9zdGFydFRpbWU+DQogICAgPGN1cnJlbnRUaW1lPjIwMjQtMDUtMjNUMTk6NTc6MjQuMjgwMDg1M1o8L2N1cnJlbnRUaW1lPg0KICAgIDxsaWZldGltZT4xLjA0OjQ0OjQ1Ljk3NTk1NzU8L2xpZmV0aW1lPg0KICAgIDx0aHJlYWRDb3VudD40ODwvdGhyZWFkQ291bnQ+DQogICAgPGhhbmRsZUNvdW50PjE3NjA8L2hhbmRsZUNvdW50Pg0KICAgIDx3b3JraW5nU2V0PjEwOS44IE1CICgxMTUsMTAxLDY5NiBieXRlcyk8L3dvcmtpbmdTZXQ+DQogICAgPGZhc3RUcmFpbkV4Y2hhbmdlVmVyc2lvbj4xNS4yLjE1NDQuNDwvZmFzdFRyYWluRXhjaGFuZ2VWZXJzaW9uPg0KICA8L1Byb2Nlc3NJbmZvPg0KICA8Q29tcG9uZW50cz4NCiAgICA8UmVzb3VyY2VUaHJvdHRsaW5nPg0KICAgICAgPFJlc291cmNlVHJhY2tlcj4NCiAgICAgICAgPEFnZ3JlZ2F0ZVVzZT5Mb3c8L0FnZ3JlZ2F0ZVVzZT4NCiAgICAgICAgPFJlc291cmNlTWV0ZXIgUmVzb3VyY2U9IlByaXZhdGVCeXRlcyI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD03NSBIaWdoVG9NZWRpdW09NzMgTG93VG9NZWRpdW09NzIgTWVkaXVtVG9Mb3c9NzFdPC9QcmVzc3VyZVRyYW5zaXRpb25zPg0KICAgICAgICAgIDxQcmVzc3VyZT42PC9QcmVzc3VyZT4NCiAgICAgICAgPC9SZXNvdXJjZU1ldGVyPg0KICAgICAgICA8UmVzb3VyY2VNZXRlciBSZXNvdXJjZT0iU3lzdGVtTWVtb3J5Ij4NCiAgICAgICAgICA8Q3VycmVudFJlc291cmNlVXNlPkhpZ2g8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5IaWdoPC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTQgSGlnaFRvTWVkaXVtPTg5IExvd1RvTWVkaXVtPTg4IE1lZGl1bVRvTG93PTg0XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+OTI8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkVmVyc2lvbkJ1Y2tldHNbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0xNTAwIEhpZ2hUb01lZGl1bT0xMDAwIExvd1RvTWVkaXVtPTk5OSBNZWRpdW1Ub0xvdz04MDBdPC9QcmVzc3VyZVRyYW5zaXRpb25zPg0KICAgICAgICAgIDxQcmVzc3VyZT4yPC9QcmVzc3VyZT4NCiAgICAgICAgPC9SZXNvdXJjZU1ldGVyPg0KICAgICAgICA8UmVzb3VyY2VNZXRlciBSZXNvdXJjZT0iSmV0U2Vzc2lvbnNbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0xNTAwIEhpZ2hUb01lZGl1bT0xNDAwIExvd1RvTWVkaXVtPTEwMDAgTWVkaXVtVG9Mb3c9OTAwXTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MTQ8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJDaGVja3BvaW50RGVwdGhbQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnRcRXhjaGFuZ2UgU2VydmVyXFYxNVxUcmFuc3BvcnRSb2xlc1xkYXRhXFF1ZXVlXG1haWwucXVlXSI+DQogICAgICAgICAgPEN1cnJlbnRSZXNvdXJjZVVzZT5Mb3c8L0N1cnJlbnRSZXNvdXJjZVVzZT4NCiAgICAgICAgICA8UHJldmlvdXNSZXNvdXJjZVVzZT5Mb3c8L1ByZXZpb3VzUmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXNzdXJlVHJhbnNpdGlvbnM+W1ByZXNzdXJlVHJhbnNpdGlvbnM6IE1lZGl1bVRvSGlnaD0zMDAgSGlnaFRvTWVkaXVtPTI4MCBMb3dUb01lZGl1bT0yNTAgTWVkaXVtVG9Mb3c9MjMwXTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MDwvUHJlc3N1cmU+DQogICAgICAgIDwvUmVzb3VyY2VNZXRlcj4NCiAgICAgICAgPFJlc291cmNlTWV0ZXIgUmVzb3VyY2U9IkRhdGFiYXNlVXNlZFNwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YVxRdWV1ZV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk3IExvd1RvTWVkaXVtPTk2IE1lZGl1bVRvTG93PTk0XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkRGlza1NwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YVxRdWV1ZV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk0IExvd1RvTWVkaXVtPTkwIE1lZGl1bVRvTG93PTg4XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICAgIDxSZXNvdXJjZU1ldGVyIFJlc291cmNlPSJVc2VkRGlza1NwYWNlW0M6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0XEV4Y2hhbmdlIFNlcnZlclxWMTVcVHJhbnNwb3J0Um9sZXNcZGF0YV0iPg0KICAgICAgICAgIDxDdXJyZW50UmVzb3VyY2VVc2U+TG93PC9DdXJyZW50UmVzb3VyY2VVc2U+DQogICAgICAgICAgPFByZXZpb3VzUmVzb3VyY2VVc2U+TG93PC9QcmV2aW91c1Jlc291cmNlVXNlPg0KICAgICAgICAgIDxQcmVzc3VyZVRyYW5zaXRpb25zPltQcmVzc3VyZVRyYW5zaXRpb25zOiBNZWRpdW1Ub0hpZ2g9OTkgSGlnaFRvTWVkaXVtPTk0IExvd1RvTWVkaXVtPTkwIE1lZGl1bVRvTG93PTg4XTwvUHJlc3N1cmVUcmFuc2l0aW9ucz4NCiAgICAgICAgICA8UHJlc3N1cmU+MzM8L1ByZXNzdXJlPg0KICAgICAgICA8L1Jlc291cmNlTWV0ZXI+DQogICAgICA8L1Jlc291cmNlVHJhY2tlcj4NCiAgICAgIDxSZXNvdXJjZUxldmVsTWVkaWF0b3I+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iQm9vdFNjYW5uZXIiPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJDb250ZW50QWdncmVnYXRvciI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9IkRlbGF5ZWREZWxpdmVyeSI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9IkVuaGFuY2VkRG5zIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iSXNNZW1iZXJPZlJlc29sdmVyIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iTWVzc2FnZVJlc3VibWlzc2lvbiI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgICA8UmVzb3VyY2VMZXZlbE9ic2VydmVyIE5hbWU9Ik1lc3NhZ2luZ0RhdGFiYXNlIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUGlja3VwIj4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUmVtb3RlRGVsaXZlcnkiPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJTaGFkb3dSZWR1bmRhbmN5Ij4NCiAgICAgICAgICA8UGF1c2VkPmZhbHNlPC9QYXVzZWQ+DQogICAgICAgICAgPFN1YlN0YXR1cz48L1N1YlN0YXR1cz4NCiAgICAgICAgPC9SZXNvdXJjZUxldmVsT2JzZXJ2ZXI+DQogICAgICAgIDxSZXNvdXJjZUxldmVsT2JzZXJ2ZXIgTmFtZT0iUmVwbGljYXRpb24iPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJTbXRwSW4iPg0KICAgICAgICAgIDxQYXVzZWQ+ZmFsc2U8L1BhdXNlZD4NCiAgICAgICAgICA8U3ViU3RhdHVzPjwvU3ViU3RhdHVzPg0KICAgICAgICA8L1Jlc291cmNlTGV2ZWxPYnNlcnZlcj4NCiAgICAgICAgPFJlc291cmNlTGV2ZWxPYnNlcnZlciBOYW1lPSJDYXRlZ29yaXplciI+DQogICAgICAgICAgPFBhdXNlZD5mYWxzZTwvUGF1c2VkPg0KICAgICAgICAgIDxTdWJTdGF0dXM+PC9TdWJTdGF0dXM+DQogICAgICAgIDwvUmVzb3VyY2VMZXZlbE9ic2VydmVyPg0KICAgICAgPC9SZXNvdXJjZUxldmVsTWVkaWF0b3I+DQogICAgICA8Q29uZmlndXJhdGlvbj4NCiAgICAgICAgPFJlc291cmNlVGhyb3R0bGluZ0NvbmZpZ3VyYXRpb24gRGVoeWRyYXRlTWVzc2FnZXNVbmRlck1lbW9yeVByZXNzdXJlPSJ0cnVlIiBEaXNhYmxlZFJlc291cmNlTGV2ZWxPYnNlcnZlcnM9IlN5c3RlbS5TdHJpbmdbXSIgTWF4VHJhbnNpZW50RXhjZXB0aW9uc0FsbG93ZWQ9IjUiIFJlc291cmNlTGV2ZWxPYnNlcnZlclRpbWVvdXQ9IlBUNU0iIFJlc291cmNlVGhyb3R0bGluZ0VuYWJsZWQ9InRydWUiIFNtdHBCYXNlVGhyb3R0bGluZ0RlbGF5SW50ZXJ2YWw9IlBUMFMiIFNtdHBNYXhUaHJvdHRsaW5nRGVsYXlJbnRlcnZhbD0iUFQ1NVMiIFNtdHBTdGVwVGhyb3R0bGluZ0RlbGF5SW50ZXJ2YWw9IlBUMVMiIFNtdHBTdGFydFRocm90dGxpbmdEZWxheUludGVydmFsPSJQVDFTIiBQZXJpb2RpY0RlaHlkcmF0aW9uRW5hYmxlZD0idHJ1ZSIgUGVyaW9kaWNEZWh5ZHJhdGlvbkludGVydmFsPSJQVDVNIiAvPg0KICAgICAgICA8T3ZlcnJpZGVzPg0KICAgICAgICAgIDxTdGF0dXMgT3ZlcnJpZGVDb3VudD0iMCIgT3ZlcnJpZGVhYmxlUHJvcGVydGllcz0icmVzb3VyY2V0aHJvdHRsaW5nLnByb2Nlc3NvcnRpbWUubWVkaXVtdG9oaWdoLHJlc291cmNldGhyb3R0bGluZy5wcm9jZXNzb3J0aW1lLmhpZ2h0b21lZGl1bSxyZXNvdXJjZXRocm90dGxpbmcucHJvY2Vzc29ydGltZS5sb3d0b21lZGl1bSxyZXNvdXJjZXRocm90dGxpbmcucHJvY2Vzc29ydGltZS5tZWRpdW10b2xvdyIgLz4NCiAgICAgICAgPC9PdmVycmlkZXM+DQogICAgICA8L0NvbmZpZ3VyYXRpb24+DQogICAgPC9SZXNvdXJjZVRocm90dGxpbmc+DQogIDwvQ29tcG9uZW50cz4NCjwvRGlhZ25vc3RpY3M+AfX////4////CQwAAAAJDQAAAAHy////+P///wkPAAAACRAAAAAHBwAAAAABAAAAAQAAAAQtTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuUHJvcGVydHlCYWcrVmFsdWVQYWlyAwAAAAHv////+P///wkJAAAACgUJAAAAOE1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlNpbXBsZVByb3ZpZGVyUHJvcGVydHlEZWZpbml0aW9uBQAAAAVmbGFncxdQcm9wZXJ0eURlZmluaXRpb24rbmFtZRdQcm9wZXJ0eURlZmluaXRpb24rdHlwZRtQcm9wZXJ0eURlZmluaXRpb24rdHlwZU5hbWU5UHJvcGVydHlEZWZpbml0aW9uK3JlcXVpcmVkUHJvcGVydHlEZWZpbml0aW9uc1doZW5SZWFkaW5nAAEDAQMIH1N5c3RlbS5Vbml0eVNlcmlhbGl6YXRpb25Ib2xkZXKzAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLklDb2xsZWN0aW9uYDFbW01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLlByb3BlcnR5RGVmaW5pdGlvbiwgTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEsIFZlcnNpb249MTUuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MzFiZjM4NTZhZDM2NGUzNV1dAwAAAAAAAAAGEwAAAAZSZXN1bHQJFAAAAAYVAAAAWlN5c3RlbS5TdHJpbmcsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQoBDAAAAAkAAAAAAAAABhYAAAAPRXhjaGFuZ2VWZXJzaW9uCRcAAAAGGAAAAIoBTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuRXhjaGFuZ2VPYmplY3RWZXJzaW9uLCBNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1CgUNAAAALU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlT2JqZWN0VmVyc2lvbgMAAAAFTWFqb3IFTWlub3INRXhjaGFuZ2VCdWlsZAAABAICJU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlQnVpbGQDAAAAAwAAAAAKBef///8lTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuRXhjaGFuZ2VCdWlsZAQAAAAFTWFqb3IFTWlub3IFQnVpbGQNQnVpbGRSZXZpc2lvbgAAAAACAg4OAwAAAA4AZAAAAAEPAAAACQAAAAABAAAGGgAAAAtPYmplY3RTdGF0ZQkbAAAABhwAAACAAU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLk9iamVjdFN0YXRlLCBNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1CgUQAAAAI01pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLk9iamVjdFN0YXRlAQAAAAd2YWx1ZV9fAAgDAAAAAAAAAAQUAAAAH1N5c3RlbS5Vbml0eVNlcmlhbGl6YXRpb25Ib2xkZXIDAAAABERhdGEJVW5pdHlUeXBlDEFzc2VtYmx5TmFtZQEAAQgGHQAAAA1TeXN0ZW0uU3RyaW5nBAAAAAYeAAAAS21zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQEXAAAAFAAAAAYfAAAALU1pY3Jvc29mdC5FeGNoYW5nZS5EYXRhLkV4Y2hhbmdlT2JqZWN0VmVyc2lvbgQAAAAGIAAAAFtNaWNyb3NvZnQuRXhjaGFuZ2UuRGF0YSwgVmVyc2lvbj0xNS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj0zMWJmMzg1NmFkMzY0ZTM1ARsAAAAUAAAABiEAAAAjTWljcm9zb2Z0LkV4Y2hhbmdlLkRhdGEuT2JqZWN0U3RhdGUEAAAACSAAAAALAeDVNaKra4Zaq2YXwwxFnWp5x1Sa4XEkA+BaGBFlAPg= + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 index 25d1680608..87603c388b 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 @@ -46,6 +46,8 @@ Describe "Testing Health Checker by Mock Data Imports" { Mock Invoke-ScriptBlockHandler -ParameterFilter { $ScriptBlockDescription -eq "Getting applicationHost.config" } -MockWith { return Get-Content "$Script:MockDataCollectionRoot\Exchange\IIS\applicationHost1.config" -Raw -Encoding UTF8 } Mock Get-ExchangeDiagnosticInfo -ParameterFilter { $Process -eq "Microsoft.Exchange.Directory.TopologyService" -and $Component -eq "VariantConfiguration" -and $Argument -eq "Overrides" } ` -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo_ADTopVariantConfiguration1.xml" } + Mock Get-ExchangeDiagnosticInfo -ParameterFilter { $Process -eq "EdgeTransport" -and $Component -eq "ResourceThrottling" } ` + -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling1.xml" } Mock Get-IISModules { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetIISModulesNoTokenCacheModule.xml" } Mock Get-Service { param( @@ -63,6 +65,7 @@ Describe "Testing Health Checker by Mock Data Imports" { SetActiveDisplayGrouping "Exchange Information" TestObjectMatch "Setting Overrides Detected" $true TestObjectMatch "Extended Protection Enabled (Any VDir)" $true + TestObjectMatch "Transport Back Pressure" "--ERROR-- The following resources are causing back pressure: DatabaseUsedSpace" -WriteType "Red" } It "Dependent Services" { diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.MockedCalls.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.MockedCalls.Tests.ps1 index 593ac847be..bae9839a8d 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.MockedCalls.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.MockedCalls.Tests.ps1 @@ -95,7 +95,7 @@ Describe "Testing Health Checker by Mock Data Imports" { Assert-MockCalled Get-ReceiveConnector -Exactly 1 Assert-MockCalled Get-SendConnector -Exactly 1 Assert-MockCalled Get-IISModules -Exactly 1 - Assert-MockCalled Get-ExchangeDiagnosticInfo -Exactly 1 + Assert-MockCalled Get-ExchangeDiagnosticInfo -Exactly 2 Assert-MockCalled Get-ExchangeADSplitPermissionsEnabled -Exactly 1 Assert-MockCalled Get-DynamicDistributionGroup -Exactly 1 Assert-MockCalled Get-ActiveSyncVirtualDirectory -Exactly 1 diff --git a/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 b/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 index d4eadd8800..5f5b7a6892 100644 --- a/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 @@ -233,6 +233,8 @@ function Get-ExchangeDiagnosticInfo { param($Argument, $Component, $Process, $Se Mock Get-ExchangeDiagnosticInfo -ParameterFilter { $Process -eq "Microsoft.Exchange.Directory.TopologyService" -and $Component -eq "VariantConfiguration" -and $Argument -eq "Overrides" } ` -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo_ADTopVariantConfiguration.xml" } +Mock Get-ExchangeDiagnosticInfo -ParameterFilter { $Process -eq "EdgeTransport" -and $Component -eq "ResourceThrottling" } ` + -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling.xml" } # Need to use function instead of Mock for Exchange cmdlets function Get-ExchangeServer { From 2cfea2264f86e3a0be7175a2e21e5b95b0a2872d Mon Sep 17 00:00:00 2001 From: Lukas Sassl Date: Thu, 13 Jun 2024 09:40:06 +0200 Subject: [PATCH 05/11] Replaced SystemTlsVersions with SystemDefaultTlsVersions --- .../ExchangeExtendedProtectionManagement.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Security/src/ExchangeExtendedProtectionManagement/ExchangeExtendedProtectionManagement.ps1 b/Security/src/ExchangeExtendedProtectionManagement/ExchangeExtendedProtectionManagement.ps1 index 281d2df24d..bbef3bdc66 100644 --- a/Security/src/ExchangeExtendedProtectionManagement/ExchangeExtendedProtectionManagement.ps1 +++ b/Security/src/ExchangeExtendedProtectionManagement/ExchangeExtendedProtectionManagement.ps1 @@ -481,9 +481,9 @@ begin { $tlsSettings.TlsSettings.Registry.Net.Values | ForEach-Object { - $displayObject += NewDisplayObject "SystemTlsVersions" -Location $_.MicrosoftRegistryLocation -Value $_.SystemDefaultTlsVersionsValue + $displayObject += NewDisplayObject "SystemDefaultTlsVersions" -Location $_.MicrosoftRegistryLocation -Value $_.SystemDefaultTlsVersionsValue $displayObject += NewDisplayObject "SchUseStrongCrypto" -Location $_.MicrosoftRegistryLocation -Value $_.SchUseStrongCryptoValue - $displayObject += NewDisplayObject "SystemTlsVersions" -Location $_.WowRegistryLocation -Value $_.WowSystemDefaultTlsVersionsValue + $displayObject += NewDisplayObject "SystemDefaultTlsVersions" -Location $_.WowRegistryLocation -Value $_.WowSystemDefaultTlsVersionsValue $displayObject += NewDisplayObject "SchUseStrongCrypto" -Location $_.WowRegistryLocation -Value $_.WowSchUseStrongCryptoValue } $stringOutput = [string]::Empty From 5ad52e693157e41a0d0670369ac598f70e470278 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Thu, 23 May 2024 14:26:12 -0500 Subject: [PATCH 06/11] Handle list writers starting at different index --- Databases/VSSTester/Logging/Get-VSSWriter.ps1 | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Databases/VSSTester/Logging/Get-VSSWriter.ps1 b/Databases/VSSTester/Logging/Get-VSSWriter.ps1 index 01b165a0fb..7ea160b20d 100644 --- a/Databases/VSSTester/Logging/Get-VSSWriter.ps1 +++ b/Databases/VSSTester/Logging/Get-VSSWriter.ps1 @@ -11,7 +11,19 @@ function Get-VSSWriter { throw "Unable to list vss writers" } - for ($lineNumber = 3; $lineNumber -lt $writersText.Count; $lineNumber += 6) { + $startIndex = 3 + + if (-not ($writersText[$startIndex] -like "Writer name*")) { + Write-Host "Finding the first writer..." + for ($lineNumber = $startIndex; $lineNumber -lt $writersText.Count; $lineNumber++) { + if ($writersText[$lineNumber] -like "Writer name*") { + $startIndex = $lineNumber + break + } + } + } + + for ($lineNumber = $startIndex; $lineNumber -lt $writersText.Count; $lineNumber += 6) { [PSCustomObject]@{ Name = $writersText[$lineNumber].Substring($writersText[$lineNumber].IndexOf("'") + 1).TrimEnd("'") Id = $writersText[$lineNumber + 1].Substring($writersText[$lineNumber + 1].IndexOf("{") + 1).TrimEnd("}") From 3ce23836fc504b9d08743035b060f6f5c83790fd Mon Sep 17 00:00:00 2001 From: David Paulson Date: Wed, 8 May 2024 16:53:05 -0500 Subject: [PATCH 07/11] Add Try Catch for write to screen --- .../HealthChecker/Writers/Write-Functions.ps1 | 25 +++++--- .../Writers/Write-ResultsToScreen.ps1 | 62 +++++++++++-------- 2 files changed, 54 insertions(+), 33 deletions(-) diff --git a/Diagnostics/HealthChecker/Writers/Write-Functions.ps1 b/Diagnostics/HealthChecker/Writers/Write-Functions.ps1 index 2fda00431f..a54e1ed100 100644 --- a/Diagnostics/HealthChecker/Writers/Write-Functions.ps1 +++ b/Diagnostics/HealthChecker/Writers/Write-Functions.ps1 @@ -40,14 +40,23 @@ function Write-HostLog ($message) { function Write-OutColumns($OutColumns) { if ($null -ne $OutColumns) { - $stringOutput = $null - $OutColumns.DisplayObject | - Out-Columns -Properties $OutColumns.SelectProperties ` - -ColorizerFunctions $OutColumns.ColorizerFunctions ` - -IndentSpaces $OutColumns.IndentSpaces ` - -StringOutput ([ref]$stringOutput) - $stringOutput | Out-File ($Script:OutputFullPath) -Append - Write-DebugLog $stringOutput + try { + $stringOutput = $null + $params = @{ + Properties = $OutColumns.SelectProperties + ColorizerFunctions = $OutColumns.ColorizerFunctions + IndentSpaces = $OutColumns.IndentSpaces + StringOutput = ([ref]$stringOutput) + } + $OutColumns.DisplayObject | Out-Columns @params + $stringOutput | Out-File ($Script:OutputFullPath) -Append + Write-DebugLog $stringOutput + } catch { + # We do not want to call Invoke-CatchActions here because we want the issues reported. + Write-Verbose "Failed to export Out-Columns. Inner Exception: $_" + $s = $OutColumns.DisplayObject | Out-String + Write-DebugLog $s + } } } diff --git a/Diagnostics/HealthChecker/Writers/Write-ResultsToScreen.ps1 b/Diagnostics/HealthChecker/Writers/Write-ResultsToScreen.ps1 index 4ed3ec0fac..7af275a172 100644 --- a/Diagnostics/HealthChecker/Writers/Write-ResultsToScreen.ps1 +++ b/Diagnostics/HealthChecker/Writers/Write-ResultsToScreen.ps1 @@ -20,36 +20,48 @@ function Write-ResultsToScreen { Write-Verbose "Working on Key Group: $($keyGrouping.Name)" Write-Verbose "Total lines to write: $($ResultsToWrite[$keyGrouping].Count)" - if ($keyGrouping.DisplayGroupName) { - Write-Grey($keyGrouping.Name) - $dashes = [string]::empty - 1..($keyGrouping.Name.Length) | ForEach-Object { $dashes = $dashes + "-" } - Write-Grey($dashes) - } + try { + if ($keyGrouping.DisplayGroupName) { + Write-Grey($keyGrouping.Name) + $dashes = [string]::empty + 1..($keyGrouping.Name.Length) | ForEach-Object { $dashes = $dashes + "-" } + Write-Grey($dashes) + } - foreach ($line in $ResultsToWrite[$keyGrouping]) { - $tab = [string]::Empty + foreach ($line in $ResultsToWrite[$keyGrouping]) { + try { + $tab = [string]::Empty - if ($line.TabNumber -ne 0) { - 1..($line.TabNumber) | ForEach-Object { $tab = $tab + "`t" } - } + if ($line.TabNumber -ne 0) { + 1..($line.TabNumber) | ForEach-Object { $tab = $tab + "`t" } + } - if ([string]::IsNullOrEmpty($line.Name)) { - $displayLine = $line.DisplayValue - } else { - $displayLine = [string]::Concat($line.Name, ": ", $line.DisplayValue) - } + if ([string]::IsNullOrEmpty($line.Name)) { + $displayLine = $line.DisplayValue + } else { + $displayLine = [string]::Concat($line.Name, ": ", $line.DisplayValue) + } - $writeValue = "{0}{1}" -f $tab, $displayLine - switch ($line.WriteType) { - "Grey" { Write-Grey($writeValue) } - "Yellow" { Write-Yellow($writeValue) } - "Green" { Write-Green($writeValue) } - "Red" { Write-Red($writeValue) } - "OutColumns" { Write-OutColumns($line.OutColumns) } + $writeValue = "{0}{1}" -f $tab, $displayLine + switch ($line.WriteType) { + "Grey" { Write-Grey($writeValue) } + "Yellow" { Write-Yellow($writeValue) } + "Green" { Write-Green($writeValue) } + "Red" { Write-Red($writeValue) } + "OutColumns" { Write-OutColumns($line.OutColumns) } + } + } catch { + # We do not want to call Invoke-CatchActions here because we want the issues reported. + Write-Verbose "Failed inside the section loop writing. Writing out a blank line and continuing. Inner Exception: $_" + Write-Grey "" + } } - } - Write-Grey("") + Write-Grey "" + } catch { + # We do not want to call Invoke-CatchActions here because we want the issues reported. + Write-Verbose "Failed in $($MyInvocation.MyCommand) outside section writing loop. Inner Exception: $_" + Write-Grey "" + } } } From 752e08eaccdab27477102953cf5a8c5b2e19b066 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Fri, 3 May 2024 13:15:01 -0500 Subject: [PATCH 08/11] Add Server Member check --- .../Invoke-AnalyzerExchangeInformation.ps1 | 62 +++++++++++++++++++ .../Get-ExchangeInformation.ps1 | 16 +++++ 2 files changed, 78 insertions(+) diff --git a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 index e172e5fc29..705a938006 100644 --- a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 +++ b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 @@ -239,6 +239,68 @@ function Invoke-AnalyzerExchangeInformation { Add-AnalyzedResultInformation @params } + if ($exchangeInformation.GetExchangeServer.IsEdgeServer -eq $false) { + Write-Verbose "Determining Server Group Membership" + + $params = $baseParams + @{ + Name = "Exchange Server Membership" + Details = "Passed" + DisplayWriteType = "Grey" + } + + if ($null -ne $exchangeInformation.ComputerMembership -and + $null -ne $HealthServerObject.OrganizationInformation.WellKnownSecurityGroups) { + $localGroupList = $HealthServerObject.OrganizationInformation.WellKnownSecurityGroups | + Where-Object { $_.WellKnownName -eq "Exchange Trusted Subsystem" } + # By Default, I also have Managed Availability Servers and Exchange Install Domain Servers. + # But not sure what issue they would cause if we don't have the server as a member, leaving out for now + $adGroupList = $HealthServerObject.OrganizationInformation.WellKnownSecurityGroups | + Where-Object { $_.WellKnownName -in @("Exchange Trusted Subsystem", "Exchange Servers") } + $displayMissingGroups = New-Object System.Collections.Generic.List[string] + + foreach ($localGroup in $localGroupList) { + if (($null -eq ($exchangeInformation.ComputerMembership.LocalGroupMember.SID | Where-Object { $_.ToString() -eq $localGroup.SID } ))) { + $displayMissingGroups.Add("$($localGroup.WellKnownName) - Local System Membership") + } + } + + foreach ($adGroup in $adGroupList) { + if (($null -eq ($exchangeInformation.ComputerMembership.ADGroupMembership.SID | Where-Object { $_.ToString() -eq $adGroup.SID }))) { + $displayMissingGroups.Add("$($adGroup.WellKnownName) - AD Group Membership") + } + } + + if ($displayMissingGroups.Count -ge 1) { + $params.DisplayWriteType = "Red" + $params.Details = "Failed" + Add-AnalyzedResultInformation @params + + foreach ($group in $displayMissingGroups) { + $params = $baseParams + @{ + Details = $group + TestingName = $group + DisplayWriteType = "Red" + DisplayCustomTabNumber = 2 + } + Add-AnalyzedResultInformation @params + } + + $params = $baseParams + @{ + Details = "More Information: https://aka.ms/HC-ServerMembership" + DisplayWriteType = "Yellow" + DisplayCustomTabNumber = 2 + } + Add-AnalyzedResultInformation @params + } else { + Add-AnalyzedResultInformation @params + } + } else { + $params.DisplayWriteType = "Yellow" + $params.Details = "Unknown - Wasn't able to get the Computer Membership information" + Add-AnalyzedResultInformation @params + } + } + if ($exchangeInformation.BuildInformation.MajorVersion -eq "Exchange2013" -and $exchangeInformation.GetExchangeServer.IsClientAccessServer -eq $true) { diff --git a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 index 217337b3f8..13197a7c11 100644 --- a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 +++ b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 @@ -195,6 +195,21 @@ function Get-ExchangeInformation { Component = "ResourceThrottling" } $edgeTransportResourceThrottling = Get-ExchangeDiagnosticInformation @params + + if ($getExchangeServer.IsEdgeServer -eq $false) { + $params = @{ + ComputerName = $Server + ScriptBlockDescription = "Getting Exchange Server Members" + CatchActionFunction = ${Function:Invoke-CatchActions} + ScriptBlock = { + [PSCustomObject]@{ + LocalGroupMember = (Get-LocalGroupMember -SID "S-1-5-32-544") + ADGroupMembership = (Get-ADPrincipalGroupMembership (Get-ADComputer $env:COMPUTERNAME).DistinguishedName) + } + } + } + $computerMembership = Invoke-ScriptBlockHandler @params + } } end { Write-Verbose "Exiting: Get-ExchangeInformation" @@ -219,6 +234,7 @@ function Get-ExchangeInformation { FIPFSUpdateIssue = $FIPFSUpdateIssue AES256CBCInformation = $aes256CbcDetails FileContentInformation = $fileContentInformation + ComputerMembership = $computerMembership } } } From 002ac2389976401cb0afb68345b52b379b77a632 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Mon, 6 May 2024 11:10:54 -0500 Subject: [PATCH 09/11] Add Server Member docs --- .../HealthChecker/ExchangeComputerMembership.md | 14 ++++++++++++++ mkdocs.yml | 1 + 2 files changed, 15 insertions(+) create mode 100644 docs/Diagnostics/HealthChecker/ExchangeComputerMembership.md diff --git a/docs/Diagnostics/HealthChecker/ExchangeComputerMembership.md b/docs/Diagnostics/HealthChecker/ExchangeComputerMembership.md new file mode 100644 index 0000000000..5ebaf10579 --- /dev/null +++ b/docs/Diagnostics/HealthChecker/ExchangeComputerMembership.md @@ -0,0 +1,14 @@ +# Exchange Server Computer Membership + +### Description: + +Checks for the computer object to be members of the `Exchange Trusted Subsystem` and `Exchange Servers` security groups by default. It will also make sure the default local system account has the `Exchange Trusted Subsystem` a member of it as well in order to have the correct access to local system files. + +This check is done by using the ADModule with using the cmdlets `Get-LocalGroupMember -SID "S-1-5-32-544"` and running `Get-ADPrincipalGroupMembership (Get-ADComputer $env:COMPUTERNAME).DistinguishedName` + +If an issue is detected, the group will display with where the problem is located. Either `Local System Membership` if the group isn't part of the local system account or `AD Group Membership` if the computer object isn't a member of the group provided. + + +**Included in HTML Report?** + +Yes diff --git a/mkdocs.yml b/mkdocs.yml index f4efb44e36..4c1c58431e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -69,6 +69,7 @@ nav: - IISWebConfigCheck: Diagnostics/HealthChecker/IISWebConfigCheck.md - HCScheduledTask: Diagnostics/HealthChecker/RunHCViaSchedTask.md - ADSiteCount: Diagnostics/HealthChecker/ADSiteCount.md + - ExchangeComputerMembership: Diagnostics/HealthChecker/ExchangeComputerMembership.md - ManagedAvailabilityTroubleshooter: Diagnostics/ManagedAvailabilityTroubleshooter.md - Test-ExchAVExclusions: Diagnostics/Test-ExchAVExclusions.md - Hybrid: From a26895b9af92b50547ef49e9dc3fdb3fce499345 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Wed, 8 May 2024 12:15:47 -0500 Subject: [PATCH 10/11] Add Server Member Pester Tests --- .../GetADPrincipalGroupMembership.xml | 173 ++++++++++++++++++ .../GetADPrincipalGroupMembership.xml | 173 ++++++++++++++++++ .../E16/Exchange/GetLocalGroupMember.xml | 102 +++++++++++ .../GetADPrincipalGroupMembership.xml | 173 ++++++++++++++++++ .../GetADPrincipalGroupMembership2.xml | 143 +++++++++++++++ .../E19/Exchange/GetLocalGroupMember.xml | 102 +++++++++++ .../E19/Exchange/GetLocalGroupMember2.xml | 80 ++++++++ .../Tests/HealthChecker.E15.Main.Tests.ps1 | 2 +- .../Tests/HealthChecker.E16.Main.Tests.ps1 | 3 +- .../Tests/HealthChecker.E19.Main.Tests.ps1 | 3 +- .../HealthChecker.E19.Scenarios.Tests.ps1 | 5 + ...thCheckerTest.CommonMocks.NotPublished.ps1 | 10 + 12 files changed, 966 insertions(+), 3 deletions(-) create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetADPrincipalGroupMembership.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetADPrincipalGroupMembership.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetLocalGroupMember.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetADPrincipalGroupMembership.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetADPrincipalGroupMembership2.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetLocalGroupMember.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetLocalGroupMember2.xml diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetADPrincipalGroupMembership.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetADPrincipalGroupMembership.xml new file mode 100644 index 0000000000..58c7cc0270 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E15/Exchange/GetADPrincipalGroupMembership.xml @@ -0,0 +1,173 @@ + + + + Microsoft.ActiveDirectory.Management.ADGroup + Microsoft.ActiveDirectory.Management.ADPrincipal + Microsoft.ActiveDirectory.Management.ADObject + Microsoft.ActiveDirectory.Management.ADEntity + Microsoft.ActiveDirectory.Management.ADPropertyCollection + System.Object + + CN=Domain Computers,CN=Users,DC=Solo,DC=net + + CN=Domain Computers,CN=Users,DC=Solo,DC=net + + + Microsoft.ActiveDirectory.Management.ADGroupCategory + System.Enum + System.ValueType + System.Object + + Security + 1 + + + + Microsoft.ActiveDirectory.Management.ADGroupScope + System.Enum + System.ValueType + System.Object + + Global + 1 + + Domain Computers + group + a265b2c2-546e-407b-ad71-db09915a10f7 + Domain Computers + + + System.Security.Principal.SecurityIdentifier + System.Security.Principal.IdentityReference + System.Object + + S-1-5-21-1824353829-339629374-102541804-515 + + 28 + S-1-5-21-1824353829-339629374-102541804 + S-1-5-21-1824353829-339629374-102541804-515 + + + + + + + CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=net + + CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=net + + + Security + 1 + + + + Universal + 2 + + Exchange Servers + group + 0483eec8-edd9-4e86-9991-d4e53a57668b + Exchange Servers + + + S-1-5-21-1824353829-339629374-102541804-1118 + + 28 + S-1-5-21-1824353829-339629374-102541804 + S-1-5-21-1824353829-339629374-102541804-1118 + + + + + + + CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=Solo,DC=net + + CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=Solo,DC=net + + + Security + 1 + + + + Universal + 2 + + Exchange Trusted Subsystem + group + 03db4cb0-2e2f-424d-9b67-3aced8c2e7d1 + Exchange Trusted Subsystem + + + S-1-5-21-1824353829-339629374-102541804-1119 + + 28 + S-1-5-21-1824353829-339629374-102541804 + S-1-5-21-1824353829-339629374-102541804-1119 + + + + + + + CN=Managed Availability Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=net + + CN=Managed Availability Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=net + + + Security + 1 + + + + Universal + 2 + + Managed Availability Servers + group + f7cb65c0-1f58-4504-a698-68fa0ae76505 + Managed Availability Servers + + + S-1-5-21-1824353829-339629374-102541804-1120 + + 28 + S-1-5-21-1824353829-339629374-102541804 + S-1-5-21-1824353829-339629374-102541804-1120 + + + + + + + CN=Exchange Install Domain Servers,CN=Microsoft Exchange System Objects,DC=Solo,DC=net + + CN=Exchange Install Domain Servers,CN=Microsoft Exchange System Objects,DC=Solo,DC=net + + + Security + 1 + + + + Global + 1 + + Exchange Install Domain Servers + group + fc1e7024-4d8b-4702-b171-a26997425da7 + $A31000-HSHK6J896T3O + + + S-1-5-21-1824353829-339629374-102541804-1130 + + 28 + S-1-5-21-1824353829-339629374-102541804 + S-1-5-21-1824353829-339629374-102541804-1130 + + + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetADPrincipalGroupMembership.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetADPrincipalGroupMembership.xml new file mode 100644 index 0000000000..7a4f92bf7c --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetADPrincipalGroupMembership.xml @@ -0,0 +1,173 @@ + + + + Microsoft.ActiveDirectory.Management.ADGroup + Microsoft.ActiveDirectory.Management.ADPrincipal + Microsoft.ActiveDirectory.Management.ADObject + Microsoft.ActiveDirectory.Management.ADEntity + Microsoft.ActiveDirectory.Management.ADPropertyCollection + System.Object + + CN=Domain Computers,CN=Users,DC=Solo,DC=local + + CN=Domain Computers,CN=Users,DC=Solo,DC=local + + + Microsoft.ActiveDirectory.Management.ADGroupCategory + System.Enum + System.ValueType + System.Object + + Security + 1 + + + + Microsoft.ActiveDirectory.Management.ADGroupScope + System.Enum + System.ValueType + System.Object + + Global + 1 + + Domain Computers + group + 5917534d-4588-4ff6-bcb4-21cf859365d3 + Domain Computers + + + System.Security.Principal.SecurityIdentifier + System.Security.Principal.IdentityReference + System.Object + + S-1-5-21-3966804624-2143408355-627260183-515 + + 28 + S-1-5-21-3966804624-2143408355-627260183 + S-1-5-21-3966804624-2143408355-627260183-515 + + + + + + + CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=local + + CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=local + + + Security + 1 + + + + Universal + 2 + + Exchange Servers + group + 88c1b02a-889e-4e68-9144-35c7bf16cc62 + Exchange Servers + + + S-1-5-21-3966804624-2143408355-627260183-1119 + + 28 + S-1-5-21-3966804624-2143408355-627260183 + S-1-5-21-3966804624-2143408355-627260183-1119 + + + + + + + CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=Solo,DC=local + + CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=Solo,DC=local + + + Security + 1 + + + + Universal + 2 + + Exchange Trusted Subsystem + group + 7e140c1d-73eb-420e-89b0-aab50d68792f + Exchange Trusted Subsystem + + + S-1-5-21-3966804624-2143408355-627260183-1120 + + 28 + S-1-5-21-3966804624-2143408355-627260183 + S-1-5-21-3966804624-2143408355-627260183-1120 + + + + + + + CN=Managed Availability Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=local + + CN=Managed Availability Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=local + + + Security + 1 + + + + Universal + 2 + + Managed Availability Servers + group + e8dd8191-c1d1-4ff1-bcab-3e60f64b9dd0 + Managed Availability Servers + + + S-1-5-21-3966804624-2143408355-627260183-1121 + + 28 + S-1-5-21-3966804624-2143408355-627260183 + S-1-5-21-3966804624-2143408355-627260183-1121 + + + + + + + CN=Exchange Install Domain Servers,CN=Microsoft Exchange System Objects,DC=Solo,DC=local + + CN=Exchange Install Domain Servers,CN=Microsoft Exchange System Objects,DC=Solo,DC=local + + + Security + 1 + + + + Global + 1 + + Exchange Install Domain Servers + group + a0b88da6-d349-4f56-ab3f-f84eb1be5026 + $E31000-7TOIPJH3L7D0 + + + S-1-5-21-3966804624-2143408355-627260183-1134 + + 28 + S-1-5-21-3966804624-2143408355-627260183 + S-1-5-21-3966804624-2143408355-627260183-1134 + + + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetLocalGroupMember.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetLocalGroupMember.xml new file mode 100644 index 0000000000..dd98578e54 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E16/Exchange/GetLocalGroupMember.xml @@ -0,0 +1,102 @@ + + + + Microsoft.PowerShell.Commands.LocalPrincipal + System.Object + + SOLO\Domain Admins + + SOLO\Domain Admins + + + System.Security.Principal.SecurityIdentifier + System.Security.Principal.IdentityReference + System.Object + + S-1-5-21-3966804624-2143408355-627260183-512 + + 28 + S-1-5-21-3966804624-2143408355-627260183 + S-1-5-21-3966804624-2143408355-627260183-512 + + + + + Microsoft.PowerShell.Commands.PrincipalSource + System.Enum + System.ValueType + System.Object + + ActiveDirectory + 2 + + Group + + + + + SOLO\Exchange Trusted Subsystem + + SOLO\Exchange Trusted Subsystem + + + S-1-5-21-3966804624-2143408355-627260183-1120 + + 28 + S-1-5-21-3966804624-2143408355-627260183 + S-1-5-21-3966804624-2143408355-627260183-1120 + + + + + ActiveDirectory + 2 + + Group + + + + + SOLO\Organization Management + + SOLO\Organization Management + + + S-1-5-21-3966804624-2143408355-627260183-1105 + + 28 + S-1-5-21-3966804624-2143408355-627260183 + S-1-5-21-3966804624-2143408355-627260183-1105 + + + + + ActiveDirectory + 2 + + Group + + + + + SOLO-E16A\Administrator + + SOLO-E16A\Administrator + + + S-1-5-21-2158029244-1591623683-1362856639-500 + + 28 + S-1-5-21-2158029244-1591623683-1362856639 + S-1-5-21-2158029244-1591623683-1362856639-500 + + + + + Local + 1 + + User + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetADPrincipalGroupMembership.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetADPrincipalGroupMembership.xml new file mode 100644 index 0000000000..6dbda869cd --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetADPrincipalGroupMembership.xml @@ -0,0 +1,173 @@ + + + + Microsoft.ActiveDirectory.Management.ADGroup + Microsoft.ActiveDirectory.Management.ADPrincipal + Microsoft.ActiveDirectory.Management.ADObject + Microsoft.ActiveDirectory.Management.ADEntity + Microsoft.ActiveDirectory.Management.ADPropertyCollection + System.Object + + CN=Domain Computers,CN=Users,DC=Solo,DC=com + + CN=Domain Computers,CN=Users,DC=Solo,DC=com + + + Microsoft.ActiveDirectory.Management.ADGroupCategory + System.Enum + System.ValueType + System.Object + + Security + 1 + + + + Microsoft.ActiveDirectory.Management.ADGroupScope + System.Enum + System.ValueType + System.Object + + Global + 1 + + Domain Computers + group + 23db7c70-d0b5-4475-b573-7f17e3d64043 + Domain Computers + + + System.Security.Principal.SecurityIdentifier + System.Security.Principal.IdentityReference + System.Object + + S-1-5-21-1281225956-1072373970-2205875210-515 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-515 + + + + + + + CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + + Security + 1 + + + + Universal + 2 + + Exchange Servers + group + b67f89a9-ed61-49b2-a26c-1bb4b5142101 + Exchange Servers + + + S-1-5-21-1281225956-1072373970-2205875210-1119 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1119 + + + + + + + CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + + Security + 1 + + + + Universal + 2 + + Exchange Trusted Subsystem + group + 769c386c-8ca6-479f-b3af-92e2d3f222bf + Exchange Trusted Subsystem + + + S-1-5-21-1281225956-1072373970-2205875210-1120 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1120 + + + + + + + CN=Managed Availability Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + CN=Managed Availability Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + + Security + 1 + + + + Universal + 2 + + Managed Availability Servers + group + 35cf4379-eb47-40ec-99bf-6a6c8c01245e + Managed Availability Servers + + + S-1-5-21-1281225956-1072373970-2205875210-1121 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1121 + + + + + + + CN=Exchange Install Domain Servers,CN=Microsoft Exchange System Objects,DC=Solo,DC=com + + CN=Exchange Install Domain Servers,CN=Microsoft Exchange System Objects,DC=Solo,DC=com + + + Security + 1 + + + + Global + 1 + + Exchange Install Domain Servers + group + 030f144f-b669-4dc2-9af0-bbd6072bc60a + $E31000-7QVSVIUEUPLE + + + S-1-5-21-1281225956-1072373970-2205875210-1134 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1134 + + + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetADPrincipalGroupMembership2.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetADPrincipalGroupMembership2.xml new file mode 100644 index 0000000000..5b436c7116 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetADPrincipalGroupMembership2.xml @@ -0,0 +1,143 @@ + + + + Microsoft.ActiveDirectory.Management.ADGroup + Microsoft.ActiveDirectory.Management.ADPrincipal + Microsoft.ActiveDirectory.Management.ADObject + Microsoft.ActiveDirectory.Management.ADEntity + Microsoft.ActiveDirectory.Management.ADPropertyCollection + System.Object + + CN=Domain Computers,CN=Users,DC=Solo,DC=com + + CN=Domain Computers,CN=Users,DC=Solo,DC=com + + + Microsoft.ActiveDirectory.Management.ADGroupCategory + System.Enum + System.ValueType + System.Object + + Security + 1 + + + + Microsoft.ActiveDirectory.Management.ADGroupScope + System.Enum + System.ValueType + System.Object + + Global + 1 + + Domain Computers + group + 23db7c70-d0b5-4475-b573-7f17e3d64043 + Domain Computers + + + System.Security.Principal.SecurityIdentifier + System.Security.Principal.IdentityReference + System.Object + + S-1-5-21-1281225956-1072373970-2205875210-515 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-515 + + + + + + + CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + + Security + 1 + + + + Universal + 2 + + Exchange Servers + group + b67f89a9-ed61-49b2-a26c-1bb4b5142101 + Exchange Servers + + + S-1-5-21-1281225956-1072373970-2205875210-1119 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1119 + + + + + + + CN=Managed Availability Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + CN=Managed Availability Servers,OU=Microsoft Exchange Security Groups,DC=Solo,DC=com + + + Security + 1 + + + + Universal + 2 + + Managed Availability Servers + group + 35cf4379-eb47-40ec-99bf-6a6c8c01245e + Managed Availability Servers + + + S-1-5-21-1281225956-1072373970-2205875210-1121 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1121 + + + + + + + CN=Exchange Install Domain Servers,CN=Microsoft Exchange System Objects,DC=Solo,DC=com + + CN=Exchange Install Domain Servers,CN=Microsoft Exchange System Objects,DC=Solo,DC=com + + + Security + 1 + + + + Global + 1 + + Exchange Install Domain Servers + group + 030f144f-b669-4dc2-9af0-bbd6072bc60a + $E31000-7QVSVIUEUPLE + + + S-1-5-21-1281225956-1072373970-2205875210-1134 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1134 + + + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetLocalGroupMember.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetLocalGroupMember.xml new file mode 100644 index 0000000000..0cefae5c4f --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetLocalGroupMember.xml @@ -0,0 +1,102 @@ + + + + Microsoft.PowerShell.Commands.LocalPrincipal + System.Object + + SOLO\Domain Admins + + SOLO\Domain Admins + + + System.Security.Principal.SecurityIdentifier + System.Security.Principal.IdentityReference + System.Object + + S-1-5-21-1281225956-1072373970-2205875210-512 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-512 + + + + + Microsoft.PowerShell.Commands.PrincipalSource + System.Enum + System.ValueType + System.Object + + ActiveDirectory + 2 + + Group + + + + + SOLO\Exchange Trusted Subsystem + + SOLO\Exchange Trusted Subsystem + + + S-1-5-21-1281225956-1072373970-2205875210-1120 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1120 + + + + + ActiveDirectory + 2 + + Group + + + + + SOLO\Organization Management + + SOLO\Organization Management + + + S-1-5-21-1281225956-1072373970-2205875210-1105 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1105 + + + + + ActiveDirectory + 2 + + Group + + + + + SOLO-E19A\Administrator + + SOLO-E19A\Administrator + + + S-1-5-21-895174743-3947352890-80968143-500 + + 28 + S-1-5-21-895174743-3947352890-80968143 + S-1-5-21-895174743-3947352890-80968143-500 + + + + + Local + 1 + + User + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetLocalGroupMember2.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetLocalGroupMember2.xml new file mode 100644 index 0000000000..105718d11b --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/GetLocalGroupMember2.xml @@ -0,0 +1,80 @@ + + + + Microsoft.PowerShell.Commands.LocalPrincipal + System.Object + + SOLO\Domain Admins + + SOLO\Domain Admins + + + System.Security.Principal.SecurityIdentifier + System.Security.Principal.IdentityReference + System.Object + + S-1-5-21-1281225956-1072373970-2205875210-512 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-512 + + + + + Microsoft.PowerShell.Commands.PrincipalSource + System.Enum + System.ValueType + System.Object + + ActiveDirectory + 2 + + Group + + + + + SOLO\Organization Management + + SOLO\Organization Management + + + S-1-5-21-1281225956-1072373970-2205875210-1105 + + 28 + S-1-5-21-1281225956-1072373970-2205875210 + S-1-5-21-1281225956-1072373970-2205875210-1105 + + + + + ActiveDirectory + 2 + + Group + + + + + SOLO-E19A\Administrator + + SOLO-E19A\Administrator + + + S-1-5-21-895174743-3947352890-80968143-500 + + 28 + S-1-5-21-895174743-3947352890-80968143 + S-1-5-21-895174743-3947352890-80968143-500 + + + + + Local + 1 + + User + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 index 44aa8174a1..65cea5fe84 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 @@ -32,7 +32,7 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2013" { TestObjectMatch "Internet Web Proxy" "Not Set" TestObjectMatch "Extended Protection Enabled (Any VDir)" $false TestObjectMatch "Setting Overrides Detected" $false - $Script:ActiveGrouping.Count | Should -Be 16 + $Script:ActiveGrouping.Count | Should -Be 17 } It "Display Results - Organization Information" { diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 index 2dd778b239..af9567a0f5 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 @@ -32,7 +32,8 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2016" { TestObjectMatch "Internet Web Proxy" "Not Set" TestObjectMatch "Extended Protection Enabled (Any VDir)" $false TestObjectMatch "Setting Overrides Detected" $false - $Script:ActiveGrouping.Count | Should -Be 14 + TestObjectMatch "Exchange Server Membership" "Passed" + $Script:ActiveGrouping.Count | Should -Be 15 } It "Display Results - Organization Information" { diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 index fe7881def0..286a394c8d 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 @@ -32,7 +32,8 @@ Describe "Testing Health Checker by Mock Data Imports" { TestObjectMatch "Extended Protection Enabled (Any VDir)" $false TestObjectMatch "Setting Overrides Detected" $false TestObjectMatch "Out of Date" $true -WriteType "Red" - $Script:ActiveGrouping.Count | Should -Be 14 + TestObjectMatch "Exchange Server Membership" "Passed" + $Script:ActiveGrouping.Count | Should -Be 15 } It "Display Results - Organization Information" { diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 index 87603c388b..c3c0f03a9c 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 @@ -49,6 +49,8 @@ Describe "Testing Health Checker by Mock Data Imports" { Mock Get-ExchangeDiagnosticInfo -ParameterFilter { $Process -eq "EdgeTransport" -and $Component -eq "ResourceThrottling" } ` -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetExchangeDiagnosticInfo_EdgeTransportResourceThrottling1.xml" } Mock Get-IISModules { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetIISModulesNoTokenCacheModule.xml" } + Mock Get-ADPrincipalGroupMembership { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetADPrincipalGroupMembership2.xml" } + Mock Get-LocalGroupMember { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetLocalGroupMember2.xml" } Mock Get-Service { param( [string]$ComputerName, @@ -66,6 +68,9 @@ Describe "Testing Health Checker by Mock Data Imports" { TestObjectMatch "Setting Overrides Detected" $true TestObjectMatch "Extended Protection Enabled (Any VDir)" $true TestObjectMatch "Transport Back Pressure" "--ERROR-- The following resources are causing back pressure: DatabaseUsedSpace" -WriteType "Red" + TestObjectMatch "Exchange Server Membership" "Failed" -WriteType "Red" + TestObjectMatch "Exchange Trusted Subsystem - Local System Membership" "Exchange Trusted Subsystem - Local System Membership" -WriteType "Red" + TestObjectMatch "Exchange Trusted Subsystem - AD Group Membership" "Exchange Trusted Subsystem - AD Group Membership" -WriteType "Red" } It "Dependent Services" { diff --git a/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 b/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 index 5f5b7a6892..bbc87e9e22 100644 --- a/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthCheckerTest.CommonMocks.NotPublished.ps1 @@ -226,6 +226,10 @@ Mock Get-ExSetupFileVersionInfo { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\ExSetup.xml" } +Mock Get-LocalGroupMember { + return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetLocalGroupMember.xml" +} + # Do nothing Mock Invoke-CatchActions { } @@ -273,6 +277,12 @@ function Get-IRMConfiguration { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetIrmConfiguration.xml" } +function Get-ADPrincipalGroupMembership { + return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetADPrincipalGroupMembership.xml" +} + +function Get-ADComputer { return $null } + # virtual directory cmdlets to return null till we do actual checks against the vDirs. function Get-ActiveSyncVirtualDirectory { return $null } From a02f89fd8b5a2da8ded79c45500883b14af4cdba Mon Sep 17 00:00:00 2001 From: David Paulson Date: Wed, 8 May 2024 12:54:31 -0500 Subject: [PATCH 11/11] Corrected Organization Management ID --- .../Get-ExchangeOtherWellKnownObjects.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Shared/ActiveDirectoryFunctions/Get-ExchangeOtherWellKnownObjects.ps1 b/Shared/ActiveDirectoryFunctions/Get-ExchangeOtherWellKnownObjects.ps1 index 54780d0c40..b3669a202f 100644 --- a/Shared/ActiveDirectoryFunctions/Get-ExchangeOtherWellKnownObjects.ps1 +++ b/Shared/ActiveDirectoryFunctions/Get-ExchangeOtherWellKnownObjects.ps1 @@ -8,7 +8,7 @@ function Get-ExchangeOtherWellKnownObjects { param () $otherWellKnownObjectIds = @{ - "C2F9A9F9D6A1B74A9E068728F8F842EA" = "Organization Management" + "C262A929D691B74A9E068728F8F842EA" = "Organization Management" "DB72C41D49580A4DB304FE6981E56297" = "Recipient Management" "1A9E39D35ABE5747B979FFC0C6E5EA26" = "View-Only Organization Management" "45FA417B3574DC4E929BC4B059699792" = "Public Folder Management"