Created
September 25, 2017 22:06
-
-
Save rayterrill/6fb8a0d8a0b8145f0f352cceae071815 to your computer and use it in GitHub Desktop.
Create AWS Route53 DNS Records for Office365
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Param( | |
[string]$domainName, #example: mydomain.com | |
[string]$verificationValue #example: ms23254363 | |
) | |
$domain_withoutDot = $domainName -Replace '\.', '-' | |
#make sure you're authenticated to AWS and that you've pre-created the new hosted zone | |
#get the hosted zone | |
$R53Tenant = Get-R53HostedZonesByName | Where-Object { $_.Name -eq "$($domainName)." } | |
###################### | |
# DOMAIN VERIFICATION | |
###################### | |
#verification record for domain | |
$change1 = New-Object Amazon.Route53.Model.Change | |
$change1.Action = "CREATE" | |
$change1.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change1.ResourceRecordSet.Name = "$($domainName)." | |
$change1.ResourceRecordSet.Type = "TXT" | |
$change1.ResourceRecordSet.TTL = 3600 | |
$change1.ResourceRecordSet.ResourceRecords.Add(@{Value="`"MS=$($verificationValue)`""}) | |
$params = @{ | |
HostedZoneId=$R53Tenant.ID | |
ChangeBatch_Comment="Adds TXT record to validate domain for Office365" | |
ChangeBatch_Change=$change1 | |
} | |
#Edit-R53ResourceRecordSet @params | |
########### | |
# EXCHANGE | |
########### | |
#mx record | |
$change1 = New-Object Amazon.Route53.Model.Change | |
$change1.Action = "CREATE" | |
$change1.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change1.ResourceRecordSet.Name = "$($domainName)." | |
$change1.ResourceRecordSet.Type = "MX" | |
$change1.ResourceRecordSet.TTL = 3600 | |
$change1.ResourceRecordSet.ResourceRecords.Add(@{Value="0 $($domain_withoutDot).mail.protection.outlook.com"}) | |
#spf record | |
$change2 = New-Object Amazon.Route53.Model.Change | |
$change2.Action = "UPSERT" | |
$change2.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change2.ResourceRecordSet.Name = "$($domainName)." | |
$change2.ResourceRecordSet.Type = "TXT" | |
$change2.ResourceRecordSet.TTL = 3600 | |
$change2.ResourceRecordSet.ResourceRecords.Add(@{Value="`"MS=$($verificationValue)`""}) | |
$change2.ResourceRecordSet.ResourceRecords.Add(@{Value="`"v=spf1 include:spf.protection.outlook.com -all`""}) | |
#autodiscover | |
$change3 = New-Object Amazon.Route53.Model.Change | |
$change3.Action = "CREATE" | |
$change3.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change3.ResourceRecordSet.Name = "autodiscover.$($domainName)." | |
$change3.ResourceRecordSet.Type = "CNAME" | |
$change3.ResourceRecordSet.TTL = 3600 | |
$change3.ResourceRecordSet.ResourceRecords.Add(@{Value="autodiscover.outlook.com"}) | |
$params = @{ | |
HostedZoneId=$R53Tenant.ID | |
ChangeBatch_Comment="MX record for Office365" | |
ChangeBatch_Change=$change1,$change2,$change3 | |
} | |
#Edit-R53ResourceRecordSet @params | |
##################### | |
# SKYPE FOR BUSINESS | |
##################### | |
$change1 = New-Object Amazon.Route53.Model.Change | |
$change1.Action = "CREATE" | |
$change1.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change1.ResourceRecordSet.Name = "sip.$($domainName)." | |
$change1.ResourceRecordSet.Type = "CNAME" | |
$change1.ResourceRecordSet.TTL = 3600 | |
$change1.ResourceRecordSet.ResourceRecords.Add(@{Value="sipdir.online.lync.com"}) | |
$change2 = New-Object Amazon.Route53.Model.Change | |
$change2.Action = "CREATE" | |
$change2.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change2.ResourceRecordSet.Name = "lyncdiscover.$($domainName)." | |
$change2.ResourceRecordSet.Type = "CNAME" | |
$change2.ResourceRecordSet.TTL = 3600 | |
$change2.ResourceRecordSet.ResourceRecords.Add(@{Value="webdir.online.lync.com"}) | |
$change3 = New-Object Amazon.Route53.Model.Change | |
$change3.Action = "CREATE" | |
$change3.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change3.ResourceRecordSet.Name = "_sip._tls.$($domainName)." | |
$change3.ResourceRecordSet.Type = "SRV" | |
$change3.ResourceRecordSet.TTL = 3600 | |
$change3.ResourceRecordSet.ResourceRecords.Add(@{Value="100 1 443 sipdir.online.lync.com."}) | |
$change4 = New-Object Amazon.Route53.Model.Change | |
$change4.Action = "CREATE" | |
$change4.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change4.ResourceRecordSet.Name = "_sipfederationtls._tcp.$($domainName)." | |
$change4.ResourceRecordSet.Type = "SRV" | |
$change4.ResourceRecordSet.TTL = 3600 | |
$change4.ResourceRecordSet.ResourceRecords.Add(@{Value="100 1 5061 sipfed.online.lync.com."}) | |
$params = @{ | |
HostedZoneId=$R53Tenant.ID | |
ChangeBatch_Comment="Skype4B records for Office365" | |
ChangeBatch_Change=$change1,$change2,$change3,$change4 | |
} | |
Edit-R53ResourceRecordSet @params | |
##################### | |
# MDM | |
##################### | |
$change1 = New-Object Amazon.Route53.Model.Change | |
$change1.Action = "CREATE" | |
$change1.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change1.ResourceRecordSet.Name = "enterpriseregistration.$($domainName)." | |
$change1.ResourceRecordSet.Type = "CNAME" | |
$change1.ResourceRecordSet.TTL = 3600 | |
$change1.ResourceRecordSet.ResourceRecords.Add(@{Value="enterpriseregistration.windows.net"}) | |
$change2 = New-Object Amazon.Route53.Model.Change | |
$change2.Action = "CREATE" | |
$change2.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change2.ResourceRecordSet.Name = "enterpriseenrollment.$($domainName)." | |
$change2.ResourceRecordSet.Type = "CNAME" | |
$change2.ResourceRecordSet.TTL = 3600 | |
$change2.ResourceRecordSet.ResourceRecords.Add(@{Value="enterpriseenrollment.manage.microsoft.com"}) | |
##################### | |
# Additional Config | |
##################### | |
$change3 = New-Object Amazon.Route53.Model.Change | |
$change3.Action = "CREATE" | |
$change3.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet | |
$change3.ResourceRecordSet.Name = "msoid.$($domainName)." | |
$change3.ResourceRecordSet.Type = "CNAME" | |
$change3.ResourceRecordSet.TTL = 3600 | |
$change3.ResourceRecordSet.ResourceRecords.Add(@{Value="clientconfig.microsoftonline-p.net"}) | |
$params = @{ | |
HostedZoneId=$R53Tenant.ID | |
ChangeBatch_Comment="Skype4B records for Office365" | |
ChangeBatch_Change=$change1,$change2,$change3 | |
} | |
Edit-R53ResourceRecordSet @params |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment