{"id":18302398,"url":"https://github.com/rhymeswithmogul/office365dnschecker","last_synced_at":"2025-09-10T20:40:48.550Z","repository":{"id":135521163,"uuid":"219936996","full_name":"rhymeswithmogul/Office365DnsChecker","owner":"rhymeswithmogul","description":"A PowerShell module to verify that your Office 365 DNS records have been set up correctly.","archived":false,"fork":false,"pushed_at":"2024-01-25T02:53:38.000Z","size":511,"stargazers_count":11,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T06:01:37.418Z","etag":null,"topics":["365lookup","autodiscover","autodiscover-service","azure-active-directory","cmdlet","cmdlets","dkim","dns-records","exchange-online","microsoft-teams","office-365","office365","powershell","pwsh","sender-policy-framework","senderid","sip","skype-for-business","spf","spf-record"],"latest_commit_sha":null,"homepage":"https://powershellgallery.com/packages/Office365DnsChecker","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhymeswithmogul.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt"}},"created_at":"2019-11-06T07:28:57.000Z","updated_at":"2025-03-17T14:40:36.000Z","dependencies_parsed_at":"2024-01-25T03:27:49.856Z","dependency_job_id":null,"html_url":"https://github.com/rhymeswithmogul/Office365DnsChecker","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhymeswithmogul%2FOffice365DnsChecker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhymeswithmogul%2FOffice365DnsChecker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhymeswithmogul%2FOffice365DnsChecker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhymeswithmogul%2FOffice365DnsChecker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhymeswithmogul","download_url":"https://codeload.github.com/rhymeswithmogul/Office365DnsChecker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247352639,"owners_count":20925308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["365lookup","autodiscover","autodiscover-service","azure-active-directory","cmdlet","cmdlets","dkim","dns-records","exchange-online","microsoft-teams","office-365","office365","powershell","pwsh","sender-policy-framework","senderid","sip","skype-for-business","spf","spf-record"],"created_at":"2024-11-05T15:19:49.624Z","updated_at":"2025-04-05T14:31:28.679Z","avatar_url":"https://github.com/rhymeswithmogul.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PowerShell Gallery Version (including pre-releases)](https://img.shields.io/powershellgallery/v/Office365DnsChecker?include_prereleases)](https://powershellgallery.com/packages/Office365DnsChecker/) [![PowerShell Gallery](https://img.shields.io/powershellgallery/dt/Office365DnsChecker)](https://powershellgallery.com/packages/v/Office365DnsChecker)\r\n\r\n# Office365DnsChecker\r\nOffice365DnsChecker will check one or more domains, to make sure that their current DNS records are set up correctly and completely for Office 365.\r\n\r\n\u003cimg src=\"https://raw.githubusercontent.com/rhymeswithmogul/Office365DnsChecker/main/Logo/Office365DnsChecker.png\" alt=\"Office365DnsChecker logo\" width=\"432\" height=\"300\" style=\"margin:0 auto\"\u003e\r\n\r\n## System Requirements\r\nThis module requires Windows PowerShell 5.1 or greater.  It works great on PowerShell 7, and supports constrained language mode.\r\n\r\nAdditionally, Linux users will need to install the app `dig` (part of [`bind-utils`](https://github.com/tigeli/bind-utils)).  It is installed by default on macOS (at least in High Sierra).\r\n\r\n## Installation\r\nYou can clone this repository and put it in your `$PSModulePath`, or grab it from PSGallery:\r\n````powershell\r\nInstall-Module -Name Office365DnsChecker\r\n````\r\n\r\n## Usage\r\nYou can check all applicable Office 365 DNS records at once with the cmdlet `Test-Office365DnsRecords`:\r\n````powershell\r\nPS C:\\\u003e Test-Office365DnsRecords \"contoso.com\"\r\n````\r\n\r\nThese cmdlets also accept pipeline input.  If you're logged into Exchange Online, use the following command to test all of your organization's domains.\r\n````powershell\r\nPS C:\\\u003e Get-AcceptedDomain | Test-Office365DnsRecords\r\n````\r\n\r\n### Advanced Usage\r\nYou can also check individual services:\r\n- `Test-EntraIDRecords`\r\n- `Test-ExchangeOnlineRecords`\r\n- `Test-TeamsRecords` (or `Test-SkypeForBusinessOnlineRecords`)\r\n\r\nOr, you can even check individual DNS records:\r\n- `Test-EntraIDClientConfigurationRecord` to check the `msoid` CNAME.\r\n- `Test-EntraIDEnterpriseEnrollmentRecord` to check the `enterpriseenrollment` CNAME.\r\n- `Test-EntraIDEnterpriseRegistrationRecord` to check the `enterpriseregistration` CNAME.\r\n- `Test-ExchangeOnlineAutodiscoverRecord` to check both the existence of the `autodiscover` CNAME, and the non-existence of `_autodiscover._tcp` \u003cabbr title=\"service\"\u003eSRV\u003c/abbr\u003e records.\r\n- `Test-ExchangeOnlineDkimRecords` to check the `selector1` and `selector2` DKIM records.\r\n- `Test-ExchangeOnlineMxRecord` to check the domain's MX record(s) and whether or not they support DANE.\r\n- `Test-ExchangeOnlineSenderIdRecord` to check the domain's [Sender ID](https://tools.ietf.org/html/rfc4406) record, if present.\r\n- `Test-ExchangeOnlineSpfRecord` to check the domain's [\u003cabbr title=\"Sender Policy Framework\"\u003eSPF\u003c/abbr\u003e](https://tools.ietf.org/html/rfc7208) \u003cabbr title=\"text\"\u003eTXT\u003c/abbr\u003e record.\r\n- `Test-TeamsAutodiscoverRecord` to check the `lyncdiscover` CNAME.\r\n- `Test-TeamsSipCnameRecord` to check the `sip` CNAME.\r\n- `Test-TeamsSipSrvRecord` to check the `_sip._tls` \u003cabbr title=\"service\"\u003eSRV\u003c/abbr\u003e record(s).\r\n- `Test-TeamsSipFederationSrvRecord` to check the `_sipfederationtls._tcp` \u003cabbr title=\"service\"\u003eSRV\u003c/abbr\u003e record(s).\r\n\r\n### Identifying problems\r\nWhen you run one of this module's commands, the corresponding DNS records are retrieved and evaluated.  In case of an incorrect record, a warning or an error may be printed to the screen, telling you which records are wrong or missing.\r\n\r\nIf an error is printed, you can retrieve the error object through the `$error` automatic variable, just like PowerShell supports normally:\r\n\r\n````powershell\r\n$error[0].ErrorDetails\r\n````\r\n\r\n### Getting help for resolving problems\r\nIn addition, basic steps to resolving the error may be available through the information pipeline. You can make this information visible by regular means such as specifying `-InformationAction Continue`, setting `$InformationPreference`, or redirecting the information pipeline (six).  This information is also available in the error object's details.\r\n\r\n````powershell\r\n# this works.\r\nTest-Office365DnsRecords \"contoso.com\" -InformationAction Continue\r\n\r\n# this also works.\r\nTest-Office365DnsRecords \"contoso.com\" 6\u003e howtofixcontoso.txt\r\n\r\n# this works, too.\r\n$error[0].ErrorDetails.RecommendedAction\r\n````\r\n\r\nWhile the included one- or two-sentence tips may be useful for giving Office 365 administrators some idea on how to fix any DNS problems, you should still consult the [Microsoft 365 Admin Center](https://admin.microsoft.com)'s Domains page, which will tell you all but exactly how to fix your DNS records in common scenarios.\r\n\r\nIn some cases, DNS records may intentionally be incorrect -- for example, if you have a third-party spam filter sitting in front of Exchange Online that requires custom MX records; or, if you have an on-premises Skype for Business Server that requires your Teams-/Skype-related DNS CNAME records to be incorrect intentionally.  Please consult your IT department or your local \u003cabbr title=\"Microsoft Certified Solution Expert\"\u003eMCSE\u003c/abbr\u003e to make sure that following this module's generic advice won't interrupt your company's operations.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhymeswithmogul%2Foffice365dnschecker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhymeswithmogul%2Foffice365dnschecker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhymeswithmogul%2Foffice365dnschecker/lists"}