calculate-publicDNSRecordsUSGov.ps1
|
function calculate-publicDNSRecordsUSGov { Param ( #Define other mandatory parameters [Parameter(Mandatory = $true)] $domainName, [Parameter(Mandatory = $true)] $msGraphEnvironmentName, [Parameter(Mandatory = $true)] $msGraphEnvironments ) switch ($msGraphEnvironmentName) { $msGraphEnvironments.msGraphUSGov { $functionAutoDiscover = "autodiscover.office365.us" $functionSIPTarget = "sipfed.online.gov.skypeforbusiness.us" } $msGraphEnvironments.msGraphUSGovDOD { $functionAutoDiscover = "autodiscover-dod.office365.us" $functionSIPTarget = "sipfed.online.dod.skypeforbusiness.us" } } $output = @() $onMicrosoft = $null $onMicrosoftSplit = $null $domainAutodiscover = "autodiscover" $domainNameAutoDiscover = $domainAutodiscover+"."+$domainName $enterpriseEnrollment = "EnterpriseEnrollment" $enterpriseEnrollmentDomainName = $enterpriseEnrollment+"."+$domainName $enterpriseRegistration = "EnterpriseRegistration" $enterpriseRegistrationDomainName = $enterpriseRegistration+"."+$domainName $functionMX = "MX" $functionRecordName = "@" $functionTTL = "3600" $functionMXEnd = "mail.protection.office365.us" $functionPriority = "0" $functionTXT = "TXT" $functionSPF = "v=spf1 include:spf.protection.office365.us -all" $functionCNAME = "CNAME" $functionSRV = "SRV" $functionSIPService = "_sipfederationtls" $functionSIPPort = "5061" $functionSIPPriority = "100" $functionSIPProtocol = "_tcp" $functionSIPWeight = "1" $functionEnterpriseEnrollment = "EnterpriseEnrollment-s.manage.microsoft.us" $functionEnterpriseRegistration = "EnterpriseRegistration.windows.net" out-logfile -string "Entering calculate-publicDNSRecordsUSGov" out-logfile -string $domainNameAutoDiscover out-logfile -string "Government records are based on the onmicrosoft.us domain within the tenant." $onMicrosoft = get-OnMicrosoft out-logfile -string $onMicrosoft $onMicrosoftSplit = $onMicrosoft.split(".") foreach ($entry in $onMicrosoftSplit) { out-logfile -string $entry } out-logfile -string "Calculate the MX record." $functionObject = New-Object PSObject -Property ([ordered]@{ RecordType = $functionMX RecordName = $functionRecordName TTL = $functionTTL Value = $onMicrosoftSplit[0]+"."+$functionMXEnd Priority = $functionPriority }) out-logfile -string $functionObject $output += $functionObject out-logfile -string "Calculate TXT Record" $functionObject = New-Object PSObject -Property ([ordered]@{ RecordType = $functionTXT RecordName = $functionRecordName TTL = $functionTTL Value = $functionSPF }) out-logfile -string $functionObject $output += $functionObject out-logfile -string "Calculate autodiscover record" $functionObject = New-Object PSObject -Property ([ordered]@{ RecordType = $functionCNAME RecordName = $domainNameAutoDiscover TTL = $functionTTL Value = $functionAutoDiscover }) out-logfile -string $functionObject $output += $functionObject $functionObject = New-Object PSObject -Property ([ordered]@{ RecordType = $functionSRV RecordName = $functionRecordName TTL = $functionTTL Value = $functionSIPTarget Port = $functionSIPPort Priority = $functionSIPPriority Protocol = $functionSIPProtocol Service = $functionSIPService Weight = $functionSIPWeight }) out-logfile -string $functionObject $output += $functionObject out-logfile -string "Calculate enterprise enrollment value." $functionObject = New-Object PSObject -Property ([ordered]@{ RecordType = $functionCNAME RecordName = $enterpriseEnrollmentDomainName TTL = $functionTTL Value = $functionEnterpriseEnrollment }) out-logfile -string $functionObject $output += $functionObject out-logfile -string "Calculate enterprise registration value." $functionObject = New-Object PSObject -Property ([ordered]@{ RecordType = $functionCNAME RecordName = $enterpriseRegistrationDomainName TTL = $functionTTL Value = $functionEnterpriseRegistration }) out-logfile -string $functionObject $output += $functionObject try { generate-DNSHtml -output $output -domainName $domainName -errorAction STOP } catch { out-logfile -string $_ out-logfile -string "Unable to generate the DNS HTML record." -isError:$true } out-logfile -string "Exiting calculate-publicDNSRecordsUSGov" } |