If you are uncertain about your server's ability to connect to Office 365 for the purposes of deploying Azure AD Connect or to local network resources for configuring a multi-forest deployment, you can attempt to use this tool to report on connectivity and name resolution success/failure.  For more information, read the blog at https://www.undocumented-features.com/2018/02/10/aad-connect-network-and-name-resolution-test/ or check out the entire history at https://www.undocumented-features.com/tag/aadnetwork/.

This script will attempt to test:

Updates:

Previous Updates

As always, please feel free to leave feedback, questions, errors, or leads on good pizza joints in the comments.

PowerShell
Edit|Remove
<# 
.SYNOPSIS 
Test basic system, connectivity, and name resolution compatibility for AAD Connect. 
 
.DESCRIPTION 
Use this script to test basic network connectivity to on-premises and 
online endpoints as well as name resolution. 
 
.PARAMETER ActiveDirectory 
Run Active Directory checks (Single Label Domain, NetBIOS domain, 
AD Recycle Bin enabled, Forest Functional Level) 
 
.PARAMETER AllTests 
Run all tests with default settings (ActiveDirectory, AzureADCredentialCheck, OnlineEndpoints  
with Commercial endpoints, Network, Dns, SystemConfiguration).  Can also set a Boolean FALSE 
for parameters. 
 
.PARAMETER AzureCredentialCheck 
Check the specified credential for Azure AD suitability (valid password, is a  
member of global administrators). 
 
.PARAMETER DCs 
Use this parameter to specify DCs to test against. Required if running on- 
premises network or DNS tests.  This is auto-populated from the LOGONSERVER 
environment variable.  If the server is not joined to a domain, populate this 
attribute with a DC for the domain/forest you will be configuration AAD Connect  
against. 
 
.PARAMETER DebugLogging 
Enable debug error logging to log file. 
 
.PARAMETER Dns 
Use this parameter to only run on-premises Dns tests. Requires FQDN and DCs  
parameters to be specified. 
 
.PARAMETER FixedDcRpcPort 
Use this optional parameter to specify a fixed Rpc port for DC communications.   
See https://support.microsoft.com/en-us/help/224196/restricting-active-directory-rpc-traffic-to-a-specific-port 
for more information. 
 
.PARAMETER InstallModules 
Use this parameter to install modules used during tests, including MSOnline,  
NuGet, PowerShell Gallery, Install-Module, and the Remote Server Administration  
Tools. 
 
.PARAMETER Logfile 
Self-explanatory. 
 
.PARAMETER Network 
Use this parameter to only run local network tests. Requires FQDN and DCs parameters 
to be specified if they are not automatically populated.  They may not be automatically  
populated if the server running this tool has not been joined to a domain.  That is a  
supported configuration; however, you will need to specify a forest FQDN and at least 
one DC. 
 
.PARAMETER OnlineEndPoints 
Use this parameter to conduct communication tests against online endpoints. 
 
.PARAMETER OnlineEndPointTarget 
Use this optional parameter to select GCC, Commercial, DOD, or GCC High environments. 
 
.PARAMETER OptionalADPortTest 
Use this optional parameter to specify ports that you may not need for communications. 
While the public documentation says port 88 is required for Kerberos, it may not be used 
in certain circumstances (such as adding an AD connector to a remote forest after AAD 
connect has been intalled).  Optional ports include: 
- 88 (Kerberos) 
- 636 (Secure LDAP) 
- 3269 (Secure Global Catalog) 
 
You can enable secure LDAP after the AAD Connect installation has completed. 
 
.PARAMETER SkipDcDnsPortCheck 
If you are not using DNS services provided by the AD Site / Logon DC, then you may want 
to skip checking port 53.  You must still be able to resolve ._ldap._tcp.<forestfqdn> 
in order for the Active Directory Connector configuration to succeed. 
 
.PARAMETER SystemConfiguration 
Report on system configuration items, including installed Windows Features, TLS 
registry entries and proxy configurations. 
 
.EXAMPLE 
.\AADConnect-CommunicationsTest.ps1 
Runs all tests and writes to default log file location (YYYY-MM-DD_AADConnectivity.txt) 
 
.EXAMPLE 
.\AADConnect-CommunicationsTest.ps1 -Dns -Network 
Runs Dns and Network tests and writes to default log file location (YYYY-MM-DD_AADConnectivity.txt). 
 
.EXAMPLE 
.\AADConnect-CommunicationsTest.ps1 -OnlineEndPoints -OnlineEndPointTarget DOD 
Runs OnlineEndPoints test using the U.S. Department of Defense online endpoints list 
and writes to default log file location (YYYY-MM-DD_AADConnectivity.txt). 
 
.EXAMPLE 
.\AADConnect-CommunicationsTest.ps1 -AzureCredentialCheck -Network -DCs dc1.contoso.com -ForestFQDN contoso.com 
Runs Azure Credential Check and local networking tests using DC dc1.contoso.com and  
the forest contoso.com and writes to the default log file location  
(YYYY-MM-DD_AADConnectivity.txt). 
 
.EXAMPLE 
.\AADConnect-CommunicationsTest.ps1 -AllTests -Network:$false 
Run All system tests using defaults, excluding Network tests. 
 
.LINK  
https://www.undocumented-features.com/2018/02/10/aad-connect-network-and-name-resolution-test/ 
 
.LINK 
https://aka.ms/aadnetwork 
 
.NOTES 
- 2019-03-12    Restructured how parameters are processed using PSBoundParameters. 
                Removed SkipAzureADCredentialCheck parameter. 
                Added additional error trapping around Resolve-DnsName. 
                Refreshed endpoints for AAD. 
                Added AllTests parameter.  AllTests also supports setting specific tests to Boolean FALSE. 
- 2018-10-28    Updated InstallModules param checking. 
- 2018-10-24    Initial release checking RSOP data for PowerShell Transcription GPO. 
- 2018-09-14    Added check for installation edition (server, server core, client, nano) based on https://docs.microsoft.com/en-us/windows/desktop/CIMWin32Prov/win32-operatingsystem. 
- 2018-08-30    Added -InstallModules switch. 
- 2018-07-30    Removed single-label domain references. 
- 2018-07-23    Added supported AD forest modes in System Configruation. 
                Added AD Recycle Bin configuration check. 
                Added ActiveDirectory parameter. 
- 2018-07-17    Updated Commerical/GCC endpoints: 
                $CRL += http://ocsp.msocsp.com 
                $RequiredResources += adminwebservice-s1-co2.microsoftonline.com 
                $RequiredResourcesEndpoints += https://adminwebservice-s1-co2.microsoftonline.com/provisioningwebservice.svc 
- 2018-06-15    Fixed Windows 2016 detection display issue. 
                 Fixed issue querying PowerShell Transcription. 
- 2018-06-14    Updated query for system.net/defaultproxy/proxy. 
                Added reg key for Wow6432Node/SchUseStrongCrypto for TLS 1.2. 
                Added OS-specific support for determining .NET versions. 
                Added OS-specific registry keys to test for TLS 1.2 configuration. 
- 2018-04-05    Removed proxy.cloudwebappproxy.net from Seamless SSO endpoint test. 
- 2018-04-03    Updated endpoints for Seamless SSO. 
- 2018-04-03    Added endpoints management.core.windows.net, s1.adhybridhealth.azure.com 
- 2018-04-02    Added endpoints for Seamless SSO. 
- 2018-02-16    Added optional port for Secure Global Catalog (3269) 
- 2018-02-14    Added FixedDcRpcPort, OptionalADPortTest, SystemConfiguration parameters 
- 2018-02-14    Added test for servicebus.windows.net to online endpoints 
- 2018-02-14    Expanded system configuration tests to capture TLS 1.2 configuration 
- 2018-02-14    Expanded system configuration tests to capture required server features 
- 2018-02-13    Added OnlineEndPointTarget parameter for selecting Commercial, GCC, DOD, or GCC high. 
- 2018-02-13    Added proxy config checks. 
- 2018-02-12    Added additional CRL/OCSP endpoints for Entrust and Verisign. 
- 2018-02-12    Added additional https:// test endpoints. 
- 2018-02-12    Added DebugLogging parameter and debug logging data. 
- 2018-02-12    Added extended checks for online endpoints. 
- 2018-02-12    Added check for Azure AD credential (valid/invalid password, is Global Admin) 
- 2018-02-12    Updated parameter check when running new mixes of options. 
- 2018-02-11    Added default values for ForestFQDN and DCs. 
- 2018-02-11    Added SkipDcDnsPortCheck parameter. 
- 2018-02-10    Resolved issue where tests would run twice under some conditions. 
- 2018-02-09    Initial release. 
#>