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' }
    '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' }
}