internal/scripts/exchange.ps1

# Useful source: https://eightwone.com/references/schema-versions/
$script:exchangeVersionMapping = @{
    '2013RTM'     = [PSCustomObject]@{ Name = 'Exchange 2013 RTM'; DomainVersion = 13236; ConfigurationVersion = 15449; SchemaVersion = 15137; Binding = '2013RTM' }
    '2013CU1'     = [PSCustomObject]@{ Name = 'Exchange 2013 CU1'; DomainVersion = 13236; ConfigurationVersion = 15614; SchemaVersion = 15254; Binding = '2013CU1' }
    '2013CU2'     = [PSCustomObject]@{ Name = 'Exchange 2013 CU2'; DomainVersion = 13236; ConfigurationVersion = 15688; SchemaVersion = 15281; Binding = '2013CU2' }
    '2013CU3'     = [PSCustomObject]@{ Name = 'Exchange 2013 CU3'; DomainVersion = 13236; ConfigurationVersion = 15763; SchemaVersion = 15283; Binding = '2013CU3' }
    '2013SP1'     = [PSCustomObject]@{ Name = 'Exchange 2013 SP1'; DomainVersion = 13236; ConfigurationVersion = 15844; SchemaVersion = 15292; Binding = '2013SP1' }
    '2013CU5'     = [PSCustomObject]@{ Name = 'Exchange 2013 CU5'; DomainVersion = 13236; ConfigurationVersion = 15870; SchemaVersion = 15300; Binding = '2013CU5' }
    '2013CU6'     = [PSCustomObject]@{ Name = 'Exchange 2013 CU6'; DomainVersion = 13236; ConfigurationVersion = 15965; SchemaVersion = 15303; Binding = '2013CU6' }
    '2013CU7'     = [PSCustomObject]@{ Name = 'Exchange 2013 CU7'; DomainVersion = 13236; ConfigurationVersion = 15965; SchemaVersion = 15312; Binding = '2013CU7' }
    '2013CU8'     = [PSCustomObject]@{ Name = 'Exchange 2013 CU8'; DomainVersion = 13236; ConfigurationVersion = 15965; SchemaVersion = 15312; Binding = '2013CU8' }
    '2013CU9'     = [PSCustomObject]@{ Name = 'Exchange 2013 CU9'; DomainVersion = 13236; ConfigurationVersion = 15965; SchemaVersion = 15312; Binding = '2013CU9' }
    '2013CU10'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU10'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU10' }
    '2013CU11'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU11'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU11' }
    '2013CU12'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU12'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU12' }
    '2013CU13'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU13'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU13' }
    '2013CU14'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU14'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU14' }
    '2013CU15'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU15'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU15' }
    '2013CU16'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU16'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU16' }
    '2013CU17'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU17'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU17' }
    '2013CU18'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU18'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU18' }
    '2013CU19'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU19'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU19' }
    '2013CU20'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU20'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU20' }
    '2013CU21'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU21'; DomainVersion = 13236; ConfigurationVersion = 16130; SchemaVersion = 15312; Binding = '2013CU21' }
    '2013CU22'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU22'; DomainVersion = 13236; ConfigurationVersion = 16131; SchemaVersion = 15312; Binding = '2013CU22' }
    '2013CU23'    = [PSCustomObject]@{ Name = 'Exchange 2013 CU23'; DomainVersion = 13237; ConfigurationVersion = 16133; SchemaVersion = 15312; Binding = '2013CU23' }

    '2016Preview' = [PSCustomObject]@{ Name = 'Exchange 2016 Preview'; DomainVersion = 13236; ConfigurationVersion = 16041; SchemaVersion = 15317; Binding = '2016Preview' }
    '2016RTM'     = [PSCustomObject]@{ Name = 'Exchange 2016 RTM'; DomainVersion = 13236; ConfigurationVersion = 16210; SchemaVersion = 15317; Binding = '2016RTM' }
    '2016CU1'     = [PSCustomObject]@{ Name = 'Exchange 2016 CU1'; DomainVersion = 13236; ConfigurationVersion = 16211; SchemaVersion = 15323; Binding = '2016CU1' }
    '2016CU2'     = [PSCustomObject]@{ Name = 'Exchange 2016 CU2'; DomainVersion = 13236; ConfigurationVersion = 16212; SchemaVersion = 15325; Binding = '2016CU2' }
    '2016CU3'     = [PSCustomObject]@{ Name = 'Exchange 2016 CU3'; DomainVersion = 13236; ConfigurationVersion = 16212; SchemaVersion = 15326; Binding = '2016CU3' }
    '2016CU4'     = [PSCustomObject]@{ Name = 'Exchange 2016 CU4'; DomainVersion = 13236; ConfigurationVersion = 16213; SchemaVersion = 15326; Binding = '2016CU4' }
    '2016CU5'     = [PSCustomObject]@{ Name = 'Exchange 2016 CU5'; DomainVersion = 13236; ConfigurationVersion = 16213; SchemaVersion = 15326; Binding = '2016CU5' }
    '2016CU6'     = [PSCustomObject]@{ Name = 'Exchange 2016 CU6'; DomainVersion = 13236; ConfigurationVersion = 16213; SchemaVersion = 15330; Binding = '2016CU6' }
    '2016CU7'     = [PSCustomObject]@{ Name = 'Exchange 2016 CU7'; DomainVersion = 13236; ConfigurationVersion = 16213; SchemaVersion = 15332; Binding = '2016CU7' }
    '2016CU8'     = [PSCustomObject]@{ Name = 'Exchange 2016 CU8'; DomainVersion = 13236; ConfigurationVersion = 16213; SchemaVersion = 15332; Binding = '2016CU8' }
    '2016CU9'     = [PSCustomObject]@{ Name = 'Exchange 2016 CU9'; DomainVersion = 13236; ConfigurationVersion = 16213; SchemaVersion = 15332; Binding = '2016CU9' }
    '2016CU10'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU10'; DomainVersion = 13236; ConfigurationVersion = 16213; SchemaVersion = 15332; Binding = '2016CU10' }
    '2016CU11'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU11'; DomainVersion = 13236; ConfigurationVersion = 16214; SchemaVersion = 15332; Binding = '2016CU11' }
    '2016CU12'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU12'; DomainVersion = 13236; ConfigurationVersion = 16215; SchemaVersion = 15332; Binding = '2016CU12' }
    '2016CU13'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU13'; DomainVersion = 13237; ConfigurationVersion = 16217; SchemaVersion = 15332; Binding = '2016CU13' }
    '2016CU14'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU14'; DomainVersion = 13237; ConfigurationVersion = 16217; SchemaVersion = 15332; Binding = '2016CU14' }
    '2016CU15'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU15'; DomainVersion = 13237; ConfigurationVersion = 16217; SchemaVersion = 15332; Binding = '2016CU15' }
    '2016CU16'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU16'; DomainVersion = 13237; ConfigurationVersion = 16217; SchemaVersion = 15332; Binding = '2016CU16' }
    '2016CU17'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU17'; DomainVersion = 13237; ConfigurationVersion = 16217; SchemaVersion = 15332; Binding = '2016CU17' }
    '2016CU18'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU18'; DomainVersion = 13238; ConfigurationVersion = 16218; SchemaVersion = 15332; Binding = '2016CU18' }
    '2016CU19'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU19'; DomainVersion = 13239; ConfigurationVersion = 16219; SchemaVersion = 15333; Binding = '2016CU19' }
    '2016CU20'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU20'; DomainVersion = 13240; ConfigurationVersion = 16220; SchemaVersion = 15333; Binding = '2016CU20' }
    '2016CU21'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU21'; DomainVersion = 13241; ConfigurationVersion = 16221; SchemaVersion = 15334; Binding = '2016CU21' }
    '2016CU22'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU22'; DomainVersion = 13242; ConfigurationVersion = 16222; SchemaVersion = 15334; Binding = '2016CU22' }
    '2016CU22KB'  = [PSCustomObject]@{ Name = 'Exchange 2016 CU22 KB5014260'; DomainVersion = 13243; ConfigurationVersion = 16222; SchemaVersion = 15334; Binding = '2016CU22KB' }
    '2016CU23'    = [PSCustomObject]@{ Name = 'Exchange 2016 CU23'; DomainVersion = 13243; ConfigurationVersion = 16223; SchemaVersion = 15334; Binding = '2016CU23' }

    '2019Preview' = [PSCustomObject]@{ Name = 'Exchange 2019 Preview'; DomainVersion = 13236; ConfigurationVersion = 16213; SchemaVersion = 15332; Binding = '2019Preview' }
    '2019RTM'     = [PSCustomObject]@{ Name = 'Exchange 2019 RTM'; DomainVersion = 13236; ConfigurationVersion = 16751; SchemaVersion = 17000; Binding = '2019RTM' }
    '2019CU1'     = [PSCustomObject]@{ Name = 'Exchange 2019 CU1'; DomainVersion = 13236; ConfigurationVersion = 16752; SchemaVersion = 17000; Binding = '2019CU1' }
    '2019CU2'     = [PSCustomObject]@{ Name = 'Exchange 2019 CU2'; DomainVersion = 13237; ConfigurationVersion = 16754; SchemaVersion = 17001; Binding = '2019CU2' }
    '2019CU3'     = [PSCustomObject]@{ Name = 'Exchange 2019 CU3'; DomainVersion = 13237; ConfigurationVersion = 16754; SchemaVersion = 17001; Binding = '2019CU3' }
    '2019CU4'     = [PSCustomObject]@{ Name = 'Exchange 2019 CU4'; DomainVersion = 13237; ConfigurationVersion = 16754; SchemaVersion = 17001; Binding = '2019CU4' }
    '2019CU5'     = [PSCustomObject]@{ Name = 'Exchange 2019 CU5'; DomainVersion = 13237; ConfigurationVersion = 16754; SchemaVersion = 17001; Binding = '2019CU5' }
    '2019CU6'     = [PSCustomObject]@{ Name = 'Exchange 2019 CU6'; DomainVersion = 13237; ConfigurationVersion = 16754; SchemaVersion = 17001; Binding = '2019CU6' }
    '2019CU7'     = [PSCustomObject]@{ Name = 'Exchange 2019 CU7'; DomainVersion = 13238; ConfigurationVersion = 16755; SchemaVersion = 17001; Binding = '2019CU7' }
    '2019CU8'     = [PSCustomObject]@{ Name = 'Exchange 2019 CU8'; DomainVersion = 13239; ConfigurationVersion = 16756; SchemaVersion = 17002; Binding = '2019CU8' }
    '2019CU9'     = [PSCustomObject]@{ Name = 'Exchange 2019 CU9'; DomainVersion = 13240; ConfigurationVersion = 16757; SchemaVersion = 17002; Binding = '2019CU9' }
    '2019CU10'    = [PSCustomObject]@{ Name = 'Exchange 2019 CU10'; DomainVersion = 13241; ConfigurationVersion = 16758; SchemaVersion = 17003; Binding = '2019CU10' }
    '2019CU11'    = [PSCustomObject]@{ Name = 'Exchange 2019 CU11'; DomainVersion = 13242; ConfigurationVersion = 16759; SchemaVersion = 17003; Binding = '2019CU11' }
    '2019CU12'    = [PSCustomObject]@{ Name = 'Exchange 2019 CU12'; DomainVersion = 13243; ConfigurationVersion = 16760; SchemaVersion = 17003; Binding = '2019CU12' }
    '2019CU13'    = [PSCustomObject]@{ Name = 'Exchange 2019 CU13'; DomainVersion = 13243; ConfigurationVersion = 16761; SchemaVersion = 17003; Binding = '2019CU13' }
    '2019CU14'    = [PSCustomObject]@{ Name = 'Exchange 2019 CU14'; DomainVersion = 13243; ConfigurationVersion = 16762; SchemaVersion = 17003; Binding = '2019CU14' }
    '2019CU15'    = [PSCustomObject]@{ Name = 'Exchange 2019 CU15'; DomainVersion = 13243; ConfigurationVersion = 16763; SchemaVersion = 17003; Binding = '2019CU15' }
}