Created
September 25, 2017 22:06
-
-
Save rayterrill/338b8c7aa8f8c77800831ba6b8f197ce 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