en-US/Office365DnsChecker-help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-EntraIDClientConfigurationRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>EntraIDClientConfigurationRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Entra ID client configuration DNS record is correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains for the presence and correctness of the Azure Active Directory client configuration DNS record, named msoid. It should not be present, or if so, be a CNAME pointing to clientconfig.microsoftonline-p.net.</maml:para>
      <maml:para>For Office 365 tenants in China operated by 21Vianet, the msoid record must be present and set to clientconfig.partner.microsoftonline-p.net.cn.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-EntraIDClientConfigurationRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="China">
          <maml:name>Use21Vianet</maml:name>
          <maml:description>
            <maml:para>If your Office 365 tenant is hosted by 21Vianet, include this switch. Chinese customers must have the msoid attribute set to a special value.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="China">
        <maml:name>Use21Vianet</maml:name>
        <maml:description>
          <maml:para>If your Office 365 tenant is hosted by 21Vianet, include this switch. Chinese customers must have the msoid attribute set to a special value.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Starting in early 2023, Microsoft's recommendations changed. Now, the msoid record should not be defined for any tenants not operated by 21Vianet. For more information, see: https://learn.microsoft.com/en-gb/microsoft-365/admin/services-in-china/purpose-of-cname?view=o365-21vianet</maml:para>
        <maml:para>Microsoft Entra ID used to be called Microsoft Azure Active Directory, and previous versions of this cmdlet reflected that.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Test-EntraIDClientConfigurationRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME record msoid.contoso.com is correct or missing.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- Example 2 --------------------------</maml:title>
        <dev:code>PS C:\&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-EntraIDClientConfigurationRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records msoid.contoso.com, msoid.fabrikam.com, and msoid.tailspintoys.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-EntraIDClientConfigurationRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-EntraIDJoinRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-EntraIDEnterpriseEnrollmentRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>EntraIDEnterpriseEnrollmentRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Entra ID enterprise enrollment DNS record is correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains for the presence and correctness of the Entra ID enterprise enrollment DNS record, named enterpriseenrollment. It should be a CNAME pointing to enterpriseenrollment.manage.microsoft.com.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-EntraIDEnterpriseEnrollmentRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Microsoft Entra ID used to be called Microsoft Azure Active Directory, and previous versions of this cmdlet reflected that.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-EntraIDEnterpriseEnrollmentRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME record enterpriseenrollment.contoso.com is correct.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-EntraIDEnterpriseEnrollmentRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records enterpriseenrollment.contoso.com, enterpriseenrollment.fabrikam.com, and enterpriseenrollment.tailspintoys.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-EntraIDEnterpriseEnrollmentRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-EntraIDJoinRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-EntraIDEnterpriseRegistrationRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>EntraIDEnterpriseRegistrationRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Entra ID enterprise registration DNS record is correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains for the presence and correctness of the Entra ID enterprise registration DNS record, named enterpriseregistration. It should be a CNAME pointing to enterpriseregistration.windows.net.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-EntraIDEnterpriseRegistrationRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Microsoft Entra ID used to be called Microsoft Azure Active Directory, and previous versions of this cmdlet reflected that.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-EntraIDEnterpriseRegistrationRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME record enterpriseregistration.contoso.com is correct.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-EntraIDEnterpriseRegistrationRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records enterpriseregistration.contoso.com, enterpriseregistration.fabrikam.com, and enterpriseregistration.tailspintoys.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-EntraIDEnterpriseRegistrationRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-EntraIDJoinRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-EntraIDRecords</command:name>
      <command:verb>Test</command:verb>
      <command:noun>EntraIDRecords</command:noun>
      <maml:description>
        <maml:para>Tests all Entra ID DNS records for correctness.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet will test the Entra ID client configuration, enterprise enrollment, and enterprise registration DNS records for correctness.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-EntraIDRecords</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="China">
          <maml:name>Use21Vianet</maml:name>
          <maml:description>
            <maml:para>If your Office 365 tenant is hosted by 21Vianet, include this switch. Chinese customers must have the msoid attribute set to a special value.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="China">
        <maml:name>Use21Vianet</maml:name>
        <maml:description>
          <maml:para>If your Office 365 tenant is hosted by 21Vianet, include this switch. Chinese customers must have the msoid attribute set to a special value.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This cmdlet is the same as running Test-EntraIDClientConfigurationRecord, Test-EntraIDEnterpriseEnrollmentRecord, and Test-EntraIDEnterpriseRegistrationRecord.</maml:para>
        <maml:para>Microsoft Entra ID used to be called Microsoft Azure Active Directory, and previous versions of this cmdlet reflected that.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- Example 1 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Test-EntraIDRecords contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records enterprisenrollment.contoso.com, enterpriseregistration.contoso.com, and msoid.contoso.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- Example 2 --------------------------</maml:title>
        <dev:code>PS C:\&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-EntraIDRecords</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the three Entra ID records for all three domains are correct.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-EntraIDRecords.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-EntraIDClientConfigurationRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-EntraIDEnterpriseEnrollmentRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-EntraIDEnterpriseRegistrationRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-ExchangeOnlineAutodiscoverRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>ExchangeOnlineAutodiscoverRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Outlook Autodiscover DNS records are correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains for the presence and correctness of the Outlook Autodiscover DNS record, named autodiscover. It should be a CNAME pointing to autodiscover.outlook.com.</maml:para>
      <maml:para>This cmdlet will also verify that no Autodiscover DNS SRV records exist, as those are not compatible with Exchange Online.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-ExchangeOnlineAutodiscoverRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>If you have a hybrid Exchange setup, your Autodiscover DNS records may not be pointing directly to Exchange Online. Use your best judgement when reviewing the opinions of this cmdlet.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-ExchangeOnlineAutodiscoverRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME record autodiscover.contoso.com is correct, and that records for _autodiscover._tcp.contoso.com do not exist.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-ExchangeOnlineAutodiscoverRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records autodiscover.contoso.com, autodiscover.fabrikam.com, and autodiscover.tailspintoys.com are correct; and that records for _autodiscover._tcp.contoso.com, _autodiscover._tcp.fabrikam.com, and _autodiscover._tcp.tailspintoys.com do not exist.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-ExchangeOnlineAutodiscoverRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-ExchangeOnlineDkimRecords</command:name>
      <command:verb>Test</command:verb>
      <command:noun>ExchangeOnlineDkimRecords</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Exchange Online DKIM records are correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains' DNS records for the presence and correctness of the two Exchange Online DKIM records, named selector1 and selector2. Each should be a CNAME to the corresponding TXT record under _domainkey.tenantname.onmicrosoft.com (the Exchange Admin Center will tell you what your domain's DKIM key record is named).</maml:para>
      <maml:para>The TXT records returned are also checked to see if they are valid DKIM key records.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-ExchangeOnlineDkimRecords</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Selectors</maml:name>
          <maml:description>
            <maml:para>Exchange Online requires both selector1 and selector2 to exist. However, if you would like to check only one of the keys, specify its number here.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">1</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">2</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">Int32[]</command:parameterValue>
          <dev:type>
            <maml:name>Int32[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>1,2</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Selectors</maml:name>
        <maml:description>
          <maml:para>Exchange Online requires both selector1 and selector2 to exist. However, if you would like to check only one of the keys, specify its number here.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32[]</command:parameterValue>
        <dev:type>
          <maml:name>Int32[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>1,2</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This cmdlet only checks for the presence of what should be a valid DKIM key (that is, a TXT record starting with "v=DKIM1;"). It does not check the record for validity or correctness beyond that.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-ExchangeOnlineDkimRecords contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the two CNAME records selector1._domainkey.contoso.com and selector2._domainkey.contoso.com point to a DKIM record under *.onmicrosoft.com, and that the TXT records appear to be valid DKIM key records.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com" | Test-AzureADClientConfigurationRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the CNAME records selector1._domainkey.contoso.com, selector2._domainkey.contoso.com, selector1._domainkey.fabrikam.com, and selector2._domainkey.fabrikam.com each point to a DKIM record under *.onmicrosoft.com; and that the TXT records appear to be valid DKIM key records.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-ExchangeOnlineDkimRecords.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Get-DkimSigningConfig</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>New-DkimSigningConfig</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-ExchangeOnlineMxRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>ExchangeOnlineMxRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's MX record is correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains' DNS records for the presence and correctness of the Exchange Online MX record. The first and only MX record should look something like tenantdomain-com.mail.protection.outlook.com or tenantdomain-com.1a2b3c.mx.microsoft.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-ExchangeOnlineMxRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DANERequired</maml:name>
          <maml:description>
            <maml:para>Specify this switch to print a warning if the DNSSEC/DANE-enabled MX endpoints are not in use. Without this switch, either the non-secure or secure MX names will be considered good.</maml:para>
            <maml:para>The DNSSEC/DANE-enabled endpoints will not be available for use until March 2024, with general availability in July 2024.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DANERequired</maml:name>
        <maml:description>
          <maml:para>Specify this switch to print a warning if the DNSSEC/DANE-enabled MX endpoints are not in use. Without this switch, either the non-secure or secure MX names will be considered good.</maml:para>
          <maml:para>The DNSSEC/DANE-enabled endpoints will not be available for use until March 2024, with general availability in July 2024.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para>This cmdlet will not print an error if the MX records are incorrect; it will only print a warning. Some people may choose to use additional spam filtering in front of Exchange Online, so it is possible to have a working Exchange Online setup even with "wrong" MX records. Alternatively, a hybrid Exchange deployment may choose to deliver email to the on-premises server instead of to Exchange Online. Use your best judgement when reviewing this cmdlet's output.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-ExchangeOnlineMxRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the MX record(s) for contoso.com deliver mail to Exchange Online.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-ExchangeOnlineMxRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the MX records for contoso.com, fabrikam.com, and tailspintoys.com deliver mail to Exchange Online.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-ExchangeOnlineMxRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-ExchangeOnlineRecords</command:name>
      <command:verb>Test</command:verb>
      <command:noun>ExchangeOnlineRecords</command:noun>
      <maml:description>
        <maml:para>Verifies a domain's Exchange Online DNS records are all correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains' DNS records for the presence and correctness of Exchange Online's DNS records. These include the Autodiscover CNAME, the DKIM CNAME and TXT records, the MX record, the SPF TXT record, and the Sender ID TXT record (if present).</maml:para>
      <maml:para>As some people choose to use a third-party spam filter with Office 365, this cmdlet will print a warning instead of an error if the MX records are incorrect.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-ExchangeOnlineRecords</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DANERequired</maml:name>
          <maml:description>
            <maml:para>Specify this switch to print a warning if the DNSSEC/DANE-enabled MX endpoints are not in use. Without this switch, either the non-secure or secure MX names will be considered good.</maml:para>
            <maml:para>The DNSSEC/DANE-enabled endpoints will not be available for use until March 2024, with general availability in July 2024.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DANERequired</maml:name>
        <maml:description>
          <maml:para>Specify this switch to print a warning if the DNSSEC/DANE-enabled MX endpoints are not in use. Without this switch, either the non-secure or secure MX names will be considered good.</maml:para>
          <maml:para>The DNSSEC/DANE-enabled endpoints will not be available for use until March 2024, with general availability in July 2024.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-ExchangeOnlineRecords contoso.com</dev:code>
        <dev:remarks>
          <maml:para>This will verify that the CNAME autodiscover.contoso.com is correct, the two DKIM CNAME and TXT records selector1._domainkey.contoso.com and selector2._domainkey.contoso.com are correct and valid, the MX record for contoso.com points to Exchange Online, the SPF TXT record for contoso.com is present and contains the Exchange Online include token, and the Sender ID record for contoso.com (if present) contains the include token for Exchange Online.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-AzureADClientConfigurationRecord</dev:code>
        <dev:remarks>
          <maml:para>For each domain, this will verify that the Autodiscover CNAME is correct, the two DKIM CNAME and TXT records are correct and valid, the MX record points to Exchange Online, the SPF record is present and contains the Exchange Online include: token, and the Sender ID record (if present) contains the include: token for Exchange Online.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-ExchangeOnlineRecords.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineAutodiscoverRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineDkimRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineSenderIdRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineMxRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineSpfRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-ExchangeOnlineSenderIdRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>ExchangeOnlineSenderIdRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Sender ID record, if present, is compatible with Exchange Online.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks for the presence and correctness of a Sender ID record, and makes sure that the token for Exchange Online (include:spf.protection.outlook.com) is allowing mail.</maml:para>
      <maml:para>This cmdlet is not meant to be a comprehensive Sender ID test. It only ensures that the Exchange Online token is present and set to pass. It does not check for other errors like typos, excessive DNS lookups, mis-use of the "mfrom" and/or "pra" mechanisms, or any other issue that might cause a TempError or PermError.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-ExchangeOnlineSenderIdRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Sender ID records are considered obsolete, in favor of SPF (TXT) records. You do not need to publish one, and absence of one will not cause this cmdlet print an error. In fact, not publishing one is considered best practice.</maml:para>
        <maml:para>However, if you do choose to publish a Sender ID record, this cmdlet will do its best to ensure that it is correct.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-ExchangeOnlineSenderIdRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the Sender ID record for contoso.com is either absent or contains the token "include:spf.protection.outlook.com" with a pass qualifier.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-ExchangeOnlineSenderIdRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the Sender ID records for contoso.com, fabrikam.com, and tailspintoys.com are either absent or contain the token "include:spf.protection.outlook.com" with a pass qualifier.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-ExchangeOnlineSenderIdRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineSpfRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-ExchangeOnlineSpfRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>ExchangeOnlineSpfRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's SPF record is compatible with Exchange Online.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks for the presence and correctness of the SPF TXT record, and makes sure that the SPF token for Exchange Online (include:spf.protection.outlook.com) is allowing mail.</maml:para>
      <maml:para>This cmdlet is not meant to be a comprehensive SPF test. It only ensures that the Exchange Online token is present and set to pass. It does not check for other errors like typos, excessive DNS lookups, records stored as the deprecated SPF RR type, or any other issue that might cause a TempError or PermError. For more information about Sender Policy Framework, please read RFC 7208.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-ExchangeOnlineSpfRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>SpfOrSenderID</maml:name>
          <maml:description>
            <maml:para>By default, this cmdlet will check a domain's SPF record. To check the deprecated Sender ID record, write Sender ID here.</maml:para>
            <maml:para>This switch is reserved for internal use, and should not be used by end users.</maml:para>
          </maml:description>
          <command:parameterValueGroup>
            <command:parameterValue required="false" command:variableLength="false">SPF</command:parameterValue>
            <command:parameterValue required="false" command:variableLength="false">Sender ID</command:parameterValue>
          </command:parameterValueGroup>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>SPF</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>SpfOrSenderID</maml:name>
        <maml:description>
          <maml:para>By default, this cmdlet will check a domain's SPF record. To check the deprecated Sender ID record, write Sender ID here.</maml:para>
          <maml:para>This switch is reserved for internal use, and should not be used by end users.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>SPF</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>When SPF was first introduced, it was intended that you put your SPF record into a DNS resource record of type SPF (99). This was deprecated in favor of the SPF TXT record. It is no longer recommended to have an SPF record with RR type SPF. Due to limitations, this cmdlet is only capable of evaluating the record type that matters, the TXT record.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-ExchangeOnlineSpfRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the SPF record for contoso.com is present and contains the token "include:spf.protection.outlook.com" with a pass qualifier.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-ExchangeOnlineSpfRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the SPF records for contoso.com, fabrikam.com, and tailspintoys.com are present and contain the token "include:spf.protection.outlook.com" with a pass qualifier.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-ExchangeOnlineSpfRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineSenderIdRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-Office365DNSRecords</command:name>
      <command:verb>Test</command:verb>
      <command:noun>Office365DNSRecords</command:noun>
      <maml:description>
        <maml:para>Verifies that all of a domain's Office 365 DNS records are correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet will check for the presence and correctness of all of one or more domains' DNS records that support all of Office 365's services, including Entra ID, Exchange Online, Microsoft Teams, and Skype for Business.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-Office365DNSRecords</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="China">
          <maml:name>Use21Vianet</maml:name>
          <maml:description>
            <maml:para>If your Office 365 tenant is hosted by 21Vianet, include this switch. Chinese customers must have the msoid attribute set to a special value.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DANERequired</maml:name>
          <maml:description>
            <maml:para>To make the use of the legacy MX endpoint (i.e., contoso-com.mail.protection.outlook.com) a warning instead of a passing message, include this parameter.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="China">
        <maml:name>Use21Vianet</maml:name>
        <maml:description>
          <maml:para>If your Office 365 tenant is hosted by 21Vianet, include this switch. Chinese customers must have the msoid attribute set to a special value.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DANERequired</maml:name>
        <maml:description>
          <maml:para>To make the use of the legacy MX endpoint (i.e., contoso-com.mail.protection.outlook.com) a warning instead of a passing message, include this parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Microsoft Entra ID used to be called Microsoft Azure Active Directory, and previous versions of this cmdlet reflected that.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-Office365DnsRecords contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the all of the DNS records for contoso.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-Office365DnsRecords</dev:code>
        <dev:remarks>
          <maml:para>Verifies that all of the DNS records for contoso.com, fabrikam.com, and tailspintoys.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 3 --------------------------</maml:title>
        <dev:code>PS C:\&gt; $error[0].ErrorDetails.RecommendedAction
Create a SRV record for _sipfederationtls._tcp.woodgrovebank.com (port 5061) pointing to sipfed.online.lync.com.</dev:code>
        <dev:remarks>
          <maml:para>Recommended actions are included in the error objects, though PowerShell doesn't display them by default. They can be retrieved through the $error automatic variables, as children of each $error's ErrorDetails object.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 4 --------------------------</maml:title>
        <dev:code>PS C:\&gt; Test-Office365DnsRecords woodgrovebank.com -InformationAction Continue

Create a CNAME record for msoid.woodgrovebank.com, pointing to clientconfig.microsoftonline-p.net.
Create a CNAME record for enterpriseenrollment.woodgrovebank.com, pointing to enterpriseenrollment.manage.microsoft.com.
Create a CNAME record for enterpriseregistration.woodgrovebank.com, pointing to enterpriseregistration.windows.net.
Create a CNAME record for autodiscover.woodgrovebank.com, pointing to autodiscover.outlook.com.
Create a CNAME record for selector1._domainkey.woodgrovebank.com. Look in the Exchange Admin Center to find the target.
Create a CNAME record for selector2._domainkey.woodgrovebank.com. Look in the Exchange Admin Center to find the target.
Create a CNAME record for lyncdiscoverwoodgrovebank.com, pointing to webdir.online.lync.com.
Create a CNAME record for sip.woodgrovebank.com, pointing to sipdir.online.lync.com.
Create a SRV record for _sip._tls.woodgrovebank.com (port 443) pointing to sipdir.online.lync.com.
Create a SRV record for _sipfederationtls._tcp.woodgrovebank.com (port 5061) pointing to sipfed.online.lync.com.</dev:code>
        <dev:remarks>
          <maml:para>Recommended actions are also sent to the information pipeline. You can show it on the screen with -InformationAction Continue, or redirect it (pipeline number six) to a file to view later.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-Office365DNSRecords.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-EntraIDJoinRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-ExchangeOnlineRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-TeamsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-TeamsAutodiscoverRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>TeamsAutodiscoverRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Teams/Skype for Business Autodiscover record is correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains for the presence and correctness of the Microsoft Teams/Skype for Business Online Autodiscover DNS record, named lyncdiscover. It should be a CNAME pointing to webdir.online.lync.com.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-TeamsAutodiscoverRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-AzureADClientConfigurationRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME record msoid.contoso.com is correct.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-AzureADClientConfigurationRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records msoid.contoso.com, msoid.fabrikam.com, and msoid.tailspintoys.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-TeamsAutodiscoverRecords.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-TeamsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-TeamsRecords</command:name>
      <command:verb>Test</command:verb>
      <command:noun>TeamsRecords</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Teams/Skype for Business DNS records are all correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains for the presence and correctness of the four Microsoft Teams/Skype for Business Online DNS records: the CNAME sip, the CNAME lyncdiscover, the SRV record for _sip._tls, and the SRV records for _sipfederationtls._tcp.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-TeamsRecords</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Some phone systems, as well as Skype for Business Server and Lync Server, may require these DNS records to be intentionally incorrect. Thus, incorrect DNS records may not print an error message, only a warning.</maml:para>
        <maml:para>This documentation uses Microsoft Teams, though these DNS records apply equally to Skype for Business Online.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-TeamsRecords contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records sip.contoso.com and lyncdiscover.contoso.com are correct; and that the first service returned by SRV record lookups for _sip._tls.contoso.com and _sipfederationtls._tcp.contoso.com point to Teams/Skype for Business Online.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-TeamsRecords</dev:code>
        <dev:remarks>
          <maml:para>For contoso.com, fabrikam.com, and tailspintoys.com; this will verify that the DNS CNAME records sip and lyncdiscover are correct, and that the first service returned by SRV record lookups for _sip._tls and _sipfederationtls._tcp point to Teams/Skype for Business Online.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-TeamsRecords.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-TeamsSipCnameRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-TeamsSipSrvRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-TeamsSipFederationSrvRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-TeamsAutodiscoverRecord</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-TeamsSipCnameRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>TeamsSipCnameRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Teams/Skype for Business SIP CNAME record is correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains for the presence and correctness of the Microsoft Teams/Skype for Business Online SIP CNAME record, named sip. It should be a CNAME pointing to sipdir.online.lync.com.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-TeamsSipCnameRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-TeamsSipCnameRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME record sip.contoso.com is correct.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-TeamsSipCnameRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records sip.contoso.com, sip.fabrikam.com, and sip.tailspintoys.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-TeamsSipCnameRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-TeamsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-TeamsSipFederationSrvRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>TeamsSipFederationSrvRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Teams/Skype for Business SIP federation DNS record is correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains for the presence and correctness of the Microsoft Teams and Skype for Business SIP federation service record. The highest-ranking SRV record for the service _sipfederationtls and the protocol _tcp must have a target of sipfed.online.lync.com, port 5061.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-TeamsSipFederationSrvRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>If you are using another SIP service in addition to Microsoft Teams or Skype for Business Online (such as an on-premises Skype for Business Server), then you might have extra _sipfederationtls._tcp SRV records. While not recommended, it is not incorrect, as long as the lowest-priority service is always the one for Microsoft Teams/Skype for Business Online.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-TeamsSipFederationSrvRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME record msoid.contoso.com is correct.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-AzureADClientConfigurationRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records msoid.contoso.com, msoid.fabrikam.com, and msoid.tailspintoys.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-TeamsSipFederationSrvRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-TeamsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Test-TeamsSipSrvRecord</command:name>
      <command:verb>Test</command:verb>
      <command:noun>TeamsSipSrvRecord</command:noun>
      <maml:description>
        <maml:para>Verifies that a domain's Teams/Skype for Business SIP-over-TLS service records are correct.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This cmdlet checks one or more domains for the presence and correctness of the Microsoft Teams and Skype for Business SIP service record. The highest-ranking SRV record for the service _sip and the protocol _tls must have a target of sipdir.online.lync.com, port 443.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Test-TeamsSipSrvRecord</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
          <maml:name>DomainName</maml:name>
          <maml:description>
            <maml:para>One or more domain names to check.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="0" aliases="Name">
        <maml:name>DomainName</maml:name>
        <maml:description>
          <maml:para>One or more domain names to check.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>One or more domain names to check. This cmdlet accepts pipeline input as well.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Bool</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>True if all DNS records are correct, false otherwise. If you pass multiple domain names to this cmdlet, the result will consider all domains; that is, if contoso.com is correct but fabrikam.com is not, the result will be false.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>If you are using another SIP service in addition to Microsoft Teams or Skype for Business Online, then you might have extra _sip._tls SRV records. While not recommended, it is not incorrect, as long as the lowest-priority service is always the one for Microsoft Teams/Skype for Business Online.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>C:\PS&gt; Test-AzureADClientConfigurationRecord contoso.com</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME record msoid.contoso.com is correct.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>C:\PS&gt; "contoso.com","fabrikam.com","tailspintoys.com" | Test-AzureADClientConfigurationRecord</dev:code>
        <dev:remarks>
          <maml:para>Verifies that the DNS CNAME records msoid.contoso.com, msoid.fabrikam.com, and msoid.tailspintoys.com are correct.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/rhymeswithmogul/Office365DNSChecker/blob/main/man/en-US/Test-TeamsSipSrvRecord.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-TeamsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>about_Office365DnsChecker</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Test-Office365DnsRecords</maml:linkText>
        <maml:uri></maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
</helpItems>