From 0fceb13fe10139a71bc00468bb942972ab3849ac Mon Sep 17 00:00:00 2001 From: iserrano76 Date: Tue, 1 Aug 2023 20:20:44 +0200 Subject: [PATCH 01/22] Add OICE ExchAVExclusion --- .../AVTester/Test-ExchAVExclusions.ps1 | 54 ++++- .../Set-ExchAVExclusions.ps1 | 22 +- Shared/Get-ExchAVExclusions.ps1 | 211 ++++++++---------- 3 files changed, 161 insertions(+), 126 deletions(-) diff --git a/Diagnostics/AVTester/Test-ExchAVExclusions.ps1 b/Diagnostics/AVTester/Test-ExchAVExclusions.ps1 index 494daaa46f..e420706125 100644 --- a/Diagnostics/AVTester/Test-ExchAVExclusions.ps1 +++ b/Diagnostics/AVTester/Test-ExchAVExclusions.ps1 @@ -70,9 +70,29 @@ param ( . $PSScriptRoot\..\..\Shared\Confirm-Administrator.ps1 . $PSScriptRoot\..\..\Shared\Confirm-ExchangeShell.ps1 . $PSScriptRoot\..\..\Shared\Get-ExchAVExclusions.ps1 +. $PSScriptRoot\..\..\Shared\ScriptUpdateFunctions\Test-ScriptVersion.ps1 . $PSScriptRoot\Write-SimpleLogFile.ps1 . $PSScriptRoot\Start-SleepWithProgress.ps1 +$BuildVersion = "" + +Write-Host ("Test-ExchAVExclusions.ps1 script version $($BuildVersion)") -ForegroundColor Green + +if ($ScriptUpdateOnly) { + switch (Test-ScriptVersion -AutoUpdate -VersionsUrl "https://aka.ms/Test-ExchAVExclusions-VersionsURL" -Confirm:$false) { + ($true) { Write-Host ("Script was successfully updated") -ForegroundColor Green } + ($false) { Write-Host ("No update of the script performed") -ForegroundColor Yellow } + default { Write-Host ("Unable to perform ScriptUpdateOnly operation") -ForegroundColor Red } + } + return +} + +if ((-not($SkipVersionCheck)) -and + (Test-ScriptVersion -AutoUpdate -VersionsUrl "https://aka.ms/Test-ExchAVExclusions-VersionsURL" -Confirm:$false)) { + Write-Host ("Script was updated. Please re-run the command") -ForegroundColor Yellow + return +} + # Log file name $LogFile = "ExchAvExclusions.log" @@ -115,6 +135,11 @@ if (-not($exchangeShell.ShellLoaded)) { exit } +Write-SimpleLogFile -String ("###########################################################################################") -name $LogFile +Write-SimpleLogFile -String ("Starting AV Exclusions analysis at $((Get-Date).ToString())") -name $LogFile +Write-SimpleLogFile -String ("###########################################################################################") -name $LogFile +Write-SimpleLogFile -String ("You can find a detailed log on: $($Env:LocalAppData)\$LogFile") -name $LogFile -OutHost + # Create the Array List $BaseFolders = Get-ExchAVExclusionsPaths -ExchangePath $ExchangePath -MsiProductMinor ([byte]$serverExchangeInstallDirectory.MsiProductMinor) @@ -126,13 +151,25 @@ if ( $BaseFolders.count -eq 0 ) { # Create list object to hold all Folders we are going to test $FolderList = New-Object Collections.Generic.List[string] -# Make sure each folders in our list resolve +$randomCharForWildCard = (Get-Random -Maximum 16).ToString('x') +$nonExistentFolder = New-Object Collections.Generic.List[string] + foreach ($path in $BaseFolders) { try { + if ($path -match '\?') { + $path = $path -replace '\?', $randomCharForWildCard + $FolderList.Add($path.ToLower()) + $nonExistentFolder.Add($path.ToLower()) + New-Item -Path (Split-Path $path) -Name $path.split('\')[-1] -ItemType Directory -Force | Out-Null + Write-SimpleLogFile -string ("Created folder: " + $path) -Name $LogFile + } # Resolve path only returns a bool so we have to manually throw to catch if (!(Resolve-Path -Path $path -ErrorAction SilentlyContinue)) { - throw "Failed to resolve" + $nonExistentFolder.Add($path.ToLower()) + New-Item -Path (Split-Path $path) -Name $path.split('\')[-1] -ItemType Directory -Force | Out-Null + Write-SimpleLogFile -string ("Created folder: " + $path) -Name $LogFile } + # If -recurse then we need to find all SubFolders and Add them to the list to be tested if ($Recurse) { @@ -143,7 +180,7 @@ foreach ($path in $BaseFolders) { Get-ChildItem $path -Recurse -Directory -ErrorAction SilentlyContinue | Select-Object -ExpandProperty FullName | ForEach-Object { $FolderList.Add($_.ToLower()) } } # Just Add the root folder - else { $FolderList.Add($path.ToLower()) } + $FolderList.Add($path.ToLower()) } catch { Write-SimpleLogFile -string ("[ERROR] - Failed to resolve folder " + $path) -Name $LogFile } } @@ -177,9 +214,7 @@ foreach ($Folder in $FolderList) { catch { Write-Warning "$Folder $eicarFullFileName file couldn't be created. Either permissions or AV prevented file creation." } - } - - else { + } else { Write-SimpleLogFile -string ("[WARNING] - $eicarFullFileName already exists!: " + $FilePath) -name $LogFile -OutHost } } @@ -188,7 +223,7 @@ foreach ($Folder in $FolderList) { $randomString = -join ((65..90) + (97..122) | Get-Random -Count 10 | ForEach-Object { [char]$_ }) $randomFolder = New-Item -Path (Join-Path (Join-Path $env:SystemDrive '\') "TestExchAVExclusions-$randomString") -ItemType Directory $extensionsList = New-Object Collections.Generic.List[string] -$extensionsList = Get-ExchAVExclusionsExtensions -ExchangePath $ExchangePath -MsiProductMinor ([byte]$serverExchangeInstallDirectory.MsiProductMinor) +$extensionsList = Get-ExchAVExclusionsExtensions -MsiProductMinor ([byte]$serverExchangeInstallDirectory.MsiProductMinor) if ($randomFolder) { foreach ($extension in $extensionsList) { @@ -270,6 +305,11 @@ foreach ($Folder in $FolderList) { Write-SimpleLogFile -String ("[FAIL] - Possible AV Scanning on Path: " + $Folder) -name $LogFile -OutHost $BadFolderList.Add($Folder) } + + if ($nonExistentFolder -contains $Folder) { + Remove-Item $Folder -Confirm:$false -Force -Recurse + Write-SimpleLogFile -string ("Removed folder: " + $Folder) -Name $LogFile + } } $BadExtensionList = New-Object Collections.Generic.List[string] diff --git a/Setup/SetExchAVExclusions/Set-ExchAVExclusions.ps1 b/Setup/SetExchAVExclusions/Set-ExchAVExclusions.ps1 index 8b1f6cc5b9..b8da98b357 100644 --- a/Setup/SetExchAVExclusions/Set-ExchAVExclusions.ps1 +++ b/Setup/SetExchAVExclusions/Set-ExchAVExclusions.ps1 @@ -88,8 +88,28 @@ param ( . $PSScriptRoot\..\..\Shared\Confirm-Administrator.ps1 . $PSScriptRoot\..\..\Shared\Confirm-ExchangeShell.ps1 . $PSScriptRoot\..\..\Shared\Get-ExchAVExclusions.ps1 +. $PSScriptRoot\..\..\Shared\ScriptUpdateFunctions\Test-ScriptVersion.ps1 . $PSScriptRoot\..\..\Diagnostics\AVTester\Write-SimpleLogFile.ps1 +$BuildVersion = "" + +Write-Host ("Set-ExchAVExclusions.ps1 script version $($BuildVersion)") -ForegroundColor Green + +if ($ScriptUpdateOnly) { + switch (Test-ScriptVersion -AutoUpdate -VersionsUrl "https://aka.ms/Set-ExchAVExclusions-VersionsURL" -Confirm:$false) { + ($true) { Write-Host ("Script was successfully updated") -ForegroundColor Green } + ($false) { Write-Host ("No update of the script performed") -ForegroundColor Yellow } + default { Write-Host ("Unable to perform ScriptUpdateOnly operation") -ForegroundColor Red } + } + return +} + +if ((-not($SkipVersionCheck)) -and + (Test-ScriptVersion -AutoUpdate -VersionsUrl "https://aka.ms/Set-ExchAVExclusions-VersionsURL" -Confirm:$false)) { + Write-Host ("Script was updated. Please re-run the command") -ForegroundColor Yellow + return +} + # Log file name $LogFile = "SetExchAvExclusions.log" @@ -188,7 +208,7 @@ foreach ($folder in $BaseFolders) { Write-Host "`r`nExclusions Extensions:" -ForegroundColor DarkGreen $extensionsList = New-Object Collections.Generic.List[string] -$extensionsList = Get-ExchAVExclusionsExtensions -ExchangePath $ExchangePath -MsiProductMinor ([byte]$serverExchangeInstallDirectory.MsiProductMinor) +$extensionsList = Get-ExchAVExclusionsExtensions -MsiProductMinor ([byte]$serverExchangeInstallDirectory.MsiProductMinor) if ($FileName) { "`r`n[Extensions]" | Out-File $FileName -Append } diff --git a/Shared/Get-ExchAVExclusions.ps1 b/Shared/Get-ExchAVExclusions.ps1 index 34c000826f..cd2972a95e 100644 --- a/Shared/Get-ExchAVExclusions.ps1 +++ b/Shared/Get-ExchAVExclusions.ps1 @@ -44,9 +44,7 @@ function Get-ExchAVExclusionsPaths { DataPath, MigrationLogFilePath, TransportSyncLogFilePath, TransportSyncMailboxHealthLogFilePath $mbxS.PSObject.Properties.Value.PathName | ForEach-Object { if ( $_ ) { - if ( Test-Path $_ -PathType Container ) { - $BaseFolders.Add($_.ToLower()) - } + $BaseFolders.Add($_.ToLower()) } } @@ -57,9 +55,7 @@ function Get-ExchAVExclusionsPaths { $mbDbLogs.PSObject.Properties.Value.PathName | ForEach-Object { if ( $_ ) { - if ( Test-Path $_ -PathType Container ) { - $BaseFolders.Add($_.ToLower()) - } + $BaseFolders.Add($_.ToLower()) } } } @@ -70,23 +66,12 @@ function Get-ExchAVExclusionsPaths { MailboxDeliveryThrottlingLogPath, AgentGrayExceptionLogPath, PipelineTracingPath $mtsLogs.PSObject.Properties.Value.PathName | ForEach-Object { if ( $_ ) { - if ( Test-Path $_ -PathType Container ) { - $BaseFolders.Add($_.ToLower()) - } + $BaseFolders.Add($_.ToLower()) } } - #'$env:SystemRoot\Temp\OICE_' - $possibleOICEFolders = Get-ChildItem $env:SystemRoot\temp -Directory -Filter OICE_*.0 - $possibleOICEFolders | ForEach-Object { - if ( $_.Name.Length -gt 41) { - $possibleGUID = $_.Name.Substring(5, 36) - $result = [System.Guid]::Empty - if ( [System.Guid]::TryParse($possibleGUID, [System.Management.Automation.PSReference]$result) ) { - $BaseFolders.Add($_.FullName.ToLower()) - } - } - } + $BaseFolders.Add("$($env:SystemRoot)\Temp\OICE_????????-????-????-????-????????????") + $BaseFolders.Add("$($env:SystemRoot)\Temp\OICE_????????-????-????-????-????????????.?") } if ((Get-ExchangeServer $env:COMPUTERNAME).IsUnifiedMessagingServer) { @@ -104,9 +89,7 @@ function Get-ExchAVExclusionsPaths { RoutingTableLogPath, ProxyDestinationsLogPath, TopInboundIpSourcesLogPath $feTsLogs.PSObject.Properties.Value.PathName | ForEach-Object { if ( $_) { - if ( Test-Path $_ -PathType Container ) { - $BaseFolders.Add($_.ToLower()) - } + $BaseFolders.Add($_.ToLower()) } } @@ -135,9 +118,7 @@ function Get-ExchAVExclusionsPaths { RootDropDirectoryPath $tsLogs.PSObject.Properties.Value.PathName | ForEach-Object { if ( $_ ) { - if ( Test-Path $_ -PathType Container ) { - $BaseFolders.Add($_.ToLower()) - } + $BaseFolders.Add($_.ToLower()) } } @@ -178,12 +159,6 @@ function Get-ExchAVExclusionsExtensions { [CmdletBinding()] [OutputType([Collections.Generic.List[string]])] param ( - [ValidateScript({ - if (Test-Path $_ -PathType Container ) { $true } - else { throw "Path $_ is not valid" } - })] - [string] - $ExchangePath, [Parameter(Mandatory = $true)] [ValidateSet(0, 1, 2)] [byte] @@ -269,124 +244,124 @@ function Get-ExchAVExclusionsProcess { if ( $MsiProductMinor -eq 0) { if ((Get-ExchangeServer $env:COMPUTERNAME).IsMailboxServer) { - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FIP-FS\Bin\fms.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.EdgeSyncSvc.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'ClientAccess\PopImap\Microsoft.Exchange.Imap4service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'ClientAccess\PopImap\Microsoft.Exchange.Pop3service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.RPCClientAccess.Service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Search.Service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Store.Service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Store.Worker.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeDagMgmt.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeDelivery.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeMailboxAssistants.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeMailboxReplication.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeMigrationWorkflow.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeRepl.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeSubmission.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeThrottling.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Search\Ceres\Runtime\1.0\Noderunner.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\OleConverter.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Search\Ceres\ParserServer\ParserServer.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FIP-FS\Bin\ScanEngineTest.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FIP-FS\Bin\ScanningProcess.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'ClientAccess\Owa\Bin\DocumentViewing\TranscodingService.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\UmService.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\UmWorkerProcess.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FIP-FS\Bin\UpdateService.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FIP-FS\Bin\fms.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.EdgeSyncSvc.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'ClientAccess\PopImap\Microsoft.Exchange.Imap4service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'ClientAccess\PopImap\Microsoft.Exchange.Pop3service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.RPCClientAccess.Service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Search.Service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Store.Service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Store.Worker.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeDagMgmt.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeDelivery.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeMailboxAssistants.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeMailboxReplication.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeMigrationWorkflow.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeRepl.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeSubmission.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeThrottling.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Search\Ceres\Runtime\1.0\Noderunner.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\OleConverter.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Search\Ceres\ParserServer\ParserServer.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FIP-FS\Bin\ScanEngineTest.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FIP-FS\Bin\ScanningProcess.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'ClientAccess\Owa\Bin\DocumentViewing\TranscodingService.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\UmService.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\UmWorkerProcess.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FIP-FS\Bin\UpdateService.exe')) } if ((Get-ExchangeServer $env:COMPUTERNAME).IsEdgeServer) { $ProcessList.Add((Join-Path $env:SystemRoot '\System32\Dsamain.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.EdgeCredentialSvc.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.EdgeCredentialSvc.exe')) } if ((Get-ExchangeServer $env:COMPUTERNAME).IsClientAccessServer) { - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FrontEnd\PopImap\Microsoft.Exchange.Imap4.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FrontEnd\PopImap\Microsoft.Exchange.Pop3.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FrontEnd\CallRouter\Microsoft.Exchange.UM.CallRouter.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeFrontendTransport.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FrontEnd\PopImap\Microsoft.Exchange.Imap4.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FrontEnd\PopImap\Microsoft.Exchange.Pop3.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FrontEnd\CallRouter\Microsoft.Exchange.UM.CallRouter.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeFrontendTransport.exe')) } if ((Get-ExchangeServer $env:COMPUTERNAME).IsClientAccessServer -or (Get-ExchangeServer $env:COMPUTERNAME).IsMailboxServer) { - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Search\Ceres\HostController\hostcontrollerservice.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Search\Ceres\HostController\hostcontrollerservice.exe')) $ProcessList.Add((Join-Path $env:SystemRoot '\System32\inetSrv\inetInfo.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Directory.TopologyService.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Directory.TopologyService.exe')) } if ((Get-ExchangeServer $env:COMPUTERNAME).IsClientAccessServer -or (Get-ExchangeServer $env:COMPUTERNAME).IsMailboxServer -or (Get-ExchangeServer $env:COMPUTERNAME).IsEdgeServer) { - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Diagnostics.Service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.ProtectedServiceHost.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Servicehost.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeHMHost.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeHMWorker.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Diagnostics.Service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.ProtectedServiceHost.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Servicehost.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeHMHost.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeHMWorker.exe')) } if ((Get-ExchangeServer $env:COMPUTERNAME).IsEdgeServer -or (Get-ExchangeServer $env:COMPUTERNAME).IsMailboxServer) { - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\EdgeTransport.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.AntispamUpdateSvc.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'TransportRoles\agents\Hygiene\Microsoft.Exchange.ContentFilter.Wrapper.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeTransport.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeTransportLogSearch.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\EdgeTransport.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.AntispamUpdateSvc.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'TransportRoles\agents\Hygiene\Microsoft.Exchange.ContentFilter.Wrapper.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeTransport.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeTransportLogSearch.exe')) } } else { if ((Get-ExchangeServer $env:COMPUTERNAME).IsMailboxServer) { - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\ComplianceAuditService.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FIP-FS\Bin\fms.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Search\Ceres\HostController\hostcontrollerservice.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\ComplianceAuditService.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FIP-FS\Bin\fms.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Search\Ceres\HostController\hostcontrollerservice.exe')) $ProcessList.Add((Join-Path $env:SystemRoot '\System32\inetSrv\inetInfo.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Directory.TopologyService.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.EdgeSyncSvc.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FrontEnd\PopImap\Microsoft.Exchange.Imap4.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'ClientAccess\PopImap\Microsoft.Exchange.Imap4service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Notifications.Broker.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FrontEnd\PopImap\Microsoft.Exchange.Pop3.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'ClientAccess\PopImap\Microsoft.Exchange.Pop3service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.RPCClientAccess.Service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Search.Service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Store.Service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Store.Worker.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeCompliance.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeDagMgmt.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeDelivery.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeFrontendTransport.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeMailboxAssistants.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeMailboxReplication.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeRepl.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeSubmission.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeThrottling.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Search\Ceres\Runtime\1.0\Noderunner.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\OleConverter.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Search\Ceres\ParserServer\ParserServer.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FIP-FS\Bin\ScanEngineTest.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FIP-FS\Bin\ScanningProcess.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FIP-FS\Bin\UpdateService.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\wsbExchange.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Directory.TopologyService.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.EdgeSyncSvc.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FrontEnd\PopImap\Microsoft.Exchange.Imap4.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'ClientAccess\PopImap\Microsoft.Exchange.Imap4service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Notifications.Broker.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FrontEnd\PopImap\Microsoft.Exchange.Pop3.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'ClientAccess\PopImap\Microsoft.Exchange.Pop3service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.RPCClientAccess.Service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Search.Service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Store.Service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Store.Worker.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeCompliance.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeDagMgmt.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeDelivery.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeFrontendTransport.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeMailboxAssistants.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeMailboxReplication.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeRepl.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeSubmission.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeThrottling.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Search\Ceres\Runtime\1.0\Noderunner.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\OleConverter.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Search\Ceres\ParserServer\ParserServer.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FIP-FS\Bin\ScanEngineTest.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FIP-FS\Bin\ScanningProcess.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FIP-FS\Bin\UpdateService.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\wsbExchange.exe')) } if ((Get-ExchangeServer $env:COMPUTERNAME).IsEdgeServer) { $ProcessList.Add((Join-Path $env:SystemRoot '\System32\Dsamain.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.EdgeCredentialSvc.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.EdgeCredentialSvc.exe')) } if ((Get-ExchangeServer $env:COMPUTERNAME).IsEdgeServer -or (Get-ExchangeServer $env:COMPUTERNAME).IsMailboxServer) { - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\EdgeTransport.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.AntispamUpdateSvc.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'TransportRoles\agents\Hygiene\Microsoft.Exchange.ContentFilter.Wrapper.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Diagnostics.Service.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.ProtectedServiceHost.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\Microsoft.Exchange.Servicehost.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeHMHost.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeHMWorker.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeTransport.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\MSExchangeTransportLogSearch.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\EdgeTransport.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.AntispamUpdateSvc.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'TransportRoles\agents\Hygiene\Microsoft.Exchange.ContentFilter.Wrapper.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Diagnostics.Service.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.ProtectedServiceHost.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\Microsoft.Exchange.Servicehost.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeHMHost.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeHMWorker.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeTransport.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\MSExchangeTransportLogSearch.exe')) } if ((Get-ExchangeServer $env:COMPUTERNAME).IsUnifiedMessagingServer) { - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'FrontEnd\CallRouter\Microsoft.Exchange.UM.CallRouter.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\UmService.exe')) - $ProcessList.Add((Join-Path $env:ExchangeInstallPath 'Bin\UmWorkerProcess.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'FrontEnd\CallRouter\Microsoft.Exchange.UM.CallRouter.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\UmService.exe')) + $ProcessList.Add((Join-Path $ExchangePath 'Bin\UmWorkerProcess.exe')) } } $ProcessList From 568f9ed30549926ba5f294ae60640ff0c052f785 Mon Sep 17 00:00:00 2001 From: iserrano76 Date: Fri, 4 Aug 2023 18:08:33 +0200 Subject: [PATCH 02/22] Updated parameters and doc --- .../AVTester/Test-ExchAVExclusions.ps1 | 24 +++++++++++++------ .../Set-ExchAVExclusions.ps1 | 15 +++++++++++- docs/Diagnostics/Test-ExchAVExclusions.md | 3 +++ docs/Setup/Set-ExchAVExclusions.md | 10 ++++++++ 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/Diagnostics/AVTester/Test-ExchAVExclusions.ps1 b/Diagnostics/AVTester/Test-ExchAVExclusions.ps1 index e420706125..73e320ccf5 100644 --- a/Diagnostics/AVTester/Test-ExchAVExclusions.ps1 +++ b/Diagnostics/AVTester/Test-ExchAVExclusions.ps1 @@ -34,6 +34,12 @@ AV Modules loaded into Exchange Processes may indicate that AV Process Exclusion Will test not just the root folders but all SubFolders. Generally should not be needed unless all folders pass without -Recuse but AV is still suspected. +.PARAMETER SkipVersionCheck +Skip script version verification. + +.PARAMETER ScriptUpdateOnly +Just update script version to latest one. + .OUTPUTS Log file: $env:LOCALAPPDATA\ExchAvExclusions.log @@ -55,16 +61,20 @@ Puts and removes an EICAR file in all test paths. Puts and Remove an EICAR file in all test paths + all SubFolders. #> -[CmdletBinding()] +[CmdletBinding(DefaultParameterSetName = 'Test')] param ( - [Parameter()] - [switch] - $Recurse, + [Parameter(ParameterSetName = "Test")] + [switch]$Recurse, + + [Parameter(ParameterSetName = "Test")] + [switch]$OpenLog, + + [Parameter(ParameterSetName = "Test")] + [switch]$SkipVersionCheck, - [Parameter()] - [switch] - $OpenLog + [Parameter(Mandatory = $true, ParameterSetName = "ScriptUpdateOnly")] + [switch]$ScriptUpdateOnly ) . $PSScriptRoot\..\..\Shared\Confirm-Administrator.ps1 diff --git a/Setup/SetExchAVExclusions/Set-ExchAVExclusions.ps1 b/Setup/SetExchAVExclusions/Set-ExchAVExclusions.ps1 index b8da98b357..5f68057b16 100644 --- a/Setup/SetExchAVExclusions/Set-ExchAVExclusions.ps1 +++ b/Setup/SetExchAVExclusions/Set-ExchAVExclusions.ps1 @@ -46,6 +46,12 @@ Show the full list of expected exclusions. .PARAMETER -FileName Export the full list of expected exclusions in the defined FileName. +.PARAMETER SkipVersionCheck +Skip script version verification. + +.PARAMETER ScriptUpdateOnly +Just update script version to latest one. + .INPUTS For Set Parameter Set Identifier(Switch): Optional Parameter -FileName @@ -82,7 +88,14 @@ param ( [Parameter(ParameterSetName = 'Set')] [Parameter(ParameterSetName = 'List')] [string] - $FileName + $FileName, + + [Parameter(ParameterSetName = 'Set')] + [Parameter(ParameterSetName = 'List')] + [switch]$SkipVersionCheck, + + [Parameter(Mandatory = $true, ParameterSetName = "ScriptUpdateOnly")] + [switch]$ScriptUpdateOnly ) . $PSScriptRoot\..\..\Shared\Confirm-Administrator.ps1 diff --git a/docs/Diagnostics/Test-ExchAVExclusions.md b/docs/Diagnostics/Test-ExchAVExclusions.md index 5ee01cfef1..063f7d0b17 100644 --- a/docs/Diagnostics/Test-ExchAVExclusions.md +++ b/docs/Diagnostics/Test-ExchAVExclusions.md @@ -54,6 +54,9 @@ Parameter | Description | ----------|-------------| Recurse | Places an EICAR file in all SubFolders as well as the root. OpenLog | Opens the script log file. +SkipVersionCheck | Skip script version verification. +ScriptUpdateOnly | Just update script version to latest one. + ## Outputs diff --git a/docs/Setup/Set-ExchAVExclusions.md b/docs/Setup/Set-ExchAVExclusions.md index 57e27ecaa4..4b2043d274 100644 --- a/docs/Setup/Set-ExchAVExclusions.md +++ b/docs/Setup/Set-ExchAVExclusions.md @@ -29,6 +29,16 @@ If you want to get the full list of expected exclusions you should use the param You can export the Exclusion List with the parameter `FileName` +## Parameters + +Parameter | Description | +----------|-------------| +ListRecommendedExclusions | Get the full list of expected exclusions without set. +FileName | Export the Exclusion List. +SkipVersionCheck | Skip script version verification. +ScriptUpdateOnly | Just update script version to latest one. + + #### Examples: This will run Set-ExchAVExclusions Script against the local server. From 03b1f124d4bbd045758c4ef2d644ba7833145592 Mon Sep 17 00:00:00 2001 From: varu3999 Date: Mon, 9 Jan 2023 11:09:37 +0530 Subject: [PATCH 03/22] Release Candidate (RC) of the CVE-2023-21709 mitigation script --- .build/cspell-words.txt | 1 + .../src/CVE-2023-21709/CVE-2023-21709.ps1 | 128 ++++++++++++++++++ .../Invoke-ConfigureMitigation.ps1 | 107 +++++++++++++++ .../ConfigurationAction/Invoke-Rollback.ps1 | 108 +++++++++++++++ .../src/CVE-2023-21709/WriteFunctions.ps1 | 10 ++ docs/Security/CVE-2023-21709.md | 46 +++++++ mkdocs.yml | 1 + 7 files changed, 401 insertions(+) create mode 100644 Security/src/CVE-2023-21709/CVE-2023-21709.ps1 create mode 100644 Security/src/CVE-2023-21709/ConfigurationAction/Invoke-ConfigureMitigation.ps1 create mode 100644 Security/src/CVE-2023-21709/ConfigurationAction/Invoke-Rollback.ps1 create mode 100644 Security/src/CVE-2023-21709/WriteFunctions.ps1 create mode 100644 docs/Security/CVE-2023-21709.md diff --git a/.build/cspell-words.txt b/.build/cspell-words.txt index b9db29bb36..c7a681f7f0 100644 --- a/.build/cspell-words.txt +++ b/.build/cspell-words.txt @@ -61,6 +61,7 @@ hsts httperr ietf imap +inetsrv Infoworker Inproc INSUFF diff --git a/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 new file mode 100644 index 0000000000..d512a349c6 --- /dev/null +++ b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 @@ -0,0 +1,128 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +<# +.SYNOPSIS + This script remove TokenCacheModule from IIS and protect exchange servers against Brute Force attack on Active-Sync. +.DESCRIPTION + The Script does the following by default. + 1. Removes Token caching modules on all the servers +.PARAMETER Rollback + Use this parameter Rollback the mitigation and add the TokenCacheModule +.EXAMPLE + PS C:\> .\ExchangeBruteForceMitigation.ps1 + It will remove TokenCacheModule on all the Exchange Servers in the forest. +.EXAMPLE + PS C:\> .\ExchangeBruteForceMitigation.ps1 -ExchangeServerNames + It will remove TokenCacheModule on all Exchange Servers provided in ExchangeServerNames +.EXAMPLE + PS C:\> .\ExchangeBruteForceMitigation.ps1 -SkipExchangeServerNames + It will remove TokenCacheModule on all Exchange Servers in the forest except the Exchange Servers whose names are provided in the SkipExchangeServerNames parameter. +.EXAMPLE + PS C:\> .\ExchangeBruteForceMitigation.ps1 -Rollback + It will add back the TokenCacheModule on all Exchange Servers in the forest +#> +[CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'High')] + +param( + [string[]]$ExchangeServerNames = $null, + + [string[]]$SkipExchangeServerNames = $null, + + [switch]$Rollback +) + +begin { + $BuildVersion = "" + + . $PSScriptRoot\WriteFunctions.ps1 + . $PSScriptRoot\ConfigurationAction\Invoke-ConfigureMitigation.ps1 + . $PSScriptRoot\ConfigurationAction\Invoke-Rollback.ps1 + . $PSScriptRoot\..\..\..\Shared\OutputOverrides\Write-Host.ps1 + . $PSScriptRoot\..\..\..\Shared\OutputOverrides\Write-Progress.ps1 + . $PSScriptRoot\..\..\..\Shared\OutputOverrides\Write-Verbose.ps1 + . $PSScriptRoot\..\..\..\Shared\OutputOverrides\Write-Warning.ps1 + . $PSScriptRoot\..\..\..\Shared\ScriptUpdateFunctions\Test-ScriptVersion.ps1 + . $PSScriptRoot\..\..\..\Shared\Confirm-Administrator.ps1 + . $PSScriptRoot\..\..\..\Shared\Confirm-ExchangeShell.ps1 + . $PSScriptRoot\..\..\..\Shared\LoggerFunctions.ps1 + . $PSScriptRoot\..\..\..\Shared\Out-Columns.ps1 + . $PSScriptRoot\..\..\..\Shared\Show-Disclaimer.ps1 + + $Script:Logger = Get-NewLoggerInstance -LogName "CVE-2023-21709-$((Get-Date).ToString("yyyyMMddhhmmss"))-Debug" ` + -AppendDateTimeToFileName $false ` + -ErrorAction SilentlyContinue + + SetWriteHostAction ${Function:Write-HostLog} + SetWriteVerboseAction ${Function:Write-VerboseLog} + SetWriteWarningAction ${Function:Write-HostLog} + SetWriteProgressAction ${Function:Write-HostLog} +} end { + if (-not (Confirm-Administrator)) { + Write-Warning "The script needs to be executed in elevated mode. Start the shell as an Administrator." + exit + } + + Write-Host ("CVE-2023-21709 script version $($BuildVersion)") -ForegroundColor Green + $versionsUrl = "https://aka.ms/CVE-2023-21709-VersionsUrl" + if (Test-ScriptVersion -AutoUpdate -VersionsUrl $versionsUrl -Confirm:$false) { + Write-Host ("Script was updated. Please re-run the command") -ForegroundColor Yellow + return + } + + $exchangeShell = Confirm-ExchangeShell + if (-not($exchangeShell.ShellLoaded)) { + Write-Warning "Failed to load the Exchange Management Shell. Start the script using the Exchange Management Shell." + exit + } elseif (-not($exchangeShell.EMS)) { + Write-Warning "This script requires to be run inside of Exchange Management Shell. Please run on an Exchange Management Server or an Exchange Server with Exchange Management Shell." + exit + } + + try { + if (-not $Rollback) { + $params = @{ + Message = "Display Warning about removing TokenCacheModule" + Target = "TokenCacheModule is recommended to be removed from IIS for security reasons. " + + "Removal of this module might have performance impact on Outlook For Web and Active-Sync" + + "`r`nYou can find more information on: https://portal.msrc.microsoft.com/security-guidance/advisory/CVE-2023-21709. Do you want to proceed?" + Operation = "Removing TokenCacheModule from IIS" + } + + Show-Disclaimer @params + } + + Write-Verbose ("Running Get-ExchangeServer to get list of all exchange servers") + Set-ADServerSettings -ViewEntireForest $true + $ExchangeServers = Get-ExchangeServer | Where-Object { $_.AdminDisplayVersion -like "Version 15*" -and $_.ServerRole -ne "Edge" } + + if ($null -ne $ExchangeServerNames -and $ExchangeServerNames.Count -gt 0) { + Write-Verbose "Running only on servers: $([string]::Join(", " ,$ExchangeServerNames))" + $ExchangeServers = $ExchangeServers | Where-Object { ($_.Name -in $ExchangeServerNames) -or ($_.FQDN -in $ExchangeServerNames) } + } + + if ($null -ne $SkipExchangeServerNames -and $SkipExchangeServerNames.Count -gt 0) { + Write-Verbose "Skipping servers: $([string]::Join(", ", $SkipExchangeServerNames))" + + # Remove all the servers present in the SkipExchangeServerNames list + $ExchangeServers = $ExchangeServers | Where-Object { ($_.Name -notin $SkipExchangeServerNames) -and ($_.FQDN -notin $SkipExchangeServerNames) } + } + + if ($null -eq $ExchangeServers) { + Write-Host "No exchange servers to process. Please specify server filters correctly" + exit + } + + if ($Rollback) { + Invoke-Rollback -ExchangeServers $ExchangeServers + return + } + + Invoke-ConfigureMitigation -ExchangeServers $ExchangeServers + return + } finally { + Write-Host "" + Write-Host "Script Completed successfully!" + Write-Host "Do you have feedback regarding the script? Please email ExToolsFeedback@microsoft.com." + } +} diff --git a/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-ConfigureMitigation.ps1 b/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-ConfigureMitigation.ps1 new file mode 100644 index 0000000000..b2d349b7d8 --- /dev/null +++ b/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-ConfigureMitigation.ps1 @@ -0,0 +1,107 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +. $PSScriptRoot\..\..\..\..\Shared\Invoke-ScriptBlockHandler.ps1 +. $PSScriptRoot\..\..\..\..\Shared\Write-ErrorInformation.ps1 + +function Invoke-ConfigureMitigation { + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string[]]$ExchangeServers + ) + + begin { + $FailedServers = New-Object 'System.Collections.Generic.List[string]' + $NoImpactServers = New-Object 'System.Collections.Generic.List[string]' + + $progressParams = @{ + Activity = "Removing TokenCachingModule" + Status = [string]::Empty + PercentComplete = 0 + } + + Write-Verbose "Calling: $($MyInvocation.MyCommand)" + + $ConfigureMitigation = { + $results = @{ + IsMitigationRequired = $true + IsSuccessful = $false + ErrorContext = $null + } + + try { + if ($null -eq (Get-WebGlobalModule -Name "TokenCacheModule")) { + $results.IsMitigationRequired = $false + return $results + } + + Clear-WebConfiguration -Filter "/system.webServer/globalModules/add[@name='TokenCacheModule']" -PSPath "IIS:\" -ErrorAction Stop + if (-not $WhatIfPreference) { + if ($null -eq (Get-WebGlobalModule -Name "TokenCacheModule")) { + $results.IsSuccessful = $true + } + } + } catch { + $results.ErrorContext = $_ + } + + return $results + } + } process { + $counter = 0 + $totalCount = $ExchangeServers.Count + + if ($WhatIfPreference) { + Write-Host ("What if: Will perform the below actions on the following servers: {0}" -f [string]::Join(", ", $ExchangeServers)) + } + + foreach ($Server in $ExchangeServers) { + $baseStatus = "Processing: $Server -" + $progressParams.PercentComplete = ($counter / $totalCount * 100) + $progressParams.Status = "$baseStatus Applying mitigation" + Write-Progress @progressParams + + $counter ++; + + if (-not $WhatIfPreference -or ($Server).Split(".")[0] -eq $env:COMPUTERNAME) { + Write-Verbose ("Calling Invoke-ScriptBlockHandler on Server {0}" -f $Server) + $resultsInvoke = Invoke-ScriptBlockHandler -ComputerName $Server -ScriptBlock $ConfigureMitigation + } + + if (-not $WhatIfPreference) { + if ($null -eq $resultsInvoke) { + Write-Warning ("Server {0} is unavailable. Skipping it!" -f $Server) + $FailedServers += $Server + continue; + } + + if (-not $resultsInvoke.IsMitigationRequired) { + Write-Verbose ("Mitigation is not required on server {0}" -f $Server) + $NoImpactServers += $Server + continue + } + + if ($resultsInvoke.IsSuccessful) { + Write-Verbose ("Successfully applied mitigation on server {0}" -f $Server) + } else { + Write-Host ("Script failed to apply mitigation on server {0}" -f $Server) -ForegroundColor Red + $FailedServers += $Server + continue + } + } + } + } end { + Write-Progress @progressParams -Completed + + if (-not $WhatIfPreference) { + if ($FailedServers.Length -gt 0) { + Write-Host ("Unable to apply mitigation of following servers: {0}" -f [string]::Join(", ", $FailedServers)) -ForegroundColor Red + } + + if ($NoImpactServers.Length -gt 0) { + Write-Host ("No mitigation required for the following servers : {0}. These servers have already been mitigated." -f [string]::Join(", ", $NoImpactServers)) + } + } + } +} diff --git a/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-Rollback.ps1 b/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-Rollback.ps1 new file mode 100644 index 0000000000..9d1cadbaf8 --- /dev/null +++ b/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-Rollback.ps1 @@ -0,0 +1,108 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +. $PSScriptRoot\..\..\..\..\Shared\Invoke-ScriptBlockHandler.ps1 +. $PSScriptRoot\..\..\..\..\Shared\Write-ErrorInformation.ps1 + +function Invoke-Rollback { + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string[]]$ExchangeServers + ) + + begin { + $FailedServers = New-Object 'System.Collections.Generic.List[string]' + $NoImpactServers = New-Object 'System.Collections.Generic.List[string]' + + $progressParams = @{ + Activity = "Adding TokenCachingModule" + Status = [string]::Empty + PercentComplete = 0 + } + + Write-Verbose "Calling: $($MyInvocation.MyCommand)" + + $ConfigureRollback = { + $results = @{ + IsRollbackRequired = $true + IsSuccessful = $false + ErrorContext = $null + } + + try { + if ($null -ne (Get-WebGlobalModule -Name "TokenCacheModule")) { + $results.IsRollbackRequired = $false + return $results + } + + New-WebGlobalModule -Name "TokenCacheModule" -Image "%windir%\System32\inetsrv\cachtokn.dll" -ErrorAction Stop + + if (-not $WhatIfPreference) { + if ($null -ne (Get-WebGlobalModule -Name "TokenCacheModule")) { + $results.IsSuccessful = $true + } + } + } catch { + $results.ErrorContext = $_ + } + + return $results + } + } process { + $counter = 0 + $totalCount = $ExchangeServers.Count + + if ($WhatIfPreference) { + Write-Host ("What if: Will perform the below actions on the following servers: {0}" -f [string]::Join(", ", $ExchangeServers)) + } + + foreach ($Server in $ExchangeServers) { + $baseStatus = "Processing: $Server -" + $progressParams.PercentComplete = ($counter / $totalCount * 100) + $progressParams.Status = "$baseStatus Rollback mitigation" + Write-Progress @progressParams + + $counter ++; + + if (-not $WhatIfPreference -or ($Server).Split(".")[0] -eq $env:COMPUTERNAME) { + Write-Verbose ("Calling Invoke-ScriptBlockHandler on Server {0}" -f $Server) + $resultsInvoke = Invoke-ScriptBlockHandler -ComputerName $Server -ScriptBlock $ConfigureRollback + } + + if (-not $WhatIfPreference) { + if ($null -eq $resultsInvoke) { + Write-Warning ("Server {0} is unavailable. Skipping it!" -f $Server) + $FailedServers += $Server + continue; + } + + if (-not $resultsInvoke.IsRollbackRequired) { + Write-Verbose ("Rollback is not required on server {0}" -f $Server) + $NoImpactServers += $Server + continue + } + + if ($resultsInvoke.IsSuccessful) { + Write-Verbose ("Successfully rollback mitigation on server {0}" -f $Server) + } else { + Write-Host ("Script failed to rollback mitigation on server {0}" -f $Server) -ForegroundColor Red + $FailedServers += $Server + continue + } + } + } + } end { + Write-Progress @progressParams -Completed + + if (-not $WhatIfPreference) { + if ($FailedServers.Length -gt 0) { + Write-Host ("Unable to rollback mitigation of following servers: {0}" -f [string]::Join(", ", $FailedServers)) -ForegroundColor Red + } + + if ($NoImpactServers.Length -gt 0) { + Write-Host ("No rollback required for the following servers : {0}" -f [string]::Join(", ", $NoImpactServers)) + } + } + } +} diff --git a/Security/src/CVE-2023-21709/WriteFunctions.ps1 b/Security/src/CVE-2023-21709/WriteFunctions.ps1 new file mode 100644 index 0000000000..f46cf6343b --- /dev/null +++ b/Security/src/CVE-2023-21709/WriteFunctions.ps1 @@ -0,0 +1,10 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +function Write-VerboseLog ($Message) { + $Script:Logger = $Script:Logger | Write-LoggerInstance $Message +} + +function Write-HostLog ($Message) { + $Script:Logger = $Script:Logger | Write-LoggerInstance $Message +} diff --git a/docs/Security/CVE-2023-21709.md b/docs/Security/CVE-2023-21709.md new file mode 100644 index 0000000000..51dd8be640 --- /dev/null +++ b/docs/Security/CVE-2023-21709.md @@ -0,0 +1,46 @@ +# CVE-2023-21709 + +Download the latest release: [CVE-2023-21709.ps1](https://github.com/microsoft/CSS-Exchange/releases/latest/download/CVE-2023-21709.ps1) + +The `CVE-2023-21709.ps1` script can be used to address the Exchange Server vulnerability `CVE-2023-21709` by removing the `TokenCacheModule` from IIS. It can also be used to restore a previously removed `TokenCacheModule`. +The script allows you to explicitly specify a subset of Exchange servers on which the `TokenCacheModule` should be removed or restored. It's also possible to exclude a subset of Exchange servers from the operation performed by the script. + +## Requirements + +This script **must** be run as Administrator in `Exchange Management Shell (EMS)`. The user must be a member of the `Organization Management` role group. + +## How To Run + +### Examples: + +This syntax removes the `TokenCacheModule` from all Exchange servers within the organization. + +```powershell +.\CVE-2023-21709.ps1 +``` + +This syntax removes the `TokenCacheModule` from `ExchangeSrv01` and `ExchangeSrv02`. + +```powershell +.\CVE-2023-21709.ps1 -ExchangeServerNames ExchangeSrv01, ExchangeSrv02 +``` + +This syntax removes the `TokenCacheModule` from all Exchange servers within the organization except `ExchangeSrv02`. + +```powershell +.\CVE-2023-21709.ps1 -SkipExchangeServerNames ExchangeSrv02 +``` + +This syntax restores the `TokenCacheModule` on all Exchange servers within the organization. + +```powershell +.\CVE-2023-21709.ps1 -Rollback +``` + +## Parameters + +Parameter | Description +----------|------------ +ExchangeServerNames | A list of Exchange servers that you want to run the script against. This can be used for applying or rollback the `CVE-2023-21709` configuration change. +SkipExchangeServerNames | A list of Exchange servers that you don't want to execute the `TokenCacheModule` configuration action. +Rollback | Switch parameter to rollback the `CVE-2023-21709` configuration change and add the `TokenCacheModule` back to IIS. diff --git a/mkdocs.yml b/mkdocs.yml index 346192e939..2c759f684d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -89,6 +89,7 @@ nav: - EOMT: Security/EOMT.md - EOMTv2: Security/EOMTv2.md - Extended Protection: Security/Extended-Protection.md + - CVE-2023-21709: Security/CVE-2023-21709.md - ExchangeExtendedProtectionManagement: Security/ExchangeExtendedProtectionManagement.md - ExchangeMitigations: Security/ExchangeMitigations.md - Test-CVE-2021-34470: Security/Test-CVE-2021-34470.md From cf8bdb495c387eb5e0088bd0025ef168aa5957f0 Mon Sep 17 00:00:00 2001 From: Lukas Sassl Date: Tue, 8 Aug 2023 15:48:03 +0200 Subject: [PATCH 04/22] Script name updated in the comment-based help section --- .../src/CVE-2023-21709/CVE-2023-21709.ps1 | 30 +++++++++++-------- mkdocs.yml | 2 +- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 index d512a349c6..2a6f4ac850 100644 --- a/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 +++ b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 @@ -3,24 +3,30 @@ <# .SYNOPSIS - This script remove TokenCacheModule from IIS and protect exchange servers against Brute Force attack on Active-Sync. + This script removes the TokenCacheModule from IIS to protect Exchange Server against CVE-2023-21709. .DESCRIPTION - The Script does the following by default. - 1. Removes Token caching modules on all the servers + The script removes the TokenCacheModule from IIS to protect Exchange Server against CVE-2023-21709. + It comes with a parameter that allows you to explicitly specify a subset of Exchange servers on which the TokenCacheModule + should be removed or restored (ExchangeServerNames). + It's also possible to exclude a subset of Exchange servers from the operation performed by the script (SkipExchangeServerNames). +.PARAMETER ExchangeServerNames + Use this parameter to explicitly specify the Exchange servers on which the TokenCacheModule should be removed or restored. +.PARAMETER SkipExchangeServerNames + Use this parameter to explicitly exclude Exchange servers from removing or restoring the TokenCacheModule. .PARAMETER Rollback - Use this parameter Rollback the mitigation and add the TokenCacheModule + Use this parameter rollback the CVE-2023-21709 solution and add the TokenCacheModule back to IIS. .EXAMPLE - PS C:\> .\ExchangeBruteForceMitigation.ps1 - It will remove TokenCacheModule on all the Exchange Servers in the forest. + PS C:\> .\CVE-2023-21709.ps1 + It will remove the TokenCacheModule from all of the Exchange servers in the organization. .EXAMPLE - PS C:\> .\ExchangeBruteForceMitigation.ps1 -ExchangeServerNames - It will remove TokenCacheModule on all Exchange Servers provided in ExchangeServerNames + PS C:\> .\CVE-2023-21709.ps1 -ExchangeServerNames + It will remove the TokenCacheModule from all of the Exchange servers provided via -ExchangeServerNames parameter. .EXAMPLE - PS C:\> .\ExchangeBruteForceMitigation.ps1 -SkipExchangeServerNames - It will remove TokenCacheModule on all Exchange Servers in the forest except the Exchange Servers whose names are provided in the SkipExchangeServerNames parameter. + PS C:\> .\CVE-2023-21709.ps1 -SkipExchangeServerNames + It will remove the TokenCacheModule from all of the Exchange servers in the organization except the Exchange servers provided via -SkipExchangeServerNames parameter. .EXAMPLE - PS C:\> .\ExchangeBruteForceMitigation.ps1 -Rollback - It will add back the TokenCacheModule on all Exchange Servers in the forest + PS C:\> .\CVE-2023-21709.ps1 -Rollback + It will restore the TokenCacheModule on all Exchange servers within the organization. #> [CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'High')] diff --git a/mkdocs.yml b/mkdocs.yml index 2c759f684d..7cfd2193ea 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -83,13 +83,13 @@ nav: - Search: - Troubleshoot-ModernSearch: Search/Troubleshoot-ModernSearch.md - Security: + - CVE-2023-21709: Security/CVE-2023-21709.md - CVE-2023-23397: - Security/CVE-2023-23397/index.md - FAQ: Security/CVE-2023-23397/FAQ.md - EOMT: Security/EOMT.md - EOMTv2: Security/EOMTv2.md - Extended Protection: Security/Extended-Protection.md - - CVE-2023-21709: Security/CVE-2023-21709.md - ExchangeExtendedProtectionManagement: Security/ExchangeExtendedProtectionManagement.md - ExchangeMitigations: Security/ExchangeMitigations.md - Test-CVE-2021-34470: Security/Test-CVE-2021-34470.md From 0272c5b738b314ebea6e4c20c929b92ed49d0c99 Mon Sep 17 00:00:00 2001 From: Lukas Sassl Date: Mon, 31 Jul 2023 15:25:50 +0200 Subject: [PATCH 05/22] HealthChecker August 2023 SU release --- .build/cspell-words.txt | 1 + .build/cspell.json | 7 ++ .../Invoke-AnalyzerSecurityCve-2023-21709.ps1 | 48 +++++++++++ .../Invoke-AnalyzerSecurityCveCheck.ps1 | 3 + .../Invoke-AnalyzerSecuritySettings.ps1 | 25 ++++++ .../Get-ExchangeAES256CBCDetails.ps1 | 84 +++++++++++++++++++ .../Get-ExchangeInformation.ps1 | 9 ++ .../Tests/HealthChecker.E15.Main.Tests.ps1 | 4 +- .../Tests/HealthChecker.E16.Main.Tests.ps1 | 6 +- .../Tests/HealthChecker.E19.Main.Tests.ps1 | 4 +- .../Get-ExchangeBuildVersionInformation.ps1 | 9 +- 11 files changed, 190 insertions(+), 10 deletions(-) create mode 100644 Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecurityCve-2023-21709.ps1 create mode 100644 Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 diff --git a/.build/cspell-words.txt b/.build/cspell-words.txt index c7a681f7f0..bbbacd3166 100644 --- a/.build/cspell-words.txt +++ b/.build/cspell-words.txt @@ -91,6 +91,7 @@ msdcs MSDTC MSERT msert +msipc msrc Multiplexor nato diff --git a/.build/cspell.json b/.build/cspell.json index fbd443d9c5..358e63c59e 100644 --- a/.build/cspell.json +++ b/.build/cspell.json @@ -15,6 +15,13 @@ ".vscode", "/cspell-words.txt" ], + "patterns": [ + { + "name": "return-newline-tab-tab", + "pattern": "\\`r\\`n\\`t\\`t" + } + ], + "ignoreRegExpList": ["return-newline-tab-tab"], "caseSensitive": true, "overrides": [ { diff --git a/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecurityCve-2023-21709.ps1 b/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecurityCve-2023-21709.ps1 new file mode 100644 index 0000000000..1f936ceff1 --- /dev/null +++ b/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecurityCve-2023-21709.ps1 @@ -0,0 +1,48 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +. $PSScriptRoot\..\Add-AnalyzedResultInformation.ps1 +function Invoke-AnalyzerSecurityCve-2023-21709 { + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [ref]$AnalyzeResults, + + [Parameter(Mandatory = $true)] + [object]$SecurityObject, + + [Parameter(Mandatory = $true)] + [object]$DisplayGroupingKey + ) + + Write-Verbose "Calling: $($MyInvocation.MyCommand)" + + <# + Description: Check for CVE-2023-21709 vulnerability + Affected Exchange versions: 2016, 2019 + Fix: Remove TokenCacheModule from IIS + Workaround: N/A + #> + + if ($SecurityObject.IsEdgeServer -eq $false) { + Write-Verbose "Testing CVE: CVE-2023-21709" + + if ($SecurityObject.ExchangeInformation.IISSettings.IISModulesInformation.ModuleList.Name -contains "TokenCacheModule") { + Write-Verbose "TokenCacheModule detected - system is vulnerable to CVE-2023-21709 vulnerability" + $params = @{ + AnalyzedInformation = $AnalyzeResults + DisplayGroupingKey = $DisplayGroupingKey + Name = "Security Vulnerability" + Details = ("{0}`r`n`t`tSee: https://portal.msrc.microsoft.com/security-guidance/advisory/{0} for more information." -f "CVE-2023-21709") + DisplayWriteType = "Red" + DisplayTestingValue = "CVE-2023-21709" + AddHtmlDetailRow = $false + } + Add-AnalyzedResultInformation @params + } else { + Write-Verbose "TokenCacheModule wasn't detected and as a result, system is not vulnerable to CVE-2023-21709 vulnerability" + } + } else { + Write-Verbose "Edge Server Role is not affected by this vulnerability as it has no IIS installed" + } +} diff --git a/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecurityCveCheck.ps1 b/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecurityCveCheck.ps1 index 5d5ab10d1f..6955c120cf 100644 --- a/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecurityCveCheck.ps1 +++ b/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecurityCveCheck.ps1 @@ -6,6 +6,7 @@ . $PSScriptRoot\Invoke-AnalyzerSecurityCve-2021-1730.ps1 . $PSScriptRoot\Invoke-AnalyzerSecurityCve-2021-34470.ps1 . $PSScriptRoot\Invoke-AnalyzerSecurityCve-2022-21978.ps1 +. $PSScriptRoot\Invoke-AnalyzerSecurityCve-2023-21709.ps1 . $PSScriptRoot\Invoke-AnalyzerSecurityCve-MarchSuSpecial.ps1 . $PSScriptRoot\Invoke-AnalyzerSecurityExtendedProtectionConfigState.ps1 . $PSScriptRoot\Invoke-AnalyzerSecurityIISModules.ps1 @@ -127,6 +128,7 @@ function Invoke-AnalyzerSecurityCveCheck { "Feb23SU" = (@(NewCveEntry @("CVE-2023-21529", "CVE-2023-21706", "CVE-2023-21707") $ex131619) + (NewCveEntry "CVE-2023-21710" @($ex2016, $ex2019))) "Mar23SU" = (@(NewCveEntry ("CVE-2023-21707") $ex131619)) "Jun23SU" = (NewCveEntry @("CVE-2023-28310", "CVE-2023-32031") @($ex2016, $ex2019)) + "Aug23SU" = (NewCveEntry @("CVE-2023-38181", "CVE-2023-38182", "CVE-2023-38185", "CVE-2023-35368", "CVE-2023-35388") @($ex2016, $ex2019)) } # Need to organize the list so oldest CVEs come out first. @@ -200,6 +202,7 @@ function Invoke-AnalyzerSecurityCveCheck { Invoke-AnalyzerSecurityCve-2021-1730 -AnalyzeResults $AnalyzeResults -SecurityObject $securityObject -DisplayGroupingKey $DisplayGroupingKey Invoke-AnalyzerSecurityCve-2021-34470 -AnalyzeResults $AnalyzeResults -SecurityObject $securityObject -DisplayGroupingKey $DisplayGroupingKey Invoke-AnalyzerSecurityCve-2022-21978 -AnalyzeResults $AnalyzeResults -SecurityObject $securityObject -DisplayGroupingKey $DisplayGroupingKey + Invoke-AnalyzerSecurityCve-2023-21709 -AnalyzeResults $AnalyzeResults -SecurityObject $securityObject -DisplayGroupingKey $DisplayGroupingKey Invoke-AnalyzerSecurityCve-MarchSuSpecial -AnalyzeResults $AnalyzeResults -SecurityObject $securityObject -DisplayGroupingKey $DisplayGroupingKey # Make sure that these stay as the last one to keep the output more readable Invoke-AnalyzerSecurityExtendedProtectionConfigState -AnalyzeResults $AnalyzeResults -SecurityObject $securityObject -DisplayGroupingKey $DisplayGroupingKey diff --git a/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecuritySettings.ps1 b/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecuritySettings.ps1 index f7e0cca7ea..91a0d196bb 100644 --- a/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecuritySettings.ps1 +++ b/Diagnostics/HealthChecker/Analyzer/Security/Invoke-AnalyzerSecuritySettings.ps1 @@ -23,6 +23,7 @@ function Invoke-AnalyzerSecuritySettings { Write-Verbose "Calling: $($MyInvocation.MyCommand)" $osInformation = $HealthServerObject.OSInformation + $aes256CbcInformation = $HealthServerObject.ExchangeInformation.AES256CBCInformation $keySecuritySettings = (Get-DisplayResultsGroupingKey -Name "Security Settings" -DisplayOrder $Order) $baseParams = @{ AnalyzedInformation = $AnalyzeResults @@ -331,6 +332,30 @@ function Invoke-AnalyzerSecuritySettings { } Add-AnalyzedResultInformation @params + # AES256-CBC encryption support check + $params = $baseParams + @{ + Name = "AES256-CBC Protected Content Support" + Details = $true + DisplayWriteType = "Green" + } + + if (($aes256CbcInformation.AES256CBCSupportedBuild) -and + ($aes256CbcInformation.ValidAESConfiguration -eq $false)) { + $params.Details = ("True" + + "`r`n`t`tThis build supports AES256-CBC protected content, but the configuration is not complete. Exchange Server is not able to decrypt" + + "`r`n`t`tprotected messages which could impact eDiscovery and Journaling tasks. If you use Rights Management Service (RMS) on-premises," + + "`r`n`t`tplease follow the instructions as outlined in the documentation: https://aka.ms/ExchangeCBCKB") + $params.DisplayWriteType = "Yellow" + } elseif ($aes256CbcInformation.AES256CBCSupportedBuild -eq $false) { + $params.Details = ("False" + + "`r`n`t`tThis could lead to scenarios where Exchange Server is no longer able to decrypt protected messages," + + "`r`n`t`tfor example, when sending rights management protected messages using AES256-CBC encryption algorithm," + + "`r`n`t`tor when performing eDiscovery and Journaling tasks." + + "`r`n`t`tMore Information: https://aka.ms/Purview/CBCDetails") + $params.DisplayWriteType = "Red" + } + Add-AnalyzedResultInformation @params + $additionalDisplayValue = [string]::Empty $smb1Settings = $osInformation.Smb1ServerSettings diff --git a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 new file mode 100644 index 0000000000..b469f5a20b --- /dev/null +++ b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 @@ -0,0 +1,84 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +. $PSScriptRoot\..\..\Helpers\CompareExchangeBuildLevel.ps1 +. $PSScriptRoot\..\..\..\..\Shared\Invoke-ScriptBlockHandler.ps1 +. $PSScriptRoot\..\..\..\..\Shared\ErrorMonitorFunctions.ps1 +function Get-ExchangeAES256CBCDetails { + param( + [Parameter(Mandatory = $false)] + [String]$Server = $env:COMPUTERNAME, + + [Parameter(Mandatory = $true)] + [System.Object]$VersionInformation + ) + + <# + AES256-CBC encryption support check + https://techcommunity.microsoft.com/t5/security-compliance-and-identity/encryption-algorithm-changes-in-microsoft-purview-information/ba-p/3831909 + #> + + begin { + Write-Verbose "Calling: $($MyInvocation.MyCommand)" + $aes256CBCSupported = $false + $msipcRegistryAclAsExpected = $false + $regPathToCheck = "HKLM:\SOFTWARE\Microsoft\MSIPC\Server" + # Translates to: "NetworkService", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow" + # See: https://learn.microsoft.com/dotnet/api/system.security.accesscontrol.registryaccessrule.-ctor?view=net-7.0#system-security-accesscontrol-registryaccessrule-ctor(system-security-principal-identityreference-system-security-accesscontrol-registryrights-system-security-accesscontrol-inheritanceflags-system-security-accesscontrol-propagationflags-system-security-accesscontrol-accesscontroltype) + $networkServiceAcl = New-Object System.Security.AccessControl.RegistryAccessRule( + [System.Security.Principal.SecurityIdentifier]::new("S-1-5-20"), 983103, 3, 0, 0 + ) + } process { + # First, check if the build running on the server supports AES256-CBC + if (Test-ExchangeBuildGreaterOrEqualThanSecurityPatch -CurrentExchangeBuild $VersionInformation -SU "Aug23SU") { + + Write-Verbose "AES256-CBC encryption for information protection is supported by this Exchange Server build" + $aes256CBCSupported = $true + + # As build supports AES256-CBC, next step is to check that the registry key exists and permissions are set as expected + $params = @{ + ComputerName = $Server + ScriptBlock = { Test-Path -Path $regPathToCheck } + CatchActionFunction = ${Function:Invoke-CatchActions} + } + + if ((Invoke-ScriptBlockHandler @params) -eq $false) { + Write-Verbose "Unable to query Acl of registry key $regPathToCheck assuming that the key doesn't exist" + } else { + $params.ScriptBlock = { Get-Acl -Path $regPathToCheck } + $acl = Invoke-ScriptBlockHandler @params + + # ToDo: As we have multiple places in HC where we query acls, we should consider creating a function + # that can be used to do the acl call, similar to what we do in Get-ExchangeRegistryValues.ps1. + Write-Verbose "Registry key exists and Acl was successfully queried - validating Acl now" + try { + $aclMatch = $acl.Access.Where({ + ($_.RegistryRights -eq $networkServiceAcl.RegistryRights) -and + ($_.AccessControlType -eq $networkServiceAcl.AccessControlType) -and + ($_.IdentityReference.Translate([System.Security.Principal.SecurityIdentifier]) -eq $networkServiceAcl.IdentityReference) -and + ($_.InheritanceFlags -eq $networkServiceAcl.InheritanceFlags) -and + ($_.PropagationFlags -eq $networkServiceAcl.PropagationFlags) + }) + + if ($aclMatch.Count -ge 1) { + Write-Verbose "Acl for NetworkService is as expected" + $msipcRegistryAclAsExpected = $true + } else { + Write-Verbose "Acl for NetworkService was not found or is not as expected" + } + } catch { + Write-Verbose "Unable to verify Acl on registry key $regPathToCheck" + Invoke-CatchActions + } + } + } else { + Write-Verbose "AES256-CBC encryption for information protection is not supported by this Exchange Server build" + } + } end { + return [PSCustomObject]@{ + AES256CBCSupportedBuild = $aes256CBCSupported + RegistryKeyConfiguredAsExpected = $msipcRegistryAclAsExpected + ValidAESConfiguration = (($aes256CBCSupported) -and ($msipcRegistryAclAsExpected)) + } + } +} diff --git a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 index bb54a7ad8b..2341114bf3 100644 --- a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 +++ b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 @@ -7,6 +7,7 @@ . $PSScriptRoot\..\..\..\..\Shared\Get-ExchangeSettingOverride.ps1 . $PSScriptRoot\IISInformation\Get-ExchangeAppPoolsInformation.ps1 . $PSScriptRoot\IISInformation\Get-ExchangeServerIISSettings.ps1 +. $PSScriptRoot\Get-ExchangeAES256CBCDetails.ps1 . $PSScriptRoot\Get-ExchangeApplicationConfigurationFileValidation.ps1 . $PSScriptRoot\Get-ExchangeConnectors.ps1 . $PSScriptRoot\Get-ExchangeDependentServices.ps1 @@ -147,6 +148,13 @@ function Get-ExchangeInformation { } } $eemsEndpointResults = Invoke-ScriptBlockHandler @eemsEndpointParams + + Write-Verbose "Checking AES256-CBC information protection readiness and configuration" + $aes256CbcParams = @{ + Server = $Server + VersionInformation = $versionInformation + } + $aes256CbcDetails = Get-ExchangeAES256CBCDetails @aes256CbcParams } end { Write-Verbose "Exiting: Get-ExchangeInformation" @@ -169,6 +177,7 @@ function Get-ExchangeInformation { IISSettings = $iisSettings SettingOverrides = $settingOverrides FIPFSUpdateIssue = $FIPFSUpdateIssue + AES256CBCInformation = $aes256CbcDetails } } } diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 index 5637ae0bc3..5dbeaa1a57 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 @@ -127,7 +127,7 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2013" { TestObjectMatch "SMB1 Installed" "True" -WriteType "Red" TestObjectMatch "SMB1 Blocked" "False" -WriteType "Red" - $Script:ActiveGrouping.Count | Should -Be 82 + $Script:ActiveGrouping.Count | Should -Be 83 } It "Display Results - Security Vulnerability" { @@ -135,7 +135,7 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2013" { $cveTests = $Script:ActiveGrouping.TestingValue | Where-Object { ($_.GetType().Name -eq "String") -and ($_.StartsWith("CVE")) } $cveTests.Contains("CVE-2020-1147") | Should -Be $true - $cveTests.Count | Should -Be 53 + $cveTests.Count | Should -Be 54 } } } diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 index 24d85ee544..635736a9ac 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 @@ -130,7 +130,7 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2016" { TestObjectMatch "Pattern service" "Unreachable`r`n`t`tMore information: https://aka.ms/HelpConnectivityEEMS" -WriteType "Yellow" TestObjectMatch "Telemetry enabled" "False" - $Script:ActiveGrouping.Count | Should -Be 95 + $Script:ActiveGrouping.Count | Should -Be 96 } It "Display Results - Security Vulnerability" { @@ -138,11 +138,11 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2016" { $cveTests = GetObject "Security Vulnerability" $cveTests.Contains("CVE-2020-1147") | Should -Be $true - $cveTests.Count | Should -Be 33 + $cveTests.Count | Should -Be 39 $downloadDomains = GetObject "CVE-2021-1730" $downloadDomains.DownloadDomainsEnabled | Should -Be "false" - $Script:ActiveGrouping.Count | Should -Be 40 + $Script:ActiveGrouping.Count | Should -Be 46 } } diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 index f2fef4fc31..7153f31080 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 @@ -135,7 +135,7 @@ Describe "Testing Health Checker by Mock Data Imports" { TestObjectMatch "Strict Mode disabled" "False" -WriteType "Green" TestObjectMatch "BaseTypeCheckForDeserialization disabled" "False" -WriteType "Green" - $Script:ActiveGrouping.Count | Should -Be 78 + $Script:ActiveGrouping.Count | Should -Be 79 } It "Display Results - Security Vulnerability" { @@ -143,7 +143,7 @@ Describe "Testing Health Checker by Mock Data Imports" { $cveTests = GetObject "Security Vulnerability" $cveTests.Contains("CVE-2020-1147") | Should -Be $true - $cveTests.Count | Should -Be 33 + $cveTests.Count | Should -Be 39 $downloadDomains = GetObject "CVE-2021-1730" $downloadDomains.DownloadDomainsEnabled | Should -Be "False" TestObjectMatch "Extended Protection Vulnerable" "True" -WriteType "Red" diff --git a/Shared/Get-ExchangeBuildVersionInformation.ps1 b/Shared/Get-ExchangeBuildVersionInformation.ps1 index ab03ecbd33..f56292d33f 100644 --- a/Shared/Get-ExchangeBuildVersionInformation.ps1 +++ b/Shared/Get-ExchangeBuildVersionInformation.ps1 @@ -127,14 +127,14 @@ function Get-ExchangeBuildVersionInformation { $cuReleaseDate = "05/03/2023" $supportedBuildNumber = $true } - (GetBuildVersion $ex19 "CU13" -SU "Jun23SU") { $latestSUBuild = $true } + (GetBuildVersion $ex19 "CU13" -SU "Aug23SU") { $latestSUBuild = $true } { $_ -lt (GetBuildVersion $ex19 "CU13") } { $cuLevel = "CU12" $cuReleaseDate = "04/20/2022" $supportedBuildNumber = $true $orgValue = 16760 } - (GetBuildVersion $ex19 "CU12" -SU "Jun23SU") { $latestSUBuild = $true } + (GetBuildVersion $ex19 "CU12" -SU "Aug23SU") { $latestSUBuild = $true } { $_ -lt (GetBuildVersion $ex19 "CU12") } { $cuLevel = "CU11" $cuReleaseDate = "09/28/2021" @@ -221,7 +221,7 @@ function Get-ExchangeBuildVersionInformation { $cuReleaseDate = "04/20/2022" $supportedBuildNumber = $true } - (GetBuildVersion $ex16 "CU23" -SU "Jun23SU") { $latestSUBuild = $true } + (GetBuildVersion $ex16 "CU23" -SU "Aug23SU") { $latestSUBuild = $true } { $_ -lt (GetBuildVersion $ex16 "CU23") } { $cuLevel = "CU22" $cuReleaseDate = "09/28/2021" @@ -701,6 +701,7 @@ function GetExchangeBuildDictionary { "Feb23SU" = "15.1.2507.21" "Mar23SU" = "15.1.2507.23" "Jun23SU" = "15.1.2507.27" + "Aug23SU" = "15.1.2507.31" }) } "Exchange2019" = @{ @@ -787,9 +788,11 @@ function GetExchangeBuildDictionary { "Feb23SU" = "15.2.1118.25" "Mar23SU" = "15.2.1118.26" "Jun23SU" = "15.2.1118.30" + "Aug23SU" = "15.2.1118.36" }) "CU13" = (NewCUAndSUObject "15.2.1258.12" @{ "Jun23SU" = "15.2.1258.16" + "Aug23SU" = "15.2.1258.23" }) } } From 3aa849515e9d54faf18c1a89bfc1615e4ed08a5c Mon Sep 17 00:00:00 2001 From: Lukas Sassl Date: Tue, 8 Aug 2023 17:01:13 +0200 Subject: [PATCH 06/22] Enforce array type to ensure .Count method exists --- .../ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 index b469f5a20b..6c134bd685 100644 --- a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 +++ b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 @@ -60,7 +60,7 @@ function Get-ExchangeAES256CBCDetails { ($_.PropagationFlags -eq $networkServiceAcl.PropagationFlags) }) - if ($aclMatch.Count -ge 1) { + if (@($aclMatch).Count -ge 1) { Write-Verbose "Acl for NetworkService is as expected" $msipcRegistryAclAsExpected = $true } else { From 86fdaa4c6f36c9f70cdaca3410e7538ae1055a01 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Tue, 8 Aug 2023 16:12:20 -0500 Subject: [PATCH 07/22] Fix issue with ::new() ctor on 2012 server --- .../ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 index 6c134bd685..01e8eabd31 100644 --- a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 +++ b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 @@ -26,7 +26,7 @@ function Get-ExchangeAES256CBCDetails { # Translates to: "NetworkService", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow" # See: https://learn.microsoft.com/dotnet/api/system.security.accesscontrol.registryaccessrule.-ctor?view=net-7.0#system-security-accesscontrol-registryaccessrule-ctor(system-security-principal-identityreference-system-security-accesscontrol-registryrights-system-security-accesscontrol-inheritanceflags-system-security-accesscontrol-propagationflags-system-security-accesscontrol-accesscontroltype) $networkServiceAcl = New-Object System.Security.AccessControl.RegistryAccessRule( - [System.Security.Principal.SecurityIdentifier]::new("S-1-5-20"), 983103, 3, 0, 0 + (New-Object System.Security.Principal.SecurityIdentifier("S-1-5-20")), 983103, 3, 0, 0 ) } process { # First, check if the build running on the server supports AES256-CBC From 67bc378f882f8390df255fd658e71fa4a9d4c626 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Wed, 9 Aug 2023 17:37:24 -0500 Subject: [PATCH 08/22] Make sure we invoke actions in remote context correctly --- .../Get-ExchangeAES256CBCDetails.ps1 | 64 +++++++++++-------- 1 file changed, 38 insertions(+), 26 deletions(-) diff --git a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 index 01e8eabd31..08270470cd 100644 --- a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 +++ b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeAES256CBCDetails.ps1 @@ -20,34 +20,21 @@ function Get-ExchangeAES256CBCDetails { begin { Write-Verbose "Calling: $($MyInvocation.MyCommand)" - $aes256CBCSupported = $false - $msipcRegistryAclAsExpected = $false - $regPathToCheck = "HKLM:\SOFTWARE\Microsoft\MSIPC\Server" - # Translates to: "NetworkService", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow" - # See: https://learn.microsoft.com/dotnet/api/system.security.accesscontrol.registryaccessrule.-ctor?view=net-7.0#system-security-accesscontrol-registryaccessrule-ctor(system-security-principal-identityreference-system-security-accesscontrol-registryrights-system-security-accesscontrol-inheritanceflags-system-security-accesscontrol-propagationflags-system-security-accesscontrol-accesscontroltype) - $networkServiceAcl = New-Object System.Security.AccessControl.RegistryAccessRule( - (New-Object System.Security.Principal.SecurityIdentifier("S-1-5-20")), 983103, 3, 0, 0 - ) - } process { - # First, check if the build running on the server supports AES256-CBC - if (Test-ExchangeBuildGreaterOrEqualThanSecurityPatch -CurrentExchangeBuild $VersionInformation -SU "Aug23SU") { - - Write-Verbose "AES256-CBC encryption for information protection is supported by this Exchange Server build" - $aes256CBCSupported = $true - # As build supports AES256-CBC, next step is to check that the registry key exists and permissions are set as expected - $params = @{ - ComputerName = $Server - ScriptBlock = { Test-Path -Path $regPathToCheck } - CatchActionFunction = ${Function:Invoke-CatchActions} - } + function GetRegistryAclCheckScriptBlock { + $sbMsipcRegistryAclAsExpected = $false + $regPathToCheck = "HKLM:\SOFTWARE\Microsoft\MSIPC\Server" + # Translates to: "NetworkService", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow" + # See: https://learn.microsoft.com/dotnet/api/system.security.accesscontrol.registryaccessrule.-ctor?view=net-7.0#system-security-accesscontrol-registryaccessrule-ctor(system-security-principal-identityreference-system-security-accesscontrol-registryrights-system-security-accesscontrol-inheritanceflags-system-security-accesscontrol-propagationflags-system-security-accesscontrol-accesscontroltype) + $networkServiceAcl = New-Object System.Security.AccessControl.RegistryAccessRule( + (New-Object System.Security.Principal.SecurityIdentifier("S-1-5-20")), 983103, 3, 0, 0 + ) + $pathExists = Test-Path $regPathToCheck - if ((Invoke-ScriptBlockHandler @params) -eq $false) { + if ($pathExists -eq $false) { Write-Verbose "Unable to query Acl of registry key $regPathToCheck assuming that the key doesn't exist" } else { - $params.ScriptBlock = { Get-Acl -Path $regPathToCheck } - $acl = Invoke-ScriptBlockHandler @params - + $acl = Get-Acl -Path $regPathToCheck # ToDo: As we have multiple places in HC where we query acls, we should consider creating a function # that can be used to do the acl call, similar to what we do in Get-ExchangeRegistryValues.ps1. Write-Verbose "Registry key exists and Acl was successfully queried - validating Acl now" @@ -62,15 +49,40 @@ function Get-ExchangeAES256CBCDetails { if (@($aclMatch).Count -ge 1) { Write-Verbose "Acl for NetworkService is as expected" - $msipcRegistryAclAsExpected = $true + $sbMsipcRegistryAclAsExpected = $true } else { Write-Verbose "Acl for NetworkService was not found or is not as expected" } } catch { Write-Verbose "Unable to verify Acl on registry key $regPathToCheck" - Invoke-CatchActions + # Unable to use Invoke-CatchActions because of remote script block } } + + return [PSCustomObject]@{ + PathExits = $pathExists + RegistryKeyConfiguredAsExpected = $sbMsipcRegistryAclAsExpected + } + } + + $aes256CBCSupported = $false + $msipcRegistryAclAsExpected = $false + } process { + # First, check if the build running on the server supports AES256-CBC + if (Test-ExchangeBuildGreaterOrEqualThanSecurityPatch -CurrentExchangeBuild $VersionInformation -SU "Aug23SU") { + + Write-Verbose "AES256-CBC encryption for information protection is supported by this Exchange Server build" + $aes256CBCSupported = $true + + $params = @{ + ComputerName = $Server + ScriptBlock = ${Function:GetRegistryAclCheckScriptBlock} + CatchActionFunction = ${Function:Invoke-CatchActions} + } + $results = Invoke-ScriptBlockHandler @params + Write-Verbose "Found Registry Path: $($results.PathExits)" + Write-Verbose "Configured Correctly: $($results.RegistryKeyConfiguredAsExpected)" + $msipcRegistryAclAsExpected = $results.RegistryKeyConfiguredAsExpected } else { Write-Verbose "AES256-CBC encryption for information protection is not supported by this Exchange Server build" } From 026ce5c915c2b4bccb1fabbd23691d4b371d84ba Mon Sep 17 00:00:00 2001 From: David Paulson Date: Thu, 10 Aug 2023 13:07:59 -0500 Subject: [PATCH 09/22] Allow Get-EventLogLevel to force reconnect with loop --- Shared/Confirm-ExchangeShell.ps1 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Shared/Confirm-ExchangeShell.ps1 b/Shared/Confirm-ExchangeShell.ps1 index 0c33725816..fc37ab484c 100644 --- a/Shared/Confirm-ExchangeShell.ps1 +++ b/Shared/Confirm-ExchangeShell.ps1 @@ -40,7 +40,14 @@ function Confirm-ExchangeShell { try { $currentErrors = $Error.Count - $eventLogLevel = Get-EventLogLevel -ErrorAction Stop | Select-Object -First 1 + $attempts = 0 + do { + $eventLogLevel = Get-EventLogLevel -ErrorAction Stop | Select-Object -First 1 + $attempts++ + if ($attempts -ge 5) { + throw "Failed to run Get-EventLogLevel too many times." + } + } while ($null -eq $eventLogLevel) $getEventLogLevelCallSuccessful = $true foreach ($e in $eventLogLevel) { Write-Verbose "Type is: $($e.GetType().Name) BaseType is: $($e.GetType().BaseType)" From b9e8b3532af26b89a3df93542177c06e1fa1cefd Mon Sep 17 00:00:00 2001 From: Lukas Sassl Date: Fri, 11 Aug 2023 10:17:26 +0200 Subject: [PATCH 10/22] CVE-2023-21709 wording adjusted --- .../src/CVE-2023-21709/CVE-2023-21709.ps1 | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 index 2a6f4ac850..6592d949af 100644 --- a/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 +++ b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 @@ -86,17 +86,29 @@ begin { } try { + $iisAppPoolWording = "Note that each Exchange server's IIS Application Pool will be restarted after either applying the setting change or restore action." + $vulnerabilityMoreInformationWording = "More information about the vulnerability can be found here: https://portal.msrc.microsoft.com/security-guidance/advisory/CVE-2023-21709." if (-not $Rollback) { $params = @{ - Message = "Display Warning about removing TokenCacheModule" - Target = "TokenCacheModule is recommended to be removed from IIS for security reasons. " + - "Removal of this module might have performance impact on Outlook For Web and Active-Sync" + - "`r`nYou can find more information on: https://portal.msrc.microsoft.com/security-guidance/advisory/CVE-2023-21709. Do you want to proceed?" + Message = "Display Warning about TokenCacheModule removal operation" + Target = "Removal of TokenCacheModule from IIS is recommended for security reasons. " + + "Removal of this module might have performance impact during first logon after cache is removed for OWA/ECP and Exchange Active Sync clients. " + + "$iisAppPoolWording" + + "`r`n$vulnerabilityMoreInformationWording" + + "`r`nDo you want to proceed?" Operation = "Removing TokenCacheModule from IIS" } - - Show-Disclaimer @params + } else { + $params = @{ + Message = "Display Warning about TokenCacheModule rollback operation" + Target = "TokenCacheModule will be restored in IIS. This makes the system vulnerable to the CVE-2023-21709 vulnerability again. " + + "$iisAppPoolWording" + + "`r`n$vulnerabilityMoreInformationWording" + + "`r`nDo you want to proceed?" + Operation = "Adding TokenCacheModule back to IIS" + } } + Show-Disclaimer @params Write-Verbose ("Running Get-ExchangeServer to get list of all exchange servers") Set-ADServerSettings -ViewEntireForest $true From 0d82ced054ef5fd4812fba8423f275a0c5e535c4 Mon Sep 17 00:00:00 2001 From: Bhalchandra Atre-MSFT <39634045+Batre-MSFT@users.noreply.github.com> Date: Mon, 14 Aug 2023 19:23:28 +0530 Subject: [PATCH 11/22] Update Emerging-Issues.md Aug 2023 SU Issue --- docs/Emerging-Issues.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Emerging-Issues.md b/docs/Emerging-Issues.md index 5d9263efe8..a8cf575684 100644 --- a/docs/Emerging-Issues.md +++ b/docs/Emerging-Issues.md @@ -9,6 +9,7 @@ This page lists emerging issues for Exchange On-Premises deployments, possible r |**Updated on** | **Update causing the issue**| **Issue**| **Workaround/Solution** |-|-|-|-| +8/14/2023|[Non-English August 2023 Security Update](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-august-2023-exchange-server-security-updates/ba-p/3892811) for Exchange 2016, Exchange 2019 | When you install the Microsoft Exchange Server 2019 or 2016 August 2023 Security Update (SU) on a Windows Server-based device that is running a non-English operating system (OS) version, Setup suddenly stops and rolls back the changes. However, the Exchange Server services remain in a disabled state. |The problematic SU's are taken down from the installation and fixed version of updates will be released shortly. Meanwhile, if you are affected by the issue, please follow steps in [this KB](https://support.microsoft.com/topic/exchange-server-2019-and-2016-august-2023-security-update-installation-fails-on-non-english-operating-systems-ef38d805-f645-4511-8cc5-cf967e5d5c75) for the workaround on affected systems 6/15/2023|[January 2023 Security Update](https://www.microsoft.com/en-us/download/details.aspx?id=104914) for Exchange 2016, Exchange 2019 | When you try to uninstall Microsoft Exchange Server 2019 or 2016 on servers, that had January 2023 Security Update for Exchange Server installed at any point, the Setup fails with following error message:

[ERROR] The operation couldn't be performed because object '' couldn't be found on ''. |Install Exchange Security Update June 2023 or higher to resolve the issue. Check [this KB](https://support.microsoft.com/help/5025312) for more details 6/15/2023|Extended protection enabled on Exchange server | Changing the permissions for Public Folders by using an Outlook client will fail with the following error, if Extended Protection is enabled:

`The modified Permissions cannot be changed.`| Install Exchange Security Update June 2023 or higher to resolve the issue. Check [this KB](https://support.microsoft.com/en-us/topic/extended-protection-doesn-t-support-public-folder-client-permissions-management-through-outlook-bd2037b5-40e0-413a-b368-746b3f5439ee) for more details |3/16/2023| [Outlook client update for CVE-2023-23397 released](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397)| These vulnerabilities affect Exchange Server. Exchange Online customers are already protected from the vulnerabilities addressed in these SUs and do not need to take any action **other than updating Exchange servers in their environment, and if applicable, installing the security update for Outlook on Windows described on the link on the right.**
More details about specific CVEs can be found in the [Security Update Guide](https://msrc.microsoft.com/update-guide/) (filter on Exchange Server under Product Family).
**Awareness: Outlook client update for CVE-2023-23397 released**
There is a critical security update for Microsoft Outlook for Windows that is required to address [CVE-2023-23397](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397). To address this CVE, **you must install the Outlook security update, regardless of where your mail is hosted (e.g., Exchange Online, Exchange Server, some other platform).** | **Please check [this page](https://aka.ms/OLKCVEFAQ) for FAQs about the [Outlook CVE-2023-23397](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397)** From 879b20e75fbdfee8c64eac93b8e5fb02358237f7 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Tue, 15 Aug 2023 09:28:19 -0500 Subject: [PATCH 12/22] Include Aug23SUv2 version --- .../Get-ExchangeBuildVersionInformation.ps1 | 46 +++++++++++-------- ...-ExchangeBuildVersionInformation.Tests.ps1 | 38 +++++++++++++-- 2 files changed, 59 insertions(+), 25 deletions(-) diff --git a/Shared/Get-ExchangeBuildVersionInformation.ps1 b/Shared/Get-ExchangeBuildVersionInformation.ps1 index f56292d33f..4aa68a9d92 100644 --- a/Shared/Get-ExchangeBuildVersionInformation.ps1 +++ b/Shared/Get-ExchangeBuildVersionInformation.ps1 @@ -127,6 +127,7 @@ function Get-ExchangeBuildVersionInformation { $cuReleaseDate = "05/03/2023" $supportedBuildNumber = $true } + (GetBuildVersion $ex19 "CU13" -SU "Aug23SUv2") { $latestSUBuild = $true } (GetBuildVersion $ex19 "CU13" -SU "Aug23SU") { $latestSUBuild = $true } { $_ -lt (GetBuildVersion $ex19 "CU13") } { $cuLevel = "CU12" @@ -134,6 +135,7 @@ function Get-ExchangeBuildVersionInformation { $supportedBuildNumber = $true $orgValue = 16760 } + (GetBuildVersion $ex19 "CU12" -SU "Aug23SUv2") { $latestSUBuild = $true } (GetBuildVersion $ex19 "CU12" -SU "Aug23SU") { $latestSUBuild = $true } { $_ -lt (GetBuildVersion $ex19 "CU12") } { $cuLevel = "CU11" @@ -221,6 +223,7 @@ function Get-ExchangeBuildVersionInformation { $cuReleaseDate = "04/20/2022" $supportedBuildNumber = $true } + (GetBuildVersion $ex16 "CU23" -SU "Aug23SUv2") { $latestSUBuild = $true } (GetBuildVersion $ex16 "CU23" -SU "Aug23SU") { $latestSUBuild = $true } { $_ -lt (GetBuildVersion $ex16 "CU23") } { $cuLevel = "CU22" @@ -693,15 +696,16 @@ function GetExchangeBuildDictionary { "Nov22SU" = "15.1.2375.37" }) "CU23" = (NewCUAndSUObject "15.1.2507.6" @{ - "May22SU" = "15.1.2507.9" - "Aug22SU" = "15.1.2507.12" - "Oct22SU" = "15.1.2507.13" - "Nov22SU" = "15.1.2507.16" - "Jan23SU" = "15.1.2507.17" - "Feb23SU" = "15.1.2507.21" - "Mar23SU" = "15.1.2507.23" - "Jun23SU" = "15.1.2507.27" - "Aug23SU" = "15.1.2507.31" + "May22SU" = "15.1.2507.9" + "Aug22SU" = "15.1.2507.12" + "Oct22SU" = "15.1.2507.13" + "Nov22SU" = "15.1.2507.16" + "Jan23SU" = "15.1.2507.17" + "Feb23SU" = "15.1.2507.21" + "Mar23SU" = "15.1.2507.23" + "Jun23SU" = "15.1.2507.27" + "Aug23SU" = "15.1.2507.31" + "Aug23SUv2" = "15.1.2507.32" }) } "Exchange2019" = @{ @@ -780,19 +784,21 @@ function GetExchangeBuildDictionary { "Mar23SU" = "15.2.986.42" }) "CU12" = (NewCUAndSUObject "15.2.1118.7" @{ - "May22SU" = "15.2.1118.9" - "Aug22SU" = "15.2.1118.12" - "Oct22SU" = "15.2.1118.15" - "Nov22SU" = "15.2.1118.20" - "Jan23SU" = "15.2.1118.21" - "Feb23SU" = "15.2.1118.25" - "Mar23SU" = "15.2.1118.26" - "Jun23SU" = "15.2.1118.30" - "Aug23SU" = "15.2.1118.36" + "May22SU" = "15.2.1118.9" + "Aug22SU" = "15.2.1118.12" + "Oct22SU" = "15.2.1118.15" + "Nov22SU" = "15.2.1118.20" + "Jan23SU" = "15.2.1118.21" + "Feb23SU" = "15.2.1118.25" + "Mar23SU" = "15.2.1118.26" + "Jun23SU" = "15.2.1118.30" + "Aug23SU" = "15.2.1118.36" + "Aug23SUv2" = "15.2.1118.37" }) "CU13" = (NewCUAndSUObject "15.2.1258.12" @{ - "Jun23SU" = "15.2.1258.16" - "Aug23SU" = "15.2.1258.23" + "Jun23SU" = "15.2.1258.16" + "Aug23SU" = "15.2.1258.23" + "Aug23SUv2" = "15.2.1258.25" }) } } diff --git a/Shared/Tests/Get-ExchangeBuildVersionInformation.Tests.ps1 b/Shared/Tests/Get-ExchangeBuildVersionInformation.Tests.ps1 index 62a8a3782b..4261426631 100644 --- a/Shared/Tests/Get-ExchangeBuildVersionInformation.Tests.ps1 +++ b/Shared/Tests/Get-ExchangeBuildVersionInformation.Tests.ps1 @@ -173,14 +173,24 @@ Describe "Testing Get-ExchangeBuildVersionInformation.ps1" { ForEach-Object { [System.Version]$_ } | Sort-Object -Descending | Select-Object -First 2 + + # RegEx to find if the latest is a v* version. Then we assume what we have set is correct and we don't test them. $latestSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[0] $latestSU.Supported | Should -Be $true $latestSU.LatestSU | Should -Be $true + $notSecondVersionSU = $null -eq ($latestSU.FriendlyName | Select-String "\D{3}\d{2}SUv\d") - if ($latest2SUs.Count -eq 2) { + if ($latest2SUs.Count -eq 2 -and + $notSecondVersionSU) { $latestSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[1] $latestSU.Supported | Should -Be $true $latestSU.LatestSU | Should -Be $false + } elseif ($latest2SUs.Count -eq 2) { + $secondSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[1] + $secondSU.Supported | Should -Be $true + $latestSU.FriendlyName.Substring(0, $latestSU.FriendlyName.Length - 2) | Should -Be $secondSU.FriendlyName + # This test could change depending on the reason for the v2 release. + $secondSU.LatestSU | Should -Be $true } } } @@ -201,11 +211,19 @@ Describe "Testing Get-ExchangeBuildVersionInformation.ps1" { $latestSupportedSU = Get-ExchangeBuildVersionInformation -FileVersion $latestSupportedSUs[0] $latestSupportedSU.Supported | Should -Be $true $latestSupportedSU.LatestSU | Should -Be $true + $notSecondVersionSU = $null -eq ($latestSupportedSU.FriendlyName | Select-String "\D{3}\d{2}SUv\d") - if ($latestSupportedSUs.Count -eq 2) { + if ($latestSupportedSUs.Count -eq 2 -and + $notSecondVersionSU) { $latestSupportedSU = Get-ExchangeBuildVersionInformation -FileVersion $latestSupportedSUs[1] $latestSupportedSU.Supported | Should -Be $true $latestSupportedSU.LatestSU | Should -Be $false + } elseif ($latestSupportedSUs.Count -eq 2) { + $secondSU = Get-ExchangeBuildVersionInformation -FileVersion $latestSupportedSUs[1] + $secondSU.Supported | Should -Be $true + $latestSupportedSU.FriendlyName.Substring(0, $latestSupportedSU.FriendlyName.Length - 2) | Should -Be $secondSU.FriendlyName + # This test could change depending on the reason for the v2 release. + $secondSU.LatestSU | Should -Be $true } $latestUnsupportedSUs = (GetExchangeBuildDictionary)["Exchange2019"][$unSupportedCU.CU].SU.Values | @@ -240,9 +258,19 @@ Describe "Testing Get-ExchangeBuildVersionInformation.ps1" { $latestSU.Supported | Should -Be $true $latestSU.LatestSU | Should -Be $true - $previousSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[1] - $previousSU.Supported | Should -Be $true - $previousSU.LatestSU | Should -Be $false + $notSecondVersionSU = $null -eq ($latestSU.FriendlyName | Select-String "\D{3}\d{2}SUv\d") + + if ($notSecondVersionSU) { + $previousSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[1] + $previousSU.Supported | Should -Be $true + $previousSU.LatestSU | Should -Be $false + } else { + $previousSU = Get-ExchangeBuildVersionInformation -FileVersion $latest2SUs[1] + $previousSU.Supported | Should -Be $true + $latestSU.FriendlyName.Substring(0, $latestSU.FriendlyName.Length - 2) | Should -Be $previousSU.FriendlyName + # This test could change depending on the reason for the v2 release. + $previousSU.LatestSU | Should -Be $true + } (Get-ExchangeBuildVersionInformation -FileVersion $latest2CUs[1]).Supported | Should -Be $false } From dfa9bee72970f1daa9bc775066af5c002534d7fd Mon Sep 17 00:00:00 2001 From: David Paulson Date: Tue, 15 Aug 2023 12:27:41 -0500 Subject: [PATCH 13/22] Detect if KB5029388 is installed on non-english OS --- .../Invoke-AnalyzerExchangeInformation.ps1 | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 index 6fa3c4a2e5..5857857f54 100644 --- a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 +++ b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerExchangeInformation.ps1 @@ -116,6 +116,8 @@ function Invoke-AnalyzerExchangeInformation { if ($null -ne $exchangeInformation.BuildInformation.KBsInstalled) { Add-AnalyzedResultInformation -Name "Exchange IU or Security Hotfix Detected" @baseParams + $problemKbFound = $false + $problemKbName = "KB5029388" foreach ($kb in $exchangeInformation.BuildInformation.KBsInstalled) { $params = $baseParams + @{ @@ -123,6 +125,32 @@ function Invoke-AnalyzerExchangeInformation { DisplayCustomTabNumber = 2 } Add-AnalyzedResultInformation @params + + if ($kb.Contains($problemKbName)) { + $problemKbFound = $true + } + } + + if ($problemKbFound) { + Write-Verbose "Found problem $problemKbName" + if ($null -ne $HealthServerObject.OSInformation.BuildInformation.OperatingSystem.OSLanguage) { + [int]$OSLanguageID = [int]($HealthServerObject.OSInformation.BuildInformation.OperatingSystem.OSLanguage) + # https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-operatingsystem + $englishLanguageIDs = @(9, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 10249, 11273) + if ($englishLanguageIDs.Contains($OSLanguageID)) { + Write-Verbose "OS is english language. No action required" + } else { + Write-Verbose "Non english language code: $OSLanguageID" + $params = $baseParams + @{ + Details = "Error: August 2023 SU 1 Problem Detected. More Information: https://aka.ms/HC-Aug23SUIssue" + DisplayWriteType = "Red" + DisplayCustomTabNumber = 2 + } + Add-AnalyzedResultInformation @params + } + } else { + Write-Verbose "Language Code is null" + } } } From 61f2f71dab005fbc7c7ca59b2169079e0ac2b29b Mon Sep 17 00:00:00 2001 From: David Paulson Date: Tue, 15 Aug 2023 14:28:36 -0500 Subject: [PATCH 14/22] Updated Emerging Issues page for Aug SU update --- docs/Emerging-Issues.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Emerging-Issues.md b/docs/Emerging-Issues.md index a8cf575684..871b058386 100644 --- a/docs/Emerging-Issues.md +++ b/docs/Emerging-Issues.md @@ -9,10 +9,10 @@ This page lists emerging issues for Exchange On-Premises deployments, possible r |**Updated on** | **Update causing the issue**| **Issue**| **Workaround/Solution** |-|-|-|-| -8/14/2023|[Non-English August 2023 Security Update](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-august-2023-exchange-server-security-updates/ba-p/3892811) for Exchange 2016, Exchange 2019 | When you install the Microsoft Exchange Server 2019 or 2016 August 2023 Security Update (SU) on a Windows Server-based device that is running a non-English operating system (OS) version, Setup suddenly stops and rolls back the changes. However, the Exchange Server services remain in a disabled state. |The problematic SU's are taken down from the installation and fixed version of updates will be released shortly. Meanwhile, if you are affected by the issue, please follow steps in [this KB](https://support.microsoft.com/topic/exchange-server-2019-and-2016-august-2023-security-update-installation-fails-on-non-english-operating-systems-ef38d805-f645-4511-8cc5-cf967e5d5c75) for the workaround on affected systems +8/15/2023|[Non-English August 2023 Security Update](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-august-2023-exchange-server-security-updates/ba-p/3892811) for Exchange 2016, Exchange 2019 | When you install the Microsoft Exchange Server 2019 or 2016 August 2023 Security Update (SU) on a Windows Server-based device that is running a non-English operating system (OS) version, Setup suddenly stops and rolls back the changes. However, the Exchange Server services remain in a disabled state. |The latest SUs have been released that do not require a workaround to install. If you used a workaround to install KB5029388, it is highly recommend to uninstall the KB5029388 to avoid issues down the line. For more information please check out [this KB](https://support.microsoft.com/topic/exchange-server-2019-and-2016-august-2023-security-update-installation-fails-on-non-english-operating-systems-ef38d805-f645-4511-8cc5-cf967e5d5c75). 6/15/2023|[January 2023 Security Update](https://www.microsoft.com/en-us/download/details.aspx?id=104914) for Exchange 2016, Exchange 2019 | When you try to uninstall Microsoft Exchange Server 2019 or 2016 on servers, that had January 2023 Security Update for Exchange Server installed at any point, the Setup fails with following error message:

[ERROR] The operation couldn't be performed because object '' couldn't be found on ''. |Install Exchange Security Update June 2023 or higher to resolve the issue. Check [this KB](https://support.microsoft.com/help/5025312) for more details 6/15/2023|Extended protection enabled on Exchange server | Changing the permissions for Public Folders by using an Outlook client will fail with the following error, if Extended Protection is enabled:

`The modified Permissions cannot be changed.`| Install Exchange Security Update June 2023 or higher to resolve the issue. Check [this KB](https://support.microsoft.com/en-us/topic/extended-protection-doesn-t-support-public-folder-client-permissions-management-through-outlook-bd2037b5-40e0-413a-b368-746b3f5439ee) for more details -|3/16/2023| [Outlook client update for CVE-2023-23397 released](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397)| These vulnerabilities affect Exchange Server. Exchange Online customers are already protected from the vulnerabilities addressed in these SUs and do not need to take any action **other than updating Exchange servers in their environment, and if applicable, installing the security update for Outlook on Windows described on the link on the right.**
More details about specific CVEs can be found in the [Security Update Guide](https://msrc.microsoft.com/update-guide/) (filter on Exchange Server under Product Family).
**Awareness: Outlook client update for CVE-2023-23397 released**
There is a critical security update for Microsoft Outlook for Windows that is required to address [CVE-2023-23397](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397). To address this CVE, **you must install the Outlook security update, regardless of where your mail is hosted (e.g., Exchange Online, Exchange Server, some other platform).** | **Please check [this page](https://aka.ms/OLKCVEFAQ) for FAQs about the [Outlook CVE-2023-23397](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397)** +|3/16/2023| [Outlook client update for CVE-2023-23397 released](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397)| These vulnerabilities affect Exchange Server. Exchange Online customers are already protected from the vulnerabilities addressed in these SUs and do not need to take any action **other than updating Exchange servers in their environment, and if applicable, installing the security update for Outlook on Windows described on the link on the right.**
More details about specific CVEs can be found in the [Security Update Guide](https://msrc.microsoft.com/update-guide/) (filter on Exchange Server under Product Family).
**Awareness: Outlook client update for CVE-2023-23397 released**
There is a critical security update for Microsoft Outlook for Windows that is required to address [CVE-2023-23397](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397). To address this CVE, **you must install the Outlook security update, regardless of where your mail is hosted (e.g., Exchange Online, Exchange Server, some other platform).** | **Please check [this page](https://aka.ms/OLKCVEFAQ) for FAQs about the [Outlook CVE-2023-23397](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397)** 3/14/2023|[February 2023 Security Update](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-february-2023-exchange-server-security-updates/ba-p/3741058) for Exchange 2016, Exchange 2019, Exchange 2013 | After installing February 2023 security update, customers are seeing EWS application pool crash with Event ID 4999 with following error

E12IIS, c-RTL-AMD64, 15.01.2507.021, w3wp#MSExchangeServicesAppPool, M.Exchange.Diagnostics, M.E.D.ChainedSerializationBinder.EnforceBlockReason, M.E.Diagnostics.BlockedDeserializeTypeException, 437c-dumptidset, 15.01.2507.021.

The issue is causing connectivity issues to EWS based clients (Outlook for Mac) | **Update on 3/14/2023**
The issue is fixed in [March 2023 security update for Exchange servers](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-march-2023-exchange-server-security-updates/ba-p/3764224)
Please follow the steps in [this KB](https://support.microsoft.com/help/5024257) 3/14/2023|[February 2023 Security Update](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-february-2023-exchange-server-security-updates/ba-p/3741058) for Exchange 2016, Exchange 2019, Exchange 2013 | Some customers are reporting issues with Outlook/OWA add-ins, like add-in not listing in EAC or with the Get-App command. Additionally, they may notice EWS application pool crash with Event ID 4999 in the application log of the Exchange server. | **Update on 3/14/2023**
The issue is fixed in [March 2023 security update for Exchange servers](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-march-2023-exchange-server-security-updates/ba-p/3764224) 3/14/2023|[January 2023 Security Update](https://www.microsoft.com/en-us/download/details.aspx?id=104914) for Exchange 2016, Exchange 2019 |The Exchange toolbox may start crashing on launch after [certificate Serialization for PowerShell](https://aka.ms/HC-SerializedDataSigning) is enabled. The error noticed is "Deserialization fails: System.Reflection.TargetInvocationException".

The issue happens only on Exchange 2016 and Exchange 2019| **Update on 3/14/2023**
The issue is fixed in [March 2023 security update for Exchange servers](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-march-2023-exchange-server-security-updates/ba-p/3764224) From c5876b4d5a13ee34efa40dd5b18e3f28ffa98245 Mon Sep 17 00:00:00 2001 From: Bhalchandra Atre-MSFT <39634045+Batre-MSFT@users.noreply.github.com> Date: Thu, 17 Aug 2023 11:08:08 +0530 Subject: [PATCH 15/22] OWA change password expiry issue Added details about OWA change password expiry issue --- docs/Emerging-Issues.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Emerging-Issues.md b/docs/Emerging-Issues.md index 871b058386..b9412d15bf 100644 --- a/docs/Emerging-Issues.md +++ b/docs/Emerging-Issues.md @@ -9,6 +9,7 @@ This page lists emerging issues for Exchange On-Premises deployments, possible r |**Updated on** | **Update causing the issue**| **Issue**| **Workaround/Solution** |-|-|-|-| +8/17/2023|[All versions of August 2023 Security Update](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-august-2023-exchange-server-security-updates/ba-p/3892811) for Exchange 2016, Exchange 2019 | Users in account forest can’t change expired password in OWA in multi-forest Exchange deployments after installing any version of [August 2023 Security Update for Exchange servers](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-august-2023-exchange-server-security-updates/ba-p/3892811)

**Note**
The account forest user will be able to change the password after they sign in to Outlook on the web if their password is not yet expired. The issue affects only account forest users who have passwords that are already expired. This change does not affect users in organizations that don’t use multiple forests.|Please follow the steps on [this KB article](https://support.microsoft.com/topic/b17c3579-0233-4d84-9245-755dd1092edb) 8/15/2023|[Non-English August 2023 Security Update](https://techcommunity.microsoft.com/t5/exchange-team-blog/released-august-2023-exchange-server-security-updates/ba-p/3892811) for Exchange 2016, Exchange 2019 | When you install the Microsoft Exchange Server 2019 or 2016 August 2023 Security Update (SU) on a Windows Server-based device that is running a non-English operating system (OS) version, Setup suddenly stops and rolls back the changes. However, the Exchange Server services remain in a disabled state. |The latest SUs have been released that do not require a workaround to install. If you used a workaround to install KB5029388, it is highly recommend to uninstall the KB5029388 to avoid issues down the line. For more information please check out [this KB](https://support.microsoft.com/topic/exchange-server-2019-and-2016-august-2023-security-update-installation-fails-on-non-english-operating-systems-ef38d805-f645-4511-8cc5-cf967e5d5c75). 6/15/2023|[January 2023 Security Update](https://www.microsoft.com/en-us/download/details.aspx?id=104914) for Exchange 2016, Exchange 2019 | When you try to uninstall Microsoft Exchange Server 2019 or 2016 on servers, that had January 2023 Security Update for Exchange Server installed at any point, the Setup fails with following error message:

[ERROR] The operation couldn't be performed because object '' couldn't be found on ''. |Install Exchange Security Update June 2023 or higher to resolve the issue. Check [this KB](https://support.microsoft.com/help/5025312) for more details 6/15/2023|Extended protection enabled on Exchange server | Changing the permissions for Public Folders by using an Outlook client will fail with the following error, if Extended Protection is enabled:

`The modified Permissions cannot be changed.`| Install Exchange Security Update June 2023 or higher to resolve the issue. Check [this KB](https://support.microsoft.com/en-us/topic/extended-protection-doesn-t-support-public-folder-client-permissions-management-through-outlook-bd2037b5-40e0-413a-b368-746b3f5439ee) for more details From aac43d4e2421d7f8ab7c4c62ef4acf6cb842d259 Mon Sep 17 00:00:00 2001 From: Joshua Small Date: Mon, 21 Aug 2023 14:42:12 +1000 Subject: [PATCH 16/22] Update Invoke-AnalyzerNicSettings.ps1 Change format of IP4 address. --- .../HealthChecker/Analyzer/Invoke-AnalyzerNicSettings.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerNicSettings.ps1 b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerNicSettings.ps1 index 75cad40b19..7fa167d3cf 100644 --- a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerNicSettings.ps1 +++ b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerNicSettings.ps1 @@ -159,7 +159,7 @@ function Invoke-AnalyzerNicSettings { Add-AnalyzedResultInformation -Name "IPv4 Address" @baseParams foreach ($address in $adapter.IPv4Addresses) { - $displayValue = "{0}\{1}" -f $address.Address, $address.Subnet + $displayValue = "{0}/{1}" -f $address.Address, $address.Subnet if ($address.DefaultGateway -ne [string]::Empty) { $displayValue += " Gateway: {0}" -f $address.DefaultGateway From 709fd6e52e209cd5675d669e4174057dce48f25d Mon Sep 17 00:00:00 2001 From: Joshua Small Date: Tue, 22 Aug 2023 09:58:00 +1000 Subject: [PATCH 17/22] Updated Pester tests to reflect new network prefix. --- .../HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 | 2 +- .../HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 | 2 +- .../HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 index 5dbeaa1a57..67c7f2cce3 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 @@ -99,7 +99,7 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2013" { TestObjectMatch "RSS Enabled" $false -WriteType "Yellow" TestObjectMatch "Link Speed" "10000 Mbps" TestObjectMatch "IPv6 Enabled" "True" - TestObjectMatch "Address" "192.168.9.11\24 Gateway: 192.168.9.1" + TestObjectMatch "Address" "192.168.9.11/24 Gateway: 192.168.9.1" TestObjectMatch "Registered In DNS" "True" TestObjectMatch "Packets Received Discarded" 0 -WriteType "Green" diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 index 635736a9ac..de8dd67215 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 @@ -99,7 +99,7 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2016" { TestObjectMatch "RSS Enabled" "True" -WriteType "Green" TestObjectMatch "Link Speed" "10000 Mbps" TestObjectMatch "IPv6 Enabled" "True" - TestObjectMatch "Address" "192.168.5.11\24 Gateway: 192.168.5.1" + TestObjectMatch "Address" "192.168.5.11/24 Gateway: 192.168.5.1" TestObjectMatch "Registered In DNS" "True" TestObjectMatch "Packets Received Discarded" 0 -WriteType "Green" diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 index 7153f31080..03b5fbc26a 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 @@ -99,7 +99,7 @@ Describe "Testing Health Checker by Mock Data Imports" { TestObjectMatch "RSS Enabled" "True" -WriteType "Green" TestObjectMatch "Link Speed" "10000 Mbps" TestObjectMatch "IPv6 Enabled" "True" - TestObjectMatch "Address" "192.168.11.11\24 Gateway: 192.168.11.1" + TestObjectMatch "Address" "192.168.11.11/24 Gateway: 192.168.11.1" TestObjectMatch "Registered In DNS" "True" TestObjectMatch "Packets Received Discarded" 0 -WriteType "Green" From 0305dd511a63de4521a6863e615346366d5fecb4 Mon Sep 17 00:00:00 2001 From: David Paulson Date: Wed, 23 Aug 2023 08:59:21 -0500 Subject: [PATCH 18/22] Moved Get-ExtendedProtectionConfiguration to shared folder --- .../Get-ExchangeInformation.ps1 | 2 +- .../Invoke-ConfigureExtendedProtection.ps1 | 2 +- ...t-ExtendedProtectionPrerequisitesCheck.ps1 | 2 +- .../Get-ExtendedProtectionConfiguration.ps1 | 6 ++-- ...E15_Configured_Both_ApplicationHost.config | 0 .../E15_Configured_Cas_ApplicationHost.config | 0 .../E15_Configured_Mbx_ApplicationHost.config | 0 ..._NotConfigured_Both_ApplicationHost.config | 0 ...5_NotConfigured_Cas_ApplicationHost.config | 0 ...5_NotConfigured_Mbx_ApplicationHost.config | 0 .../E16_Configured_ApplicationHost.config | 0 ...Configured_IPFilter_ApplicationHost.config | 0 .../E16_NotConfigured_ApplicationHost.config | 0 .../E19_Configured_ApplicationHost.config | 0 ...Configured_IPFilter_ApplicationHost.config | 0 .../E19_MisConfigured_ApplicationHost.config | 0 .../E19_NotConfigured_ApplicationHost.config | 0 ...etAllTlsSettings-AllTlsSettingsDefault.xml | 0 ...sSettings-SchUseStrongCryptoConfigured.xml | 0 ...llTlsSettings-TlsSettingsMisconfigured.xml | 0 .../ExtendedProtection}/Data/GetCommand.xml | 0 ...-ExtendedProtectionConfiguration.Tests.ps1 | 34 +++++++++---------- 22 files changed, 23 insertions(+), 23 deletions(-) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection => Shared}/Get-ExtendedProtectionConfiguration.ps1 (99%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E15_Configured_Both_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E15_Configured_Cas_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E15_Configured_Mbx_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E15_NotConfigured_Both_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E15_NotConfigured_Cas_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E15_NotConfigured_Mbx_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E16_Configured_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E16_Configured_IPFilter_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E16_NotConfigured_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E19_Configured_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E19_Configured_IPFilter_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E19_MisConfigured_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/E19_NotConfigured_ApplicationHost.config (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/GetAllTlsSettings-AllTlsSettingsDefault.xml (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/GetAllTlsSettings-SchUseStrongCryptoConfigured.xml (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/GetAllTlsSettings-TlsSettingsMisconfigured.xml (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Data/GetCommand.xml (100%) rename {Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests => Shared/Tests/ExtendedProtection}/Get-ExtendedProtectionConfiguration.Tests.ps1 (92%) diff --git a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 index 2341114bf3..b3885e2053 100644 --- a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 +++ b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/Get-ExchangeInformation.ps1 @@ -1,7 +1,7 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. -. $PSScriptRoot\..\..\..\..\Security\src\ExchangeExtendedProtectionManagement\DataCollection\Get-ExtendedProtectionConfiguration.ps1 +. $PSScriptRoot\..\..\..\..\Shared\Get-ExtendedProtectionConfiguration.ps1 . $PSScriptRoot\..\..\..\..\Shared\ErrorMonitorFunctions.ps1 . $PSScriptRoot\..\..\..\..\Shared\Get-ExchangeBuildVersionInformation.ps1 . $PSScriptRoot\..\..\..\..\Shared\Get-ExchangeSettingOverride.ps1 diff --git a/Security/src/ExchangeExtendedProtectionManagement/ConfigurationAction/Invoke-ConfigureExtendedProtection.ps1 b/Security/src/ExchangeExtendedProtectionManagement/ConfigurationAction/Invoke-ConfigureExtendedProtection.ps1 index 4fb08d0d8f..d77ac26e37 100644 --- a/Security/src/ExchangeExtendedProtectionManagement/ConfigurationAction/Invoke-ConfigureExtendedProtection.ps1 +++ b/Security/src/ExchangeExtendedProtectionManagement/ConfigurationAction/Invoke-ConfigureExtendedProtection.ps1 @@ -1,7 +1,7 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. -. $PSScriptRoot\..\DataCollection\Get-ExtendedProtectionConfiguration.ps1 +. $PSScriptRoot\..\..\..\..\Shared\Get-ExtendedProtectionConfiguration.ps1 . $PSScriptRoot\..\..\..\..\Shared\Invoke-ScriptBlockHandler.ps1 . $PSScriptRoot\..\..\..\..\Shared\Write-ErrorInformation.ps1 diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Get-ExtendedProtectionPrerequisitesCheck.ps1 b/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Get-ExtendedProtectionPrerequisitesCheck.ps1 index a2b4a582cd..c4d917fce6 100644 --- a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Get-ExtendedProtectionPrerequisitesCheck.ps1 +++ b/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Get-ExtendedProtectionPrerequisitesCheck.ps1 @@ -2,7 +2,7 @@ # Licensed under the MIT License. . $PSScriptRoot\..\..\..\..\Shared\TLS\Get-AllTlsSettings.ps1 -. $PSScriptRoot\Get-ExtendedProtectionConfiguration.ps1 +. $PSScriptRoot\..\..\..\..\Shared\Get-ExtendedProtectionConfiguration.ps1 # This function is used to collect the required information needed to determine if a server is ready for Extended Protection function Get-ExtendedProtectionPrerequisitesCheck { diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Get-ExtendedProtectionConfiguration.ps1 b/Shared/Get-ExtendedProtectionConfiguration.ps1 similarity index 99% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Get-ExtendedProtectionConfiguration.ps1 rename to Shared/Get-ExtendedProtectionConfiguration.ps1 index 19005fdc44..807fe41fbe 100644 --- a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Get-ExtendedProtectionConfiguration.ps1 +++ b/Shared/Get-ExtendedProtectionConfiguration.ps1 @@ -1,9 +1,9 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. -. $PSScriptRoot\..\..\..\..\Shared\Invoke-CatchActionError.ps1 -. $PSScriptRoot\..\..\..\..\Shared\Invoke-ScriptBlockHandler.ps1 -. $PSScriptRoot\..\..\..\..\Shared\Write-ErrorInformation.ps1 +. $PSScriptRoot\Invoke-CatchActionError.ps1 +. $PSScriptRoot\Invoke-ScriptBlockHandler.ps1 +. $PSScriptRoot\Write-ErrorInformation.ps1 function Get-ExtendedProtectionConfiguration { [CmdletBinding()] diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_Configured_Both_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E15_Configured_Both_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_Configured_Both_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E15_Configured_Both_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_Configured_Cas_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E15_Configured_Cas_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_Configured_Cas_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E15_Configured_Cas_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_Configured_Mbx_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E15_Configured_Mbx_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_Configured_Mbx_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E15_Configured_Mbx_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_NotConfigured_Both_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E15_NotConfigured_Both_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_NotConfigured_Both_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E15_NotConfigured_Both_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_NotConfigured_Cas_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E15_NotConfigured_Cas_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_NotConfigured_Cas_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E15_NotConfigured_Cas_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_NotConfigured_Mbx_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E15_NotConfigured_Mbx_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E15_NotConfigured_Mbx_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E15_NotConfigured_Mbx_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E16_Configured_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E16_Configured_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E16_Configured_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E16_Configured_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E16_Configured_IPFilter_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E16_Configured_IPFilter_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E16_Configured_IPFilter_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E16_Configured_IPFilter_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E16_NotConfigured_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E16_NotConfigured_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E16_NotConfigured_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E16_NotConfigured_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E19_Configured_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E19_Configured_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E19_Configured_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E19_Configured_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E19_Configured_IPFilter_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E19_Configured_IPFilter_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E19_Configured_IPFilter_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E19_Configured_IPFilter_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E19_MisConfigured_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E19_MisConfigured_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E19_MisConfigured_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E19_MisConfigured_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E19_NotConfigured_ApplicationHost.config b/Shared/Tests/ExtendedProtection/Data/E19_NotConfigured_ApplicationHost.config similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/E19_NotConfigured_ApplicationHost.config rename to Shared/Tests/ExtendedProtection/Data/E19_NotConfigured_ApplicationHost.config diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/GetAllTlsSettings-AllTlsSettingsDefault.xml b/Shared/Tests/ExtendedProtection/Data/GetAllTlsSettings-AllTlsSettingsDefault.xml similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/GetAllTlsSettings-AllTlsSettingsDefault.xml rename to Shared/Tests/ExtendedProtection/Data/GetAllTlsSettings-AllTlsSettingsDefault.xml diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/GetAllTlsSettings-SchUseStrongCryptoConfigured.xml b/Shared/Tests/ExtendedProtection/Data/GetAllTlsSettings-SchUseStrongCryptoConfigured.xml similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/GetAllTlsSettings-SchUseStrongCryptoConfigured.xml rename to Shared/Tests/ExtendedProtection/Data/GetAllTlsSettings-SchUseStrongCryptoConfigured.xml diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/GetAllTlsSettings-TlsSettingsMisconfigured.xml b/Shared/Tests/ExtendedProtection/Data/GetAllTlsSettings-TlsSettingsMisconfigured.xml similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/GetAllTlsSettings-TlsSettingsMisconfigured.xml rename to Shared/Tests/ExtendedProtection/Data/GetAllTlsSettings-TlsSettingsMisconfigured.xml diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/GetCommand.xml b/Shared/Tests/ExtendedProtection/Data/GetCommand.xml similarity index 100% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Data/GetCommand.xml rename to Shared/Tests/ExtendedProtection/Data/GetCommand.xml diff --git a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Get-ExtendedProtectionConfiguration.Tests.ps1 b/Shared/Tests/ExtendedProtection/Get-ExtendedProtectionConfiguration.Tests.ps1 similarity index 92% rename from Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Get-ExtendedProtectionConfiguration.Tests.ps1 rename to Shared/Tests/ExtendedProtection/Get-ExtendedProtectionConfiguration.Tests.ps1 index 09639cf1c2..3f4ff561e7 100644 --- a/Security/src/ExchangeExtendedProtectionManagement/DataCollection/Tests/Get-ExtendedProtectionConfiguration.Tests.ps1 +++ b/Shared/Tests/ExtendedProtection/Get-ExtendedProtectionConfiguration.Tests.ps1 @@ -7,7 +7,7 @@ param() BeforeAll { $Script:parentPath = (Split-Path -Parent $PSScriptRoot) $Script:Server = $env:COMPUTERNAME - . $Script:parentPath\Get-ExtendedProtectionConfiguration.ps1 + . $Script:parentPath\..\Get-ExtendedProtectionConfiguration.ps1 function Invoke-CatchActions { param() @@ -110,28 +110,28 @@ BeforeAll { } } - $Script:E15_NotConfigured_Both_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E15_NotConfigured_Both_ApplicationHost.config - $Script:E15_NotConfigured_Cas_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E15_NotConfigured_Cas_ApplicationHost.config - $Script:E15_NotConfigured_Mbx_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E15_NotConfigured_Mbx_ApplicationHost.config - $Script:E16_NotConfigured_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E16_NotConfigured_ApplicationHost.config - $Script:E19_NotConfigured_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E19_NotConfigured_ApplicationHost.config - - $Script:E15_Configured_Both_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E15_Configured_Both_ApplicationHost.config - $Script:E15_Configured_Cas_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E15_Configured_Cas_ApplicationHost.config - $Script:E15_Configured_Mbx_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E15_Configured_Mbx_ApplicationHost.config - $Script:E16_Configured_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E16_Configured_ApplicationHost.config - $Script:E16_Configured_IPFilter_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E16_Configured_IPFilter_ApplicationHost.config - $Script:E19_Configured_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E19_Configured_ApplicationHost.config - $Script:E19_Configured_IPFilter_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E19_Configured_IPFilter_ApplicationHost.config - - $Script:E19_MisConfigured_ApplicationHost = LoadApplicationHostConfig -Path $Script:parentPath\Tests\Data\E19_MisConfigured_ApplicationHost.config + $Script:E15_NotConfigured_Both_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E15_NotConfigured_Both_ApplicationHost.config + $Script:E15_NotConfigured_Cas_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E15_NotConfigured_Cas_ApplicationHost.config + $Script:E15_NotConfigured_Mbx_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E15_NotConfigured_Mbx_ApplicationHost.config + $Script:E16_NotConfigured_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E16_NotConfigured_ApplicationHost.config + $Script:E19_NotConfigured_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E19_NotConfigured_ApplicationHost.config + + $Script:E15_Configured_Both_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E15_Configured_Both_ApplicationHost.config + $Script:E15_Configured_Cas_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E15_Configured_Cas_ApplicationHost.config + $Script:E15_Configured_Mbx_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E15_Configured_Mbx_ApplicationHost.config + $Script:E16_Configured_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E16_Configured_ApplicationHost.config + $Script:E16_Configured_IPFilter_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E16_Configured_IPFilter_ApplicationHost.config + $Script:E19_Configured_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E19_Configured_ApplicationHost.config + $Script:E19_Configured_IPFilter_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E19_Configured_IPFilter_ApplicationHost.config + + $Script:E19_MisConfigured_ApplicationHost = LoadApplicationHostConfig -Path $PSScriptRoot\Data\E19_MisConfigured_ApplicationHost.config } Describe "Testing Get-ExtendedProtectionConfiguration.ps1" { Context "No ExSetupVersion Passed To The Function" { BeforeAll { - Mock Get-Command { return Import-Clixml -Path $Script:parentPath\Tests\Data\GetCommand.xml } + Mock Get-Command { return Import-Clixml -Path $PSScriptRoot\Data\GetCommand.xml } $mockParams = @{ ComputerName = $Server From 0a0c0c8f0822b57435f4d4a3c140d58266462f4d Mon Sep 17 00:00:00 2001 From: Lukas Sassl Date: Fri, 25 Aug 2023 17:13:50 +0200 Subject: [PATCH 19/22] Add HealthChecker HSTS check --- ...ke-AnalyzerFrequentConfigurationIssues.ps1 | 102 ++++++++++++++++++ .../IISInformation/Get-IISWebSite.ps1 | 78 +++++++++++++- .../Tests/HealthChecker.E15.Main.Tests.ps1 | 3 +- .../Tests/HealthChecker.E16.Main.Tests.ps1 | 3 +- .../Tests/HealthChecker.E19.Main.Tests.ps1 | 3 +- 5 files changed, 184 insertions(+), 5 deletions(-) diff --git a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerFrequentConfigurationIssues.ps1 b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerFrequentConfigurationIssues.ps1 index 376bbe356a..c2838d0eaf 100644 --- a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerFrequentConfigurationIssues.ps1 +++ b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerFrequentConfigurationIssues.ps1 @@ -236,6 +236,7 @@ function Invoke-AnalyzerFrequentConfigurationIssues { } } } + $iisWebSitesWithHstsSettings = $iisWebSettings | Where-Object { $null -ne $_.hsts } if ($null -ne $missingWebApplicationConfigFile) { $params = $baseParams + @{ @@ -372,6 +373,107 @@ function Invoke-AnalyzerFrequentConfigurationIssues { } Add-AnalyzedResultInformation @params } + + # TODO: Move this check to the new IIS section that we'll add to HC in near future - See issue: 1363 + if (($iisWebSitesWithHstsSettings.Hsts.NativeHstsSettings.enabled -notcontains $true) -and + ($iisWebSitesWithHstsSettings.Hsts.HstsViaCustomHeader.enabled -notcontains $true)) { + $params = $baseParams + @{ + Name = "HSTS Enabled" + Details = $false + } + Add-AnalyzedResultInformation @params + } else { + $showAdditionalHstsInformation = $false + foreach ($webSite in $iisWebSitesWithHstsSettings) { + $hstsConfiguration = $null + $isExchangeBackEnd = $webSite.Name -eq "Exchange Back End" + $hstsMaxAgeWriteType = "Green" + + if (($webSite.Hsts.NativeHstsSettings.enabled) -or + ($webSite.Hsts.HstsViaCustomHeader.enabled)) { + $params = $baseParams + @{ + Details = "HSTS Enabled: $($webSite.Name)" + DisplayWriteType = if ($isExchangeBackEnd) { "Red" } else { "Green" } + } + Add-AnalyzedResultInformation @params + + if ($isExchangeBackEnd) { + $showAdditionalHstsInformation = $true + $params = $baseParams + @{ + Details = "HSTS on 'Exchange Back End' is not supported and can cause issues" + DisplayWriteType = "Red" + DisplayCustomTabNumber = 2 + } + Add-AnalyzedResultInformation @params + } + + if (($webSite.Hsts.NativeHstsSettings.enabled) -and + ($webSite.Hsts.HstsViaCustomHeader.enabled)) { + $showAdditionalHstsInformation = $true + Write-Verbose "HSTS conflict detected" + $params = $baseParams + @{ + Details = ("HSTS configured via customHeader and native IIS control - please remove one configuration" + + "`r`n`t`tHSTS native IIS control has a higher weight than the customHeader and will be used") + DisplayWriteType = "Yellow" + DisplayCustomTabNumber = 2 + } + Add-AnalyzedResultInformation @params + } + + if ($webSite.Hsts.NativeHstsSettings.enabled) { + Write-Verbose "HSTS configured via native IIS control" + $hstsConfiguration = $webSite.Hsts.NativeHstsSettings + } else { + Write-Verbose "HSTS configured via customHeader" + $hstsConfiguration = $webSite.Hsts.HstsViaCustomHeader + } + + $maxAgeValue = $hstsConfiguration.'max-age' + if ($maxAgeValue -lt 31536000) { + $showAdditionalHstsInformation = $true + $hstsMaxAgeWriteType = "Yellow" + } + $params = $baseParams + @{ + Details = "max-age: $maxAgeValue" + DisplayWriteType = $hstsMaxAgeWriteType + DisplayCustomTabNumber = 2 + } + Add-AnalyzedResultInformation @params + + $params = $baseParams + @{ + Details = "includeSubDomains: $($hstsConfiguration.includeSubDomains)" + DisplayCustomTabNumber = 2 + } + Add-AnalyzedResultInformation @params + + $params = $baseParams + @{ + Details = "preload: $($hstsConfiguration.preload)" + DisplayCustomTabNumber = 2 + } + Add-AnalyzedResultInformation @params + + $redirectHttpToHttpsConfigured = $hstsConfiguration.redirectHttpToHttps + $params = $baseParams + @{ + Details = "redirectHttpToHttps: $redirectHttpToHttpsConfigured" + DisplayCustomTabNumber = 2 + } + if ($redirectHttpToHttpsConfigured) { + $showAdditionalHstsInformation = $true + $params.Add("DisplayWriteType", "Red") + } + Add-AnalyzedResultInformation @params + } + } + + if ($showAdditionalHstsInformation) { + $params = $baseParams + @{ + Details = "`r`n`t`tMore Information about HSTS: https://aka.ms/HC-HSTS" + DisplayWriteType = "Yellow" + DisplayCustomTabNumber = 2 + } + Add-AnalyzedResultInformation @params + } + } } elseif ($null -ne $exchangeInformation.IISSettings.ApplicationHostConfig) { Write-Verbose "Wasn't able find any other IIS settings, likely due to application host config file being messed up." try { diff --git a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/IISInformation/Get-IISWebSite.ps1 b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/IISInformation/Get-IISWebSite.ps1 index 4157180857..c1085ede47 100644 --- a/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/IISInformation/Get-IISWebSite.ps1 +++ b/Diagnostics/HealthChecker/DataCollection/ExchangeInformation/IISInformation/Get-IISWebSite.ps1 @@ -42,13 +42,22 @@ function Get-IISWebSite { $webConfigExists = Test-Path $configurationFilePath $webConfigContent = $null + $webConfigContentXml = $null $validWebConfig = $false + $customHeaderHstsObj = [PSCustomObject]@{ + enabled = $false + "max-age" = 0 + includeSubDomains = $false + preload = $false + redirectHttpToHttps = $false + } + $customHeaderHsts = $null if ($webConfigExists) { $webConfigContent = (Get-Content $configurationFilePath -Raw).Trim() try { - [xml]$webConfigContent | Out-Null + $webConfigContentXml = [xml]$webConfigContent $validWebConfig = $true } catch { # Inside of Invoke-Command, can't use Invoke-CatchActions @@ -56,6 +65,68 @@ function Get-IISWebSite { } } + if ($validWebConfig) { + <# + HSTS configuration can be done in different ways: + Via native HSTS control that comes with IIS 10.0 Version 1709. + See: https://learn.microsoft.com/iis/get-started/whats-new-in-iis-10-version-1709/iis-10-version-1709-hsts + The native control stores the HSTS configuration attributes in the element which can be found under each element. + These settings are returned when running the Get-WebSite cmdlet and there is no need to prepare the data as they are ready for use. + + Via customHeader configuration (when running IIS older than the version mentioned before where the native HSTS config is not available + or when admins prefer to do it via customHeader as there is no requirement to do it via native HSTS control instead of using customHeader). + HSTS via customHeader configuration are stored under httpProtocol.customHeaders element. As we get the content in the previous + call, we can simply use these data to extract the customHeader with name Strict-Transport-Security (if exists) and can then prepare + the data for further processing. + The following code searches for a customHeader with name Strict-Transport-Security. If we find the header, we then extract the directive + and return them as PSCustomObject. We're looking for the following directive: max-age, includeSubDomains, preload, redirectHttpToHttps + #> + $customHeaderHsts = ($webConfigContentXml.configuration.'system.webServer'.httpProtocol.customHeaders.add | Where-Object { + ($_.name -eq "Strict-Transport-Security") + }).value + if ($null -ne $customHeaderHsts) { + Write-Verbose "Hsts via custom header configuration detected" + $customHeaderHstsObj.enabled = $true + # Make sure to ignore the case as per RFC 6797 the directives are case-insensitive + # We ignore any other directives as these MUST be ignored by the User Agent (UA) as per RFC 6797 + # UAs MUST ignore any STS header field containing directives, or other header field value data, + # that does not conform to the syntax defined in this specification. + $maxAgeIndex = $customHeaderHsts.IndexOf("max-age=", [System.StringComparison]::OrdinalIgnoreCase) + $includeSubDomainsIndex = $customHeaderHsts.IndexOf("includeSubDomains", [System.StringComparison]::OrdinalIgnoreCase) + $preloadIndex = $customHeaderHsts.IndexOf("preload", [System.StringComparison]::OrdinalIgnoreCase) + $redirectHttpToHttpsIndex = $customHeaderHsts.IndexOf("redirectHttpToHttps", [System.StringComparison]::OrdinalIgnoreCase) + if ($maxAgeIndex -ne -1) { + Write-Verbose "max-age directive found" + $maxAgeValueIndex = $customHeaderHsts.IndexOf(";", $maxAgeIndex) + # add 8 to find the start index after 'max-age=' + $maxAgeIndex = $maxAgeIndex + 8 + + # subtract maxAgeIndex to get the length that we need to find the substring + $maxAgeValueIndex = $maxAgeValueIndex - $maxAgeIndex + $customHeaderHstsObj.'max-age' = $customHeaderHsts.Substring($maxAgeIndex, $maxAgeValueIndex) + } else { + Write-Verbose "max-age directive not found" + } + + if ($includeSubDomainsIndex -ne -1) { + Write-Verbose "includeSubDomains directive found" + $customHeaderHstsObj.includeSubDomains = $true + } + + if ($preloadIndex -ne -1) { + Write-Verbose "preload directive found" + $customHeaderHstsObj.preload = $true + } + + if ($redirectHttpToHttpsIndex -ne -1) { + Write-Verbose "redirectHttpToHttps directive found" + $customHeaderHstsObj.redirectHttpToHttps = $true + } + } else { + Write-Verbose "No Hsts via custom header configuration detected" + } + } + $returnList.Add([PSCustomObject]@{ Name = $site.Name Id = $site.Id @@ -64,7 +135,10 @@ function Get-IISWebSite { Limits = $site.Limits LogFile = $site.logFile TraceFailedRequestsLogging = $site.traceFailedRequestsLogging - Hsts = $site.hsts + Hsts = [PSCustomObject]@{ + NativeHstsSettings = $site.hsts + HstsViaCustomHeader = $customHeaderHstsObj + } ApplicationDefaults = $site.applicationDefaults VirtualDirectoryDefaults = $site.virtualDirectoryDefaults Collection = $site.collection diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 index 67c7f2cce3..ca24205524 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E15.Main.Tests.ps1 @@ -116,8 +116,9 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2013" { TestObjectMatch "Credential Guard Enabled" $false TestObjectMatch "EdgeTransport.exe.config Present" "True" -WriteType "Green" TestObjectMatch "Open Relay Wild Card Domain" "Not Set" + TestObjectMatch "HSTS Enabled" "False" - $Script:ActiveGrouping.Count | Should -Be 9 + $Script:ActiveGrouping.Count | Should -Be 10 } It "Display Results - Security Settings" { diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 index de8dd67215..8c39c57901 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E16.Main.Tests.ps1 @@ -116,8 +116,9 @@ Describe "Testing Health Checker by Mock Data Imports - Exchange 2016" { TestObjectMatch "Credential Guard Enabled" $false TestObjectMatch "EdgeTransport.exe.config Present" "True" -WriteType "Green" TestObjectMatch "Open Relay Wild Card Domain" "Not Set" + TestObjectMatch "HSTS Enabled" "False" - $Script:ActiveGrouping.Count | Should -Be 9 + $Script:ActiveGrouping.Count | Should -Be 10 } It "Display Results - Security Settings" { diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 index 03b5fbc26a..3a6828ad92 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 @@ -117,8 +117,9 @@ Describe "Testing Health Checker by Mock Data Imports" { TestObjectMatch "Credential Guard Enabled" $false TestObjectMatch "EdgeTransport.exe.config Present" "True" -WriteType "Green" TestObjectMatch "Open Relay Wild Card Domain" "Not Set" + TestObjectMatch "HSTS Enabled" "False" - $Script:ActiveGrouping.Count | Should -Be 9 + $Script:ActiveGrouping.Count | Should -Be 10 } It "Display Results - Security Settings" { From 344a8aaff76158c74143881d28d33caa16f2e07d Mon Sep 17 00:00:00 2001 From: David Paulson Date: Tue, 29 Aug 2023 16:05:42 -0500 Subject: [PATCH 20/22] Pester testing cases for HSTS --- ...ke-AnalyzerFrequentConfigurationIssues.ps1 | 21 +- .../Exchange/IIS/DefaultWebSite_web2.config | 53 + .../E19/Exchange/IIS/GetWebSite1.xml | 15951 ++++++++++++++++ .../IIS/GetWebSite_DefaultWebSite1.xml | 7311 +++++++ .../IIS/GetWebSite_ExchangeBackEnd1.xml | 8723 +++++++++ .../Tests/HealthChecker.E19.Main.Tests.ps1 | 13 + .../HealthChecker.E19.Scenarios.Tests.ps1 | 23 + 7 files changed, 32093 insertions(+), 2 deletions(-) create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/DefaultWebSite_web2.config create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite1.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite_DefaultWebSite1.xml create mode 100644 Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite_ExchangeBackEnd1.xml diff --git a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerFrequentConfigurationIssues.ps1 b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerFrequentConfigurationIssues.ps1 index c2838d0eaf..16685eafd9 100644 --- a/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerFrequentConfigurationIssues.ps1 +++ b/Diagnostics/HealthChecker/Analyzer/Invoke-AnalyzerFrequentConfigurationIssues.ps1 @@ -392,8 +392,11 @@ function Invoke-AnalyzerFrequentConfigurationIssues { if (($webSite.Hsts.NativeHstsSettings.enabled) -or ($webSite.Hsts.HstsViaCustomHeader.enabled)) { $params = $baseParams + @{ - Details = "HSTS Enabled: $($webSite.Name)" - DisplayWriteType = if ($isExchangeBackEnd) { "Red" } else { "Green" } + Name = "HSTS Enabled" + Details = "$($webSite.Name)" + TestingName = "hsts-Enabled-$($webSite.Name)" + DisplayTestingValue = $true + DisplayWriteType = if ($isExchangeBackEnd) { "Red" } else { "Green" } } Add-AnalyzedResultInformation @params @@ -402,6 +405,8 @@ function Invoke-AnalyzerFrequentConfigurationIssues { $params = $baseParams + @{ Details = "HSTS on 'Exchange Back End' is not supported and can cause issues" DisplayWriteType = "Red" + TestingName = "hsts-BackendNotSupported" + DisplayTestingValue = $true DisplayCustomTabNumber = 2 } Add-AnalyzedResultInformation @params @@ -415,6 +420,8 @@ function Invoke-AnalyzerFrequentConfigurationIssues { Details = ("HSTS configured via customHeader and native IIS control - please remove one configuration" + "`r`n`t`tHSTS native IIS control has a higher weight than the customHeader and will be used") DisplayWriteType = "Yellow" + TestingName = "hsts-conflict" + DisplayTestingValue = $true DisplayCustomTabNumber = 2 } Add-AnalyzedResultInformation @params @@ -436,18 +443,24 @@ function Invoke-AnalyzerFrequentConfigurationIssues { $params = $baseParams + @{ Details = "max-age: $maxAgeValue" DisplayWriteType = $hstsMaxAgeWriteType + TestingName = "hsts-max-age-$($webSite.Name)" + DisplayTestingValue = $maxAgeValue DisplayCustomTabNumber = 2 } Add-AnalyzedResultInformation @params $params = $baseParams + @{ Details = "includeSubDomains: $($hstsConfiguration.includeSubDomains)" + TestingName = "hsts-includeSubDomains-$($webSite.Name)" + DisplayTestingValue = $hstsConfiguration.includeSubDomains DisplayCustomTabNumber = 2 } Add-AnalyzedResultInformation @params $params = $baseParams + @{ Details = "preload: $($hstsConfiguration.preload)" + TestingName = "hsts-preload-$($webSite.Name)" + DisplayTestingValue = $hstsConfiguration.preload DisplayCustomTabNumber = 2 } Add-AnalyzedResultInformation @params @@ -455,6 +468,8 @@ function Invoke-AnalyzerFrequentConfigurationIssues { $redirectHttpToHttpsConfigured = $hstsConfiguration.redirectHttpToHttps $params = $baseParams + @{ Details = "redirectHttpToHttps: $redirectHttpToHttpsConfigured" + TestingName = "hsts-redirectHttpToHttps-$($webSite.Name)" + DisplayTestingValue = $redirectHttpToHttpsConfigured DisplayCustomTabNumber = 2 } if ($redirectHttpToHttpsConfigured) { @@ -469,6 +484,8 @@ function Invoke-AnalyzerFrequentConfigurationIssues { $params = $baseParams + @{ Details = "`r`n`t`tMore Information about HSTS: https://aka.ms/HC-HSTS" DisplayWriteType = "Yellow" + TestingName = 'hsts-MoreInfo' + DisplayTestingValue = $true DisplayCustomTabNumber = 2 } Add-AnalyzedResultInformation @params diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/DefaultWebSite_web2.config b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/DefaultWebSite_web2.config new file mode 100644 index 0000000000..dd07a4e191 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/DefaultWebSite_web2.config @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite1.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite1.xml new file mode 100644 index 0000000000..940bf4ad26 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite1.xml @@ -0,0 +1,15951 @@ + + + + System.Management.Automation.PSCustomObject + System.Object + + + Default Web Site + 1 + Started + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#limits + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeCollection + System.Object + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxBandwidth + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4294967295 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxConnections + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4294967295 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + connectionTimeout + System.TimeSpan + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + PT2M + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxUrlSegments + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 32 + false + + + + + 4 + System.Object + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationChildElementCollection + System.Object + + + + 0 + System.Object + false + + + limits + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchemaCollection + System.Object + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + limits + + + + + 4294967295 + 4294967295 + PT2M + 32 + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#logFile + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logExtFileFlags + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 2478031 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + customLogPluginClsid + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + logFormat + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 2 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logTargetW3C + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + directory + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\logs\LogFiles + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + period + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + truncateSize + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 20971520 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + localTimeRollover + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logSiteId + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + flushByEntryCountW3CLog + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogLineLength + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 65536 + false + + + + + 12 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementCollection + Microsoft.IIs.PowerShell.Framework.ConfigurationElementCollectionBase`1[[Microsoft.IIs.PowerShell.Framework.ConfigurationElement, Microsoft.IIS.PowerShell.Framework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + + + true + true + false + 0 + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + customFields + + System.Object + false + + + + + 1 + System.Object + false + + + logFile + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchemaCollection + System.Object + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + false + logFile + + + + + Date,Time,ClientIP,UserName,ServerIP,Method,UriStem,UriQuery,HttpStatus,Win32Status,TimeTaken,ServerPort,UserAgent,Referer,HttpSubStatus + + W3C + File + %SystemDrive%\inetpub\logs\LogFiles + Daily + 20971520 + false + true + true + 0 + 65536 + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#logFile#customFields + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxCustomFieldLength + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4096 + false + + + + + 1 + System.Object + false + + + + customFields + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + customFields + + + + + 4096 + + + System.Management.Automation.PSObject[] + System.Array + System.Object + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#traceFailedRequestsLogging + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + directory + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\logs\FailedReqLogFiles + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogFiles + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 50 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogFileSizeKB + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1024 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + customActionsEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 5 + System.Object + false + + + + traceFailedRequestsLogging + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + traceFailedRequestsLogging + + + + + false + %SystemDrive%\inetpub\logs\FailedReqLogFiles + 50 + 1024 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#hsts + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + max-age + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + includeSubDomains + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preload + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + redirectHttpToHttps + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 5 + System.Object + false + + + + hsts + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + hsts + + + + + true + 0 + false + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#applicationDefaults + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 6 + System.Object + false + + + + applicationDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + applicationDefaults + + + + + + + http + false + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#virtualDirectoryDefaults + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#application + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + / + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#application#virtualDirectoryDefaults + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#application#virtualDirectory + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\wwwroot + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + %SystemDrive%\inetpub\wwwroot + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa/Calendar + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWACalendarAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa/Calendar + MSExchangeOWACalendarAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa/Integrated + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa/Integrated + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa/oma + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa/oma + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /ecp + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeECPAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /ecp + MSExchangeECPAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\ecp + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\ecp + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /EWS + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeServicesAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /EWS + MSExchangeServicesAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\EWS + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\EWS + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /API + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRestFrontEndAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /API + MSExchangeRestFrontEndAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\Rest + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\Rest + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Autodiscover + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeAutodiscoverAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Autodiscover + MSExchangeAutodiscoverAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\Autodiscover + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\Autodiscover + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Microsoft-Server-ActiveSync + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeSyncAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Microsoft-Server-ActiveSync + MSExchangeSyncAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\sync + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\sync + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /OAB + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOABAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /OAB + MSExchangeOABAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\OAB + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\OAB + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /PowerShell + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangePowerShellFrontEndAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /PowerShell + MSExchangePowerShellFrontEndAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\PowerShell + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\PowerShell + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /mapi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeMapiFrontEndAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /mapi + MSExchangeMapiFrontEndAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\mapi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\mapi + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Rpc + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRpcProxyFrontEndAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Rpc + MSExchangeRpcProxyFrontEndAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\rpc + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\rpc + + + ClearText + true + + + + + + + + + + MSExchangeOWAAppPool + http + C:\inetpub\wwwroot + + + + + + Exchange Back End + 2 + Started + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxBandwidth + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4294967295 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxConnections + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4294967295 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + connectionTimeout + System.TimeSpan + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + PT2M + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxUrlSegments + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 32 + false + + + + + 4 + System.Object + false + + + + limits + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + limits + + + + + 4294967295 + 4294967295 + PT2M + 32 + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logExtFileFlags + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 2478031 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + customLogPluginClsid + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + logFormat + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 2 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logTargetW3C + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + directory + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\logs\LogFiles + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + period + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + truncateSize + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 20971520 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + localTimeRollover + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logSiteId + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + flushByEntryCountW3CLog + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogLineLength + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 65536 + false + + + + + 12 + System.Object + false + + + + + + + + + + true + true + false + 0 + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + customFields + + System.Object + false + + + + + 1 + System.Object + false + + + logFile + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + false + logFile + + + + + Date,Time,ClientIP,UserName,ServerIP,Method,UriStem,UriQuery,HttpStatus,Win32Status,TimeTaken,ServerPort,UserAgent,Referer,HttpSubStatus + + W3C + File + %SystemDrive%\inetpub\logs\LogFiles + Daily + 20971520 + false + true + true + 0 + 65536 + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxCustomFieldLength + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4096 + false + + + + + 1 + System.Object + false + + + + customFields + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + customFields + + + + + 4096 + + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + directory + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\logs\FailedReqLogFiles + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogFiles + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 50 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogFileSizeKB + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1024 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + customActionsEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 5 + System.Object + false + + + + traceFailedRequestsLogging + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + traceFailedRequestsLogging + + + + + false + %SystemDrive%\inetpub\logs\FailedReqLogFiles + 50 + 1024 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + max-age + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + includeSubDomains + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preload + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + redirectHttpToHttps + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 5 + System.Object + false + + + + hsts + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + hsts + + + + + false + 0 + false + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 6 + System.Object + false + + + + applicationDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + applicationDefaults + + + + + + + http + false + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + DefaultAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + / + DefaultAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess + + + ClearText + true + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /mapi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + /mapi + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi + + + ClearText + true + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Exchange + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + /Exchange + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Exchweb + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + /Exchweb + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Public + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + /Public + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /PowerShell + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangePowerShellAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /PowerShell + MSExchangePowerShellAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\PowerShell-Proxy + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\PowerShell-Proxy + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /mapi/emsmdb + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeMapiMailboxAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /mapi/emsmdb + MSExchangeMapiMailboxAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi\emsmdb + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi\emsmdb + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /mapi/nspi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeMapiAddressBookAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /mapi/nspi + MSExchangeMapiAddressBookAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi\nspi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi\nspi + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /API + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRestAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /API + MSExchangeRestAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\rest + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\rest + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa/Calendar + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWACalendarAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa/Calendar + MSExchangeOWACalendarAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /OAB + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOABAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /OAB + MSExchangeOABAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\OAB + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\OAB + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /ecp + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeECPAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /ecp + MSExchangeECPAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Autodiscover + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeAutodiscoverAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Autodiscover + MSExchangeAutodiscoverAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Autodiscover + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Autodiscover + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Microsoft-Server-ActiveSync + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeSyncAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Microsoft-Server-ActiveSync + MSExchangeSyncAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\sync + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\sync + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /EWS + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeServicesAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /EWS + MSExchangeServicesAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\exchweb\EWS + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\exchweb\EWS + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /EWS/bin + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeServicesAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /EWS/bin + MSExchangeServicesAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\exchweb\EWS\bin + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\exchweb\EWS\bin + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Rpc + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRpcProxyAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Rpc + MSExchangeRpcProxyAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %windir%\System32\RpcProxy + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + %windir%\System32\RpcProxy + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /RpcWithCert + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRpcProxyAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /RpcWithCert + MSExchangeRpcProxyAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %windir%\System32\RpcProxy + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + %windir%\System32\RpcProxy + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /PushNotifications + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangePushNotificationsAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http,net.pipe + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /PushNotifications + MSExchangePushNotificationsAppPool + http,net.pipe + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\PushNotifications + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\PushNotifications + + + ClearText + true + + + + + + + + + + DefaultAppPool + http + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite_DefaultWebSite1.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite_DefaultWebSite1.xml new file mode 100644 index 0000000000..f85f589339 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite_DefaultWebSite1.xml @@ -0,0 +1,7311 @@ + + + + System.Management.Automation.PSCustomObject + System.Object + + + Default Web Site + 1 + Started + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#limits + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeCollection + System.Object + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxBandwidth + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4294967295 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxConnections + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4294967295 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + connectionTimeout + System.TimeSpan + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + PT2M + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxUrlSegments + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 32 + false + + + + + 4 + System.Object + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationChildElementCollection + System.Object + + + + 0 + System.Object + false + + + limits + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchemaCollection + System.Object + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + limits + + + + + 4294967295 + 4294967295 + PT2M + 32 + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#logFile + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logExtFileFlags + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 2478031 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + customLogPluginClsid + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + logFormat + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 2 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logTargetW3C + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + directory + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\logs\LogFiles + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + period + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + truncateSize + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 20971520 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + localTimeRollover + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logSiteId + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + flushByEntryCountW3CLog + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogLineLength + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 65536 + false + + + + + 12 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementCollection + Microsoft.IIs.PowerShell.Framework.ConfigurationElementCollectionBase`1[[Microsoft.IIs.PowerShell.Framework.ConfigurationElement, Microsoft.IIS.PowerShell.Framework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + + + true + true + false + 0 + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + customFields + + System.Object + false + + + + + 1 + System.Object + false + + + logFile + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchemaCollection + System.Object + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + false + logFile + + + + + Date,Time,ClientIP,UserName,ServerIP,Method,UriStem,UriQuery,HttpStatus,Win32Status,TimeTaken,ServerPort,UserAgent,Referer,HttpSubStatus + + W3C + File + %SystemDrive%\inetpub\logs\LogFiles + Daily + 20971520 + false + true + true + 0 + 65536 + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#logFile#customFields + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxCustomFieldLength + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4096 + false + + + + + 1 + System.Object + false + + + + customFields + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + customFields + + + + + 4096 + + + System.Management.Automation.PSObject[] + System.Array + System.Object + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#traceFailedRequestsLogging + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + directory + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\logs\FailedReqLogFiles + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogFiles + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 50 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogFileSizeKB + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1024 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + customActionsEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 5 + System.Object + false + + + + traceFailedRequestsLogging + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + traceFailedRequestsLogging + + + + + false + %SystemDrive%\inetpub\logs\FailedReqLogFiles + 50 + 1024 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#hsts + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + max-age + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 300 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + includeSubDomains + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preload + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + redirectHttpToHttps + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 5 + System.Object + false + + + + hsts + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + hsts + + + + + true + 300 + false + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#applicationDefaults + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 6 + System.Object + false + + + + applicationDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + applicationDefaults + + + + + + + http + false + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#virtualDirectoryDefaults + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#application + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + / + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#application#virtualDirectoryDefaults + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#application#virtualDirectory + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\wwwroot + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + %SystemDrive%\inetpub\wwwroot + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa/Calendar + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWACalendarAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa/Calendar + MSExchangeOWACalendarAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa/Integrated + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa/Integrated + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa/oma + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa/oma + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /ecp + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeECPAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /ecp + MSExchangeECPAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\ecp + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\ecp + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /EWS + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeServicesAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /EWS + MSExchangeServicesAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\EWS + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\EWS + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /API + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRestFrontEndAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /API + MSExchangeRestFrontEndAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\Rest + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\Rest + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Autodiscover + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeAutodiscoverAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Autodiscover + MSExchangeAutodiscoverAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\Autodiscover + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\Autodiscover + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Microsoft-Server-ActiveSync + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeSyncAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Microsoft-Server-ActiveSync + MSExchangeSyncAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\sync + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\sync + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /OAB + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOABAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /OAB + MSExchangeOABAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\OAB + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\OAB + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /PowerShell + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangePowerShellFrontEndAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /PowerShell + MSExchangePowerShellFrontEndAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\PowerShell + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\PowerShell + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /mapi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeMapiFrontEndAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /mapi + MSExchangeMapiFrontEndAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\mapi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\mapi + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Rpc + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRpcProxyFrontEndAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Rpc + MSExchangeRpcProxyFrontEndAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\rpc + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\rpc + + + ClearText + true + + + + + + + + + + MSExchangeOWAAppPool + http + C:\inetpub\wwwroot + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite_ExchangeBackEnd1.xml b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite_ExchangeBackEnd1.xml new file mode 100644 index 0000000000..21355f6d22 --- /dev/null +++ b/Diagnostics/HealthChecker/Tests/DataCollection/E19/Exchange/IIS/GetWebSite_ExchangeBackEnd1.xml @@ -0,0 +1,8723 @@ + + + + System.Management.Automation.PSCustomObject + System.Object + + + Exchange Back End + 2 + Started + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#limits + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeCollection + System.Object + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxBandwidth + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4294967295 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxConnections + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4294967295 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + connectionTimeout + System.TimeSpan + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + PT2M + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxUrlSegments + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 32 + false + + + + + 4 + System.Object + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationChildElementCollection + System.Object + + + + 0 + System.Object + false + + + limits + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchemaCollection + System.Object + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + limits + + + + + 4294967295 + 4294967295 + PT2M + 32 + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#logFile + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logExtFileFlags + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 2478031 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + customLogPluginClsid + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + logFormat + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 2 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logTargetW3C + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + directory + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\logs\LogFiles + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + period + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + truncateSize + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 20971520 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + localTimeRollover + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logSiteId + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + flushByEntryCountW3CLog + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogLineLength + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 65536 + false + + + + + 12 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementCollection + Microsoft.IIs.PowerShell.Framework.ConfigurationElementCollectionBase`1[[Microsoft.IIs.PowerShell.Framework.ConfigurationElement, Microsoft.IIS.PowerShell.Framework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]] + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + + + true + true + false + 0 + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + customFields + + System.Object + false + + + + + 1 + System.Object + false + + + logFile + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchemaCollection + System.Object + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + false + logFile + + + + + Date,Time,ClientIP,UserName,ServerIP,Method,UriStem,UriQuery,HttpStatus,Win32Status,TimeTaken,ServerPort,UserAgent,Referer,HttpSubStatus + + W3C + File + %SystemDrive%\inetpub\logs\LogFiles + Daily + 20971520 + false + true + true + 0 + 65536 + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#logFile#customFields + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxCustomFieldLength + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 4096 + false + + + + + 1 + System.Object + false + + + + customFields + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + customFields + + + + + 4096 + + + System.Management.Automation.PSObject[] + System.Array + System.Object + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#traceFailedRequestsLogging + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + directory + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %SystemDrive%\inetpub\logs\FailedReqLogFiles + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogFiles + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 50 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + maxLogFileSizeKB + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 1024 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + customActionsEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 5 + System.Object + false + + + + traceFailedRequestsLogging + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + traceFailedRequestsLogging + + + + + false + %SystemDrive%\inetpub\logs\FailedReqLogFiles + 50 + 1024 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#hsts + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + max-age + System.Int64 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 31536000 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + includeSubDomains + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preload + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + redirectHttpToHttps + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 5 + System.Object + false + + + + hsts + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + hsts + + + + + true + 31536000 + false + false + true + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#applicationDefaults + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + 6 + System.Object + false + + + + applicationDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + applicationDefaults + + + + + + + http + false + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#virtualDirectoryDefaults + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#site#application + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + DefaultAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + / + DefaultAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#application#virtualDirectoryDefaults + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement#application#virtualDirectory + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + System.Object + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess + + + ClearText + true + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /mapi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + /mapi + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi + + + ClearText + true + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Exchange + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + /Exchange + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Exchweb + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + /Exchweb + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Public + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + /Public + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /PowerShell + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangePowerShellAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /PowerShell + MSExchangePowerShellAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\PowerShell-Proxy + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\PowerShell-Proxy + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /mapi/emsmdb + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeMapiMailboxAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /mapi/emsmdb + MSExchangeMapiMailboxAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi\emsmdb + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi\emsmdb + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /mapi/nspi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeMapiAddressBookAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /mapi/nspi + MSExchangeMapiAddressBookAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi\nspi + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\mapi\nspi + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /API + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRestAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /API + MSExchangeRestAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\rest + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\rest + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWAAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa + MSExchangeOWAAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /owa/Calendar + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOWACalendarAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /owa/Calendar + MSExchangeOWACalendarAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /OAB + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeOABAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /OAB + MSExchangeOABAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\OAB + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\OAB + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /ecp + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeECPAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /ecp + MSExchangeECPAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\ecp + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Autodiscover + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeAutodiscoverAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Autodiscover + MSExchangeAutodiscoverAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Autodiscover + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Autodiscover + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Microsoft-Server-ActiveSync + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeSyncAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Microsoft-Server-ActiveSync + MSExchangeSyncAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\sync + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\sync + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /EWS + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeServicesAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /EWS + MSExchangeServicesAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\exchweb\EWS + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\exchweb\EWS + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /EWS/bin + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeServicesAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /EWS/bin + MSExchangeServicesAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\exchweb\EWS\bin + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\exchweb\EWS\bin + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /Rpc + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRpcProxyAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /Rpc + MSExchangeRpcProxyAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %windir%\System32\RpcProxy + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + %windir%\System32\RpcProxy + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /RpcWithCert + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangeRpcProxyAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /RpcWithCert + MSExchangeRpcProxyAppPool + http + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + %windir%\System32\RpcProxy + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + %windir%\System32\RpcProxy + + + ClearText + true + + + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + /PushNotifications + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + applicationPool + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + MSExchangePushNotificationsAppPool + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + enabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + http,net.pipe + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartProvider + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + preloadEnabled + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + false + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + previouslyEnabledProtocols + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + serviceAutoStartMode + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 0 + false + + + + + 8 + System.Object + false + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + + + virtualDirectoryDefaults + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + + + 1 + System.Object + false + + + application + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + + Microsoft.IIs.PowerShell.Framework.ConfigurationCollectionSchema + false + application + + + + + /PushNotifications + MSExchangePushNotificationsAppPool + http,net.pipe + false + + false + + All + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectoryDefaults + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + true + virtualDirectoryDefaults + + + + + + + + + ClearText + true + + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElement + + + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + path + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + / + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + physicalPath + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\PushNotifications + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + userName + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + password + System.String + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + true + false + logonMethod + System.UInt32 + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + 3 + false + + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttribute + + false + false + allowSubDirConfig + System.Boolean + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + true + false + + + + + 6 + System.Object + false + + + + virtualDirectory + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationElementSchema + + false + + + + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + Microsoft.IIs.PowerShell.Framework.ConfigurationAttributeSchema + + + + + false + virtualDirectory + + + + + / + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\PushNotifications + + + ClearText + true + + + + + + + + + + DefaultAppPool + http + C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess + + + \ No newline at end of file diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 index 3a6828ad92..dd68c0b6e5 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Main.Tests.ps1 @@ -162,6 +162,8 @@ Describe "Testing Health Checker by Mock Data Imports" { Mock Get-WmiObjectHandler -ParameterFilter { $Class -eq "Win32_Processor" } ` -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Hardware\Physical_Win32_Processor.xml" } Mock Get-ExSetupDetails { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\ExSetup1.xml" } + Mock Get-WebSite -ParameterFilter { $Name -eq "Default Web Site" } -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\IIS\GetWebSite_DefaultWebSite1.xml" } + Mock Get-WebConfigFile -ParameterFilter { $PSPath -eq "IIS:\Sites\Default Web Site" } -MockWith { return [PSCustomObject]@{ FullName = "$Script:MockDataCollectionRoot\Exchange\IIS\DefaultWebSite_web2.config" } } Mock Invoke-ScriptBlockHandler -ParameterFilter { $ScriptBlockDescription -eq "Getting applicationHost.config" } -MockWith { return Get-Content "$Script:MockDataCollectionRoot\Exchange\IIS\applicationHost2.config" -Raw } SetDefaultRunOfHealthChecker "Debug_Physical_Results.xml" @@ -205,6 +207,17 @@ Describe "Testing Health Checker by Mock Data Imports" { $Script:ActiveGrouping.Count | Should -Be 18 } + It "Display Results - Frequent Configuration Issues" { + SetActiveDisplayGrouping "Frequent Configuration Issues" + TestObjectMatch "hsts-Enabled-Default Web Site" $true -WriteType "Green" + TestObjectMatch "hsts-max-age-Default Web Site" 300 -WriteType "Yellow" + TestObjectMatch "hsts-includeSubDomains-Default Web Site" $false + TestObjectMatch "hsts-preload-Default Web Site" $false + TestObjectMatch "hsts-redirectHttpToHttps-Default Web Site" $false + TestObjectMatch "hsts-conflict" $true -WriteType "Yellow" + TestObjectMatch "hsts-MoreInfo" $true -WriteType "Yellow" + } + It "Display Results - Security Settings" { SetActiveDisplayGrouping "Security Settings" TestObjectMatch "AMSI Enabled" "True" -WriteType "Green" diff --git a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 index c69887cea1..bc073bf785 100644 --- a/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 +++ b/Diagnostics/HealthChecker/Tests/HealthChecker.E19.Scenarios.Tests.ps1 @@ -35,6 +35,8 @@ Describe "Testing Health Checker by Mock Data Imports" { Mock Get-HttpProxySetting { return Import-Clixml "$Script:MockDataCollectionRoot\OS\GetHttpProxySetting1.xml" } Mock Get-AcceptedDomain { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\GetAcceptedDomain_Problem.xml" } Mock Test-Path -ParameterFilter { $Path -eq "C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\SharedWebConfig.config" } -MockWith { return $false } + Mock Get-WebSite -ParameterFilter { $Name -eq "Default Web Site" } -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\IIS\GetWebSite_DefaultWebSite1.xml" } + Mock Get-WebSite -ParameterFilter { $Name -eq "Exchange Back End" } -MockWith { return Import-Clixml "$Script:MockDataCollectionRoot\Exchange\IIS\GetWebSite_ExchangeBackEnd1.xml" } # Needs to be like this to match the filter 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" } } @@ -109,6 +111,27 @@ Describe "Testing Health Checker by Mock Data Imports" { TestObjectMatch "Bin Search Folder Not Found" $true -WriteType "Red" } + It "Testing Native HSTS Default Web Site config" { + #Native Default Web Site + TestObjectMatch "hsts-Enabled-Default Web Site" $true -WriteType "Green" + TestObjectMatch "hsts-max-age-Default Web Site" 300 -WriteType "Yellow" + TestObjectMatch "hsts-includeSubDomains-Default Web Site" $false + TestObjectMatch "hsts-preload-Default Web Site" $false + TestObjectMatch "hsts-redirectHttpToHttps-Default Web Site" $false + } + + It "Testing Native HSTS Default Web Site config" { + #Native Exchange Back End + TestObjectMatch "hsts-Enabled-Exchange Back End" $true -WriteType "Red" + TestObjectMatch "hsts-max-age-Exchange Back End" 31536000 -WriteType "Green" # Going to be green even on backend + TestObjectMatch "hsts-includeSubDomains-Exchange Back End" $false + TestObjectMatch "hsts-preload-Exchange Back End" $false + TestObjectMatch "hsts-redirectHttpToHttps-Exchange Back End" $true -WriteType "Red" + TestObjectMatch "hsts-BackendNotSupported" $true -WriteType "Red" + + TestObjectMatch "hsts-MoreInfo" $true -WriteType "Yellow" + } + It "Server Pending Reboot" { SetActiveDisplayGrouping "Operating System Information" TestObjectMatch "Server Pending Reboot" "True" -WriteType "Yellow" From 3ff43c7156c635e8c4889c081d1d7aa8c4ee5458 Mon Sep 17 00:00:00 2001 From: varu3999 Date: Mon, 9 Jan 2023 11:09:37 +0530 Subject: [PATCH 21/22] Added Brute Force Mitigation Script Script adjustments (formatting, function names...) Minor formatting adjustments More minor adjustments Provide more context during script runtime Write out some more processing information Formatting adjustments Reduced duplicate code Documentation updated Documentation updated Typo fixed Suppress output of IIS operation New line added to satisfy code fomatter check Script documentation updated Pipeline support added, disclaimer updated Replaced Mitigation wording with Protect Wording refined Duplicate link to documentation removed New wording for disclaimer added --- .../src/CVE-2023-21709/CVE-2023-21709.ps1 | 124 +++++++++----- .../Invoke-ConfigureMitigation.ps1 | 107 ------------ .../ConfigurationAction/Invoke-Rollback.ps1 | 108 ------------- .../Invoke-TokenCacheModuleAction.ps1 | 152 ++++++++++++++++++ .../src/CVE-2023-21709/WriteFunctions.ps1 | 10 -- docs/Security/CVE-2023-21709.md | 2 + 6 files changed, 239 insertions(+), 264 deletions(-) delete mode 100644 Security/src/CVE-2023-21709/ConfigurationAction/Invoke-ConfigureMitigation.ps1 delete mode 100644 Security/src/CVE-2023-21709/ConfigurationAction/Invoke-Rollback.ps1 create mode 100644 Security/src/CVE-2023-21709/ConfigurationAction/Invoke-TokenCacheModuleAction.ps1 delete mode 100644 Security/src/CVE-2023-21709/WriteFunctions.ps1 diff --git a/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 index 6592d949af..90bf0ade45 100644 --- a/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 +++ b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 @@ -5,7 +5,7 @@ .SYNOPSIS This script removes the TokenCacheModule from IIS to protect Exchange Server against CVE-2023-21709. .DESCRIPTION - The script removes the TokenCacheModule from IIS to protect Exchange Server against CVE-2023-21709. + The script removes the TokenCacheModule from IIS to protect Exchange Server against CVE-2023-21709. It comes with a parameter that allows you to explicitly specify a subset of Exchange servers on which the TokenCacheModule should be removed or restored (ExchangeServerNames). It's also possible to exclude a subset of Exchange servers from the operation performed by the script (SkipExchangeServerNames). @@ -14,7 +14,11 @@ .PARAMETER SkipExchangeServerNames Use this parameter to explicitly exclude Exchange servers from removing or restoring the TokenCacheModule. .PARAMETER Rollback - Use this parameter rollback the CVE-2023-21709 solution and add the TokenCacheModule back to IIS. + Use this parameter rollback the CVE-2023-21709 configuration and add the TokenCacheModule back to IIS. +.PARAMETER ScriptUpdateOnly + This optional parameter allows you to only update the script without performing any other actions. +.PARAMETER SkipVersionCheck + This optional parameter allows you to skip the automatic version check and script update. .EXAMPLE PS C:\> .\CVE-2023-21709.ps1 It will remove the TokenCacheModule from all of the Exchange servers in the organization. @@ -28,67 +32,101 @@ PS C:\> .\CVE-2023-21709.ps1 -Rollback It will restore the TokenCacheModule on all Exchange servers within the organization. #> -[CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'High')] +[CmdletBinding(DefaultParameterSetName = "Default", SupportsShouldProcess = $true, ConfirmImpact = 'High')] param( + [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true, ParameterSetName = "Default")] + [Alias("Name", "Fqdn")] [string[]]$ExchangeServerNames = $null, + [Parameter(Mandatory = $false, ParameterSetName = "Default")] [string[]]$SkipExchangeServerNames = $null, - [switch]$Rollback + [Parameter(Mandatory = $false, ParameterSetName = "Default")] + [switch]$Rollback, + + [Parameter(Mandatory = $false, ParameterSetName = "ScriptUpdateOnly")] + [switch]$ScriptUpdateOnly, + + [Parameter(Mandatory = $false, ParameterSetName = "Default")] + [switch]$SkipVersionCheck ) begin { $BuildVersion = "" - . $PSScriptRoot\WriteFunctions.ps1 - . $PSScriptRoot\ConfigurationAction\Invoke-ConfigureMitigation.ps1 - . $PSScriptRoot\ConfigurationAction\Invoke-Rollback.ps1 + . $PSScriptRoot\ConfigurationAction\Invoke-TokenCacheModuleAction.ps1 . $PSScriptRoot\..\..\..\Shared\OutputOverrides\Write-Host.ps1 . $PSScriptRoot\..\..\..\Shared\OutputOverrides\Write-Progress.ps1 . $PSScriptRoot\..\..\..\Shared\OutputOverrides\Write-Verbose.ps1 - . $PSScriptRoot\..\..\..\Shared\OutputOverrides\Write-Warning.ps1 . $PSScriptRoot\..\..\..\Shared\ScriptUpdateFunctions\Test-ScriptVersion.ps1 . $PSScriptRoot\..\..\..\Shared\Confirm-Administrator.ps1 . $PSScriptRoot\..\..\..\Shared\Confirm-ExchangeShell.ps1 . $PSScriptRoot\..\..\..\Shared\LoggerFunctions.ps1 - . $PSScriptRoot\..\..\..\Shared\Out-Columns.ps1 . $PSScriptRoot\..\..\..\Shared\Show-Disclaimer.ps1 - $Script:Logger = Get-NewLoggerInstance -LogName "CVE-2023-21709-$((Get-Date).ToString("yyyyMMddhhmmss"))-Debug" ` - -AppendDateTimeToFileName $false ` - -ErrorAction SilentlyContinue + function Write-VerboseLog ($Message) { + $Script:Logger = $Script:Logger | Write-LoggerInstance $Message + } + + function Write-HostLog ($Message) { + $Script:Logger = $Script:Logger | Write-LoggerInstance $Message + } + + $loggerInstanceParams = @{ + LogName = "CVE-2023-21709-$((Get-Date).ToString("yyyyMMddhhmmss"))-Debug" + AppendDateTimeToFileName = $false + ErrorAction = "SilentlyContinue" + } + + $Script:Logger = Get-NewLoggerInstance @loggerInstanceParams SetWriteHostAction ${Function:Write-HostLog} SetWriteVerboseAction ${Function:Write-VerboseLog} - SetWriteWarningAction ${Function:Write-HostLog} SetWriteProgressAction ${Function:Write-HostLog} + + $exchangeServersToProcess = New-Object "System.Collections.Generic.List[string]" +} process { + if ($null -ne $ExchangeServerNames) { + Write-Verbose ("Adding server: $ExchangeServerNames to the list of servers to be processed...") + $exchangeServersToProcess.Add($ExchangeServerNames) + } else { + Write-Verbose ("No server was passed via the ExchangeServerNames parameter") + } } end { - if (-not (Confirm-Administrator)) { - Write-Warning "The script needs to be executed in elevated mode. Start the shell as an Administrator." + if (-not(Confirm-Administrator)) { + Write-Host "The script needs to be executed in elevated mode. Start the PowerShell as an administrator." -ForegroundColor Yellow exit } - Write-Host ("CVE-2023-21709 script version $($BuildVersion)") -ForegroundColor Green $versionsUrl = "https://aka.ms/CVE-2023-21709-VersionsUrl" - if (Test-ScriptVersion -AutoUpdate -VersionsUrl $versionsUrl -Confirm:$false) { + Write-Host ("CVE-2023-21709 script version $($BuildVersion)") -ForegroundColor Green + + if ($ScriptUpdateOnly) { + switch (Test-ScriptVersion -AutoUpdate -VersionsUrl $versionsUrl -Confirm:$false) { + ($true) { Write-Host ("Script was successfully updated") -ForegroundColor Green } + ($false) { Write-Host ("No update of the script performed") -ForegroundColor Yellow } + default { Write-Host ("Unable to perform ScriptUpdateOnly operation") -ForegroundColor Red } + } + return + } + + if ((-not($SkipVersionCheck)) -and + (Test-ScriptVersion -AutoUpdate -VersionsUrl $versionsUrl -Confirm:$false)) { Write-Host ("Script was updated. Please re-run the command") -ForegroundColor Yellow return } $exchangeShell = Confirm-ExchangeShell if (-not($exchangeShell.ShellLoaded)) { - Write-Warning "Failed to load the Exchange Management Shell. Start the script using the Exchange Management Shell." - exit - } elseif (-not($exchangeShell.EMS)) { - Write-Warning "This script requires to be run inside of Exchange Management Shell. Please run on an Exchange Management Server or an Exchange Server with Exchange Management Shell." + Write-Host "Failed to load the Exchange Management Shell. Start the script using the Exchange Management Shell." -ForegroundColor Yellow exit } try { $iisAppPoolWording = "Note that each Exchange server's IIS Application Pool will be restarted after either applying the setting change or restore action." $vulnerabilityMoreInformationWording = "More information about the vulnerability can be found here: https://portal.msrc.microsoft.com/security-guidance/advisory/CVE-2023-21709." - if (-not $Rollback) { + if (-not($Rollback)) { $params = @{ Message = "Display Warning about TokenCacheModule removal operation" Target = "Removal of TokenCacheModule from IIS is recommended for security reasons. " + @@ -110,37 +148,45 @@ begin { } Show-Disclaimer @params - Write-Verbose ("Running Get-ExchangeServer to get list of all exchange servers") + Write-Verbose ("Running Get-ExchangeServer to get list of all Exchange servers") Set-ADServerSettings -ViewEntireForest $true - $ExchangeServers = Get-ExchangeServer | Where-Object { $_.AdminDisplayVersion -like "Version 15*" -and $_.ServerRole -ne "Edge" } - - if ($null -ne $ExchangeServerNames -and $ExchangeServerNames.Count -gt 0) { - Write-Verbose "Running only on servers: $([string]::Join(", " ,$ExchangeServerNames))" - $ExchangeServers = $ExchangeServers | Where-Object { ($_.Name -in $ExchangeServerNames) -or ($_.FQDN -in $ExchangeServerNames) } + $ExchangeServers = Get-ExchangeServer | Where-Object { + (($_.AdminDisplayVersion -like "Version 15*") -and + ($_.ServerRole -ne "Edge")) } - if ($null -ne $SkipExchangeServerNames -and $SkipExchangeServerNames.Count -gt 0) { - Write-Verbose "Skipping servers: $([string]::Join(", ", $SkipExchangeServerNames))" + if (($null -ne $exchangeServersToProcess) -and + ($exchangeServersToProcess.Count -gt 0)) { + Write-Host "Running only on Exchange servers: $([string]::Join(", " ,$exchangeServersToProcess))" + $ExchangeServers = $ExchangeServers | Where-Object { + (($_.Name -in $exchangeServersToProcess) -or + ($_.FQDN -in $exchangeServersToProcess)) + } + } + if (($null -ne $SkipExchangeServerNames) -and + ($SkipExchangeServerNames.Count -gt 0)) { + Write-Host "Skipping Exchange servers: $([string]::Join(", ", $SkipExchangeServerNames))" # Remove all the servers present in the SkipExchangeServerNames list - $ExchangeServers = $ExchangeServers | Where-Object { ($_.Name -notin $SkipExchangeServerNames) -and ($_.FQDN -notin $SkipExchangeServerNames) } + $ExchangeServers = $ExchangeServers | Where-Object { + (($_.Name -notin $SkipExchangeServerNames) -and + ($_.FQDN -notin $SkipExchangeServerNames)) + } } if ($null -eq $ExchangeServers) { - Write-Host "No exchange servers to process. Please specify server filters correctly" + Write-Host "No Exchange servers to process. Please specify server filters correctly" -ForegroundColor Red exit } - if ($Rollback) { - Invoke-Rollback -ExchangeServers $ExchangeServers - return + $tokenCacheActionParams = @{ + ExchangeServers = $ExchangeServers + Action = if (-not($Rollback)) { "Protect" } else { "Rollback" } } - Invoke-ConfigureMitigation -ExchangeServers $ExchangeServers - return + Invoke-TokenCacheModuleAction @tokenCacheActionParams } finally { Write-Host "" - Write-Host "Script Completed successfully!" - Write-Host "Do you have feedback regarding the script? Please email ExToolsFeedback@microsoft.com." + Write-Host "Do you have feedback regarding the script? Please let us know: ExToolsFeedback@microsoft.com." } } diff --git a/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-ConfigureMitigation.ps1 b/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-ConfigureMitigation.ps1 deleted file mode 100644 index b2d349b7d8..0000000000 --- a/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-ConfigureMitigation.ps1 +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. - -. $PSScriptRoot\..\..\..\..\Shared\Invoke-ScriptBlockHandler.ps1 -. $PSScriptRoot\..\..\..\..\Shared\Write-ErrorInformation.ps1 - -function Invoke-ConfigureMitigation { - [CmdletBinding()] - param( - [Parameter(Mandatory = $true)] - [string[]]$ExchangeServers - ) - - begin { - $FailedServers = New-Object 'System.Collections.Generic.List[string]' - $NoImpactServers = New-Object 'System.Collections.Generic.List[string]' - - $progressParams = @{ - Activity = "Removing TokenCachingModule" - Status = [string]::Empty - PercentComplete = 0 - } - - Write-Verbose "Calling: $($MyInvocation.MyCommand)" - - $ConfigureMitigation = { - $results = @{ - IsMitigationRequired = $true - IsSuccessful = $false - ErrorContext = $null - } - - try { - if ($null -eq (Get-WebGlobalModule -Name "TokenCacheModule")) { - $results.IsMitigationRequired = $false - return $results - } - - Clear-WebConfiguration -Filter "/system.webServer/globalModules/add[@name='TokenCacheModule']" -PSPath "IIS:\" -ErrorAction Stop - if (-not $WhatIfPreference) { - if ($null -eq (Get-WebGlobalModule -Name "TokenCacheModule")) { - $results.IsSuccessful = $true - } - } - } catch { - $results.ErrorContext = $_ - } - - return $results - } - } process { - $counter = 0 - $totalCount = $ExchangeServers.Count - - if ($WhatIfPreference) { - Write-Host ("What if: Will perform the below actions on the following servers: {0}" -f [string]::Join(", ", $ExchangeServers)) - } - - foreach ($Server in $ExchangeServers) { - $baseStatus = "Processing: $Server -" - $progressParams.PercentComplete = ($counter / $totalCount * 100) - $progressParams.Status = "$baseStatus Applying mitigation" - Write-Progress @progressParams - - $counter ++; - - if (-not $WhatIfPreference -or ($Server).Split(".")[0] -eq $env:COMPUTERNAME) { - Write-Verbose ("Calling Invoke-ScriptBlockHandler on Server {0}" -f $Server) - $resultsInvoke = Invoke-ScriptBlockHandler -ComputerName $Server -ScriptBlock $ConfigureMitigation - } - - if (-not $WhatIfPreference) { - if ($null -eq $resultsInvoke) { - Write-Warning ("Server {0} is unavailable. Skipping it!" -f $Server) - $FailedServers += $Server - continue; - } - - if (-not $resultsInvoke.IsMitigationRequired) { - Write-Verbose ("Mitigation is not required on server {0}" -f $Server) - $NoImpactServers += $Server - continue - } - - if ($resultsInvoke.IsSuccessful) { - Write-Verbose ("Successfully applied mitigation on server {0}" -f $Server) - } else { - Write-Host ("Script failed to apply mitigation on server {0}" -f $Server) -ForegroundColor Red - $FailedServers += $Server - continue - } - } - } - } end { - Write-Progress @progressParams -Completed - - if (-not $WhatIfPreference) { - if ($FailedServers.Length -gt 0) { - Write-Host ("Unable to apply mitigation of following servers: {0}" -f [string]::Join(", ", $FailedServers)) -ForegroundColor Red - } - - if ($NoImpactServers.Length -gt 0) { - Write-Host ("No mitigation required for the following servers : {0}. These servers have already been mitigated." -f [string]::Join(", ", $NoImpactServers)) - } - } - } -} diff --git a/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-Rollback.ps1 b/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-Rollback.ps1 deleted file mode 100644 index 9d1cadbaf8..0000000000 --- a/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-Rollback.ps1 +++ /dev/null @@ -1,108 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. - -. $PSScriptRoot\..\..\..\..\Shared\Invoke-ScriptBlockHandler.ps1 -. $PSScriptRoot\..\..\..\..\Shared\Write-ErrorInformation.ps1 - -function Invoke-Rollback { - [CmdletBinding()] - param( - [Parameter(Mandatory = $true)] - [string[]]$ExchangeServers - ) - - begin { - $FailedServers = New-Object 'System.Collections.Generic.List[string]' - $NoImpactServers = New-Object 'System.Collections.Generic.List[string]' - - $progressParams = @{ - Activity = "Adding TokenCachingModule" - Status = [string]::Empty - PercentComplete = 0 - } - - Write-Verbose "Calling: $($MyInvocation.MyCommand)" - - $ConfigureRollback = { - $results = @{ - IsRollbackRequired = $true - IsSuccessful = $false - ErrorContext = $null - } - - try { - if ($null -ne (Get-WebGlobalModule -Name "TokenCacheModule")) { - $results.IsRollbackRequired = $false - return $results - } - - New-WebGlobalModule -Name "TokenCacheModule" -Image "%windir%\System32\inetsrv\cachtokn.dll" -ErrorAction Stop - - if (-not $WhatIfPreference) { - if ($null -ne (Get-WebGlobalModule -Name "TokenCacheModule")) { - $results.IsSuccessful = $true - } - } - } catch { - $results.ErrorContext = $_ - } - - return $results - } - } process { - $counter = 0 - $totalCount = $ExchangeServers.Count - - if ($WhatIfPreference) { - Write-Host ("What if: Will perform the below actions on the following servers: {0}" -f [string]::Join(", ", $ExchangeServers)) - } - - foreach ($Server in $ExchangeServers) { - $baseStatus = "Processing: $Server -" - $progressParams.PercentComplete = ($counter / $totalCount * 100) - $progressParams.Status = "$baseStatus Rollback mitigation" - Write-Progress @progressParams - - $counter ++; - - if (-not $WhatIfPreference -or ($Server).Split(".")[0] -eq $env:COMPUTERNAME) { - Write-Verbose ("Calling Invoke-ScriptBlockHandler on Server {0}" -f $Server) - $resultsInvoke = Invoke-ScriptBlockHandler -ComputerName $Server -ScriptBlock $ConfigureRollback - } - - if (-not $WhatIfPreference) { - if ($null -eq $resultsInvoke) { - Write-Warning ("Server {0} is unavailable. Skipping it!" -f $Server) - $FailedServers += $Server - continue; - } - - if (-not $resultsInvoke.IsRollbackRequired) { - Write-Verbose ("Rollback is not required on server {0}" -f $Server) - $NoImpactServers += $Server - continue - } - - if ($resultsInvoke.IsSuccessful) { - Write-Verbose ("Successfully rollback mitigation on server {0}" -f $Server) - } else { - Write-Host ("Script failed to rollback mitigation on server {0}" -f $Server) -ForegroundColor Red - $FailedServers += $Server - continue - } - } - } - } end { - Write-Progress @progressParams -Completed - - if (-not $WhatIfPreference) { - if ($FailedServers.Length -gt 0) { - Write-Host ("Unable to rollback mitigation of following servers: {0}" -f [string]::Join(", ", $FailedServers)) -ForegroundColor Red - } - - if ($NoImpactServers.Length -gt 0) { - Write-Host ("No rollback required for the following servers : {0}" -f [string]::Join(", ", $NoImpactServers)) - } - } - } -} diff --git a/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-TokenCacheModuleAction.ps1 b/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-TokenCacheModuleAction.ps1 new file mode 100644 index 0000000000..e855044063 --- /dev/null +++ b/Security/src/CVE-2023-21709/ConfigurationAction/Invoke-TokenCacheModuleAction.ps1 @@ -0,0 +1,152 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. + +. $PSScriptRoot\..\..\..\..\Shared\Invoke-ScriptBlockHandler.ps1 +. $PSScriptRoot\..\..\..\..\Shared\Write-ErrorInformation.ps1 + +function Invoke-TokenCacheModuleAction { + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string[]]$ExchangeServers, + + [Parameter(Mandatory = $false)] + [ValidateSet("Protect", "Rollback")] + [string]$Action = "Protect" + ) + + begin { + Write-Verbose "Calling: $($MyInvocation.MyCommand)" + $counter = 0 + $totalCount = $ExchangeServers.Count + $failedServers = New-Object 'System.Collections.Generic.List[string]' + $noImpactServers = New-Object 'System.Collections.Generic.List[string]' + + $progressParams = @{ + Activity = if ($Action -eq "Protect") { "Removing TokenCachingModule" } else { "Adding TokenCachingModule" } + Status = [string]::Empty + PercentComplete = 0 + } + + function InvokeTokenCacheModuleConfiguration { + param ( + [Parameter(Mandatory = $false)] + [ValidateSet("Protect", "Rollback")] + [string]$ConfigurationAction = "Protect" + ) + + Write-Verbose "Calling: $($MyInvocation.MyCommand)" + $results = @{ + TokenCacheModuleInstalled = $false + ActionSuccessful = $false + ErrorContext = $null + } + + try { + $results.TokenCacheModuleInstalled = ($null -ne (Get-WebGlobalModule -Name "TokenCacheModule")) + + if ($ConfigurationAction -eq "Protect") { + if ($results.TokenCacheModuleInstalled) { + Write-Verbose ("TokenCacheModule was found - trying to remove it now...") + $clearWebConfigurationParams = @{ + Filter = "/system.webServer/globalModules/add[@name='TokenCacheModule']" + PSPath = "IIS:\" + ErrorAction = "Stop" + } + [void](Clear-WebConfiguration @clearWebConfigurationParams) + + if (-not($WhatIfPreference)) { + $results.ActionSuccessful = ($null -eq (Get-WebGlobalModule -Name "TokenCacheModule")) + } + } else { + Write-Verbose ("TokenCacheModule was not found - no action to perform") + } + } else { + if ($results.TokenCacheModuleInstalled -eq $false) { + Write-Verbose ("TokenCacheModule was not found - trying to restore it now...") + $newWebGlobalModuleParams = @{ + Name = "TokenCacheModule" + Image = "%windir%\System32\inetsrv\cachtokn.dll" + ErrorAction = "Stop" + } + [void](New-WebGlobalModule @newWebGlobalModuleParams) + + if (-not($WhatIfPreference)) { + $results.ActionSuccessful = ($null -ne (Get-WebGlobalModule -Name "TokenCacheModule")) + } + } else { + Write-Verbose ("TokenCacheModule was found - no action to perform") + } + } + } catch { + Write-Verbose ("We hit an exception: $($_.Exception.Message)") + $results.ErrorContext = $_ + } + return $results + } + } process { + if ($WhatIfPreference) { + Write-Host ("What if: Performing the below actions on the following servers: {0}" -f [string]::Join(", ", $ExchangeServers)) + } + + foreach ($server in $ExchangeServers) { + Write-Host ("Now processing server: $server") + $progressParams.PercentComplete = ($counter / $totalCount * 100) + $progressParams.Status = "Processing: $server - Action: $Action" + Write-Progress @progressParams + + $counter++ + + if (-not($WhatIfPreference)) { + $configurationActionParams = @{ + ComputerName = $server + ScriptBlock = ${Function:InvokeTokenCacheModuleConfiguration} + ArgumentList = $Action + } + $resultsInvoke = Invoke-ScriptBlockHandler @configurationActionParams + } + + if (-not($WhatIfPreference)) { + if ($null -eq $resultsInvoke) { + Write-Host ("Server: $server is unavailable and will be skipped") -ForegroundColor Yellow + $failedServers.Add($server) + continue + } + + if ($Action -eq "Protect") { + if ($resultsInvoke.TokenCacheModuleInstalled -eq $false) { + Write-Host ("Action is not required on server: $server") + $noImpactServers.Add($server) + continue + } + } else { + if ($resultsInvoke.TokenCacheModuleInstalled) { + Write-Host ("Rollback is not required on server: $server") + $noImpactServers.Add($server) + continue + } + } + + if ($resultsInvoke.ActionSuccessful) { + Write-Host ("Successfully performed action '$Action' on server: $server") -ForegroundColor Green + } else { + Write-Host ("Script failed to perform action '$Action' on server: $server") -ForegroundColor Red + $failedServers.Add($server) + continue + } + } + } + } end { + Write-Progress @progressParams -Completed + + if (-not($WhatIfPreference)) { + if ($failedServers.Length -gt 0) { + Write-Host ("Unable to perform action '$Action' on the following servers: {0}" -f [string]::Join(", ", $failedServers)) -ForegroundColor Red + } + + if ($noImpactServers.Length -gt 0) { + Write-Host ("No need to perform action '$Action' on the following servers: {0} as they are in the expected state" -f [string]::Join(", ", $noImpactServers)) + } + } + } +} diff --git a/Security/src/CVE-2023-21709/WriteFunctions.ps1 b/Security/src/CVE-2023-21709/WriteFunctions.ps1 deleted file mode 100644 index f46cf6343b..0000000000 --- a/Security/src/CVE-2023-21709/WriteFunctions.ps1 +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. - -function Write-VerboseLog ($Message) { - $Script:Logger = $Script:Logger | Write-LoggerInstance $Message -} - -function Write-HostLog ($Message) { - $Script:Logger = $Script:Logger | Write-LoggerInstance $Message -} diff --git a/docs/Security/CVE-2023-21709.md b/docs/Security/CVE-2023-21709.md index 51dd8be640..f2ca964f14 100644 --- a/docs/Security/CVE-2023-21709.md +++ b/docs/Security/CVE-2023-21709.md @@ -44,3 +44,5 @@ Parameter | Description ExchangeServerNames | A list of Exchange servers that you want to run the script against. This can be used for applying or rollback the `CVE-2023-21709` configuration change. SkipExchangeServerNames | A list of Exchange servers that you don't want to execute the `TokenCacheModule` configuration action. Rollback | Switch parameter to rollback the `CVE-2023-21709` configuration change and add the `TokenCacheModule` back to IIS. +ScriptUpdateOnly | Switch parameter to only update the script without performing any other actions. +SkipVersionCheck | Switch parameter to skip the automatic version check and script update. From d2c18cfa53d43b7217a7049b1b3df39c8fcf22bf Mon Sep 17 00:00:00 2001 From: Lukas Sassl Date: Thu, 24 Aug 2023 14:54:13 +0200 Subject: [PATCH 22/22] AddRange to add elements instead of object to list --- Security/src/CVE-2023-21709/CVE-2023-21709.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 index 90bf0ade45..d68c738502 100644 --- a/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 +++ b/Security/src/CVE-2023-21709/CVE-2023-21709.ps1 @@ -88,8 +88,8 @@ begin { $exchangeServersToProcess = New-Object "System.Collections.Generic.List[string]" } process { if ($null -ne $ExchangeServerNames) { - Write-Verbose ("Adding server: $ExchangeServerNames to the list of servers to be processed...") - $exchangeServersToProcess.Add($ExchangeServerNames) + Write-Verbose ("Adding server(s): $([string]::Join(", ", $ExchangeServerNames)) to the list of servers to be processed...") + $exchangeServersToProcess.AddRange($ExchangeServerNames) } else { Write-Verbose ("No server was passed via the ExchangeServerNames parameter") }