HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Autopilot Windows AutopilotMicrosoft Entra hybrid joinIntuneActive Directory802.1XVPNOOBEODJ ConnectorNetworkingPowerShell

Hybrid Autopilot Needs a Domain Controller in OOBE, and 802.1X, Wireless-Only Sites and VPN Branches All Break That

IA
Imran Awan
21 August 2026

Microsoft Entra hybrid join through Windows Autopilot carries one requirement that reads like a footnote and behaves like a wall. Partway through the out-of-box experience (OOBE), the device itself has to reach an on-premises Active Directory domain controller. Not the Intune Connector for Active Directory. The new device, on whatever network the end user plugged it into. That single requirement is why hybrid Autopilot works beautifully in the lab next to the server rack and fails at the branch office, on the 802.1X-protected floor port, and in the office that has no wired ports left at all.

The short version

Microsoft documents that a hybrid Autopilot device must be on the internal network with access to a domain controller, must resolve the DNS records for the domain and its domain controllers, and must talk to a domain controller to authenticate the user. Autopilot enforces part of this by pinging a domain controller. The device has no domain credential and no certificate at that moment, which is exactly why 802.1X ports, wireless-only sites and VPN-dependent branches break the flow. The honest options are a wired provisioning network, the documented VPN path with Skip AD connectivity check, or Microsoft Entra join instead. Pre-provisioning does not remove the requirement, it moves it.

The problem: the device needs a domain controller, not just the internet

Start with what Microsoft actually writes down. The Windows Autopilot networking requirements page has a short section on hybrid join. It says the device can be hybrid joined, and then adds one blunt sentence: "The computer should be on the internal network for Microsoft Entra hybrid join to work."

The user-driven mode article is more specific. After listing the core requirements for hybrid join, it adds extra requirements that apply to on-premises devices. The device is connected to the internal network and has access to an Active Directory domain controller. It needs to resolve the DNS records for the domain and the domain controllers. It needs to communicate with the domain controller to authenticate the user.

The hybrid join article repeats it as an enrollment requirement in even plainer language. The device must have access to an Active Directory domain controller, and it must "successfully ping the domain controller of the domain being joined."

That last one is not decoration. Microsoft documents that the flow tests it: "The Windows Autopilot user-driven process for Microsoft Entra hybrid joined devices validates that the device can contact a domain controller by pinging that domain controller." An ICMP block on the path to your domain controllers is enough to fail a deployment where LDAP and Kerberos are wide open.

Context: Microsoft's own guidance on this scenario is not neutral. Both the requirements page and the hybrid join article carry the same note: "Microsoft recommends deploying new devices as cloud-native using Microsoft Entra join. Deploying new devices as Microsoft Entra hybrid join devices isn't recommended, including through Windows Autopilot." If you are choosing hybrid for new devices, you are choosing it against the vendor's advice. The network requirement below is a large part of why that advice exists.

So the requirement is a chain, not a single check. DNS has to answer for the domain. DNS has to answer for the domain controller host names. The domain controllers have to be routable. ICMP has to survive the path. Then Kerberos, LDAP and SMB have to work well enough to authenticate a user who has never signed in on this device before. Break any link and the deployment fails, usually with a generic OOBE error that names none of this.

Three common enterprise network designs break that chain by construction.

TopologyWhat the device getsWhy hybrid join fails
802.1X-protected wired portsEither no link authorisation at all, or a quarantine or guest VLANThe device has no machine certificate and no domain credential to present at link-up, so it never lands on a VLAN that routes to a domain controller
Wireless-first office, no usable wired portsA guest SSID with internet, or a corporate SSID it cannot authenticate toGuest wireless satisfies the internet requirement and fails the internal-network requirement, so Autopilot looks healthy and then fails at domain join
Branch or home site reachable only over VPNInternet, and no route to the domain until a tunnel existsThe tunnel that would provide the route is delivered by Intune policy, which arrives after enrollment, which is after the domain controller is needed

Why it happens: the blob arrives before the device can authenticate anyone

To see why the timing is the hard part, walk the user-driven hybrid sequence as Microsoft documents it. The device connects to a network. It downloads its Autopilot profile. The user enters Microsoft Entra credentials. The device joins the directory according to the profile. It enrolls in Intune, and for hybrid join that enrollment happens before the Active Directory join. Then the domain join runs, the device reboots, and the user signs in with their Active Directory credentials.

The domain join itself does not need the device to talk to Active Directory. That is the whole point of the connector. Microsoft describes it this way: "The Intune Connector for Active Directory, also known as the Offline Domain Join (ODJ) Connector, joins computers to an on-premises domain during the Windows Autopilot process. The connector creates computer objects in a specified Organizational Unit (OU) in Active Directory during the domain join process."

The connector runs on a domain-joined Windows Server inside your network. It has line of sight to Active Directory because it lives there. It creates the computer object, produces an offline domain join blob, and Intune delivers that blob to the device over the internet. At that instant the device is a domain member on paper. It has a computer object and a machine secret. What it does not have is a single cached user credential.

That is where the network requirement bites. Microsoft states the reason directly: "Devices joined to Active Directory require connectivity to an Active Directory domain controller for many activities. These activities include validating the user's credentials when they sign-in, and applying group policy settings." The next interactive event after the reboot is a user signing in with an Active Directory account on a device that has never seen that account. There is nothing cached to fall back on. A domain controller has to answer, live, right then.

The same documentation confirms this is a first-sign-in problem specifically: "Once the user signs in and their credentials are cached, subsequent sign-in attempts don't need connectivity since Windows uses the cached credentials." Day two is easy. Day one is the problem.

The credential-availability constraint, and what it tells you about 802.1X

Microsoft draws a clear line about what can and cannot be delivered before that first sign-in. In the VPN support section for hybrid Autopilot, it lists configurations that are not supported "because they aren't applied until the user signs into Windows." The two examples given are user certificates and non-Microsoft Universal Windows Platform (UWP) VPN plug-ins from the Windows Store. The hybrid join article adds DirectAccess and, in its own words, "anything that requires a user cert" to the known-not-to-work list.

Gotcha: Microsoft does not publish a statement about IEEE 802.1X specifically for hybrid Autopilot OOBE. It is not in the Autopilot requirements page, the hybrid join article, the user-driven article, or the known issues list. Anything you read that quotes Microsoft as saying "802.1X is unsupported during Autopilot" is quoting something that does not exist. What follows is reasoning from the documented credential-availability constraint. I am labelling it as reasoning rather than dressing it up as a citation.

Every 802.1X authentication method needs a credential at link-up time. Certificate methods need a certificate. Password methods need an account. Machine authentication needs a domain machine credential the supplicant can actually use for network authentication. A factory-fresh Autopilot device at the start of OOBE has none of those. It has no Intune-issued device certificate, because certificate profiles are Intune policy and policy arrives after enrollment. It has no user context, because no user has signed in. And the machine secret that arrives with the offline domain join blob arrives after the network connection has already been required.

Intune can absolutely configure 802.1X. There is a Wi-Fi profile and a Wired Network profile for Windows, and the wired one governs whether the Wired AutoConfig service requires 802.1X for port authentication. Both are policy. Both land after enrollment. Neither can authenticate the link that has to exist before they can be delivered. That is the shape of the problem: the thing that would fix the network is delivered over the network.

Wireless-first sites hit a variant of the same wall, plus one documented quirk. The Autopilot profile setting that skips the language and keyboard pages does not work over wireless. Microsoft is explicit: "Language and keyboard settings requires ethernet connectivity. Wi-fi connectivity isn't supported because of the requirement to select a language, locale, and keyboard to make that Wi-fi connection." A user has to pick a language before they can pick an SSID. If the only SSID they can join is a pre-shared-key guest network, they get the internet and no route to a domain controller.

Watch out: the profile option Skip AD connectivity check does not create connectivity. Microsoft's Graph documentation for the property behind it, hybridAzureADJoinSkipConnectivityCheck, describes it as making the Autopilot hybrid join flow "continue even if it does not establish domain controller connectivity during OOBE." The user-driven article says the same thing in words: "This change doesn't eliminate the need for communicating with a domain controller." Turning it on for an on-premises deployment fixes nothing. It deletes your early, cheap failure and hands you a late, expensive one at the sign-in screen instead.

Pre-provisioning does not remove the requirement

Pre-provisioning is often sold internally as the answer to this problem. It is not, and Microsoft says so in both directions on the same page. On the technician side, the pre-provisioning article notes that because a partner or OEM runs the process, it "doesn't require access to an end-user's on-prem domain infrastructure", because "the device is resealed before the time when connectivity to a domain controller is expected." Then it finishes the thought honestly: "Instead the domain network is contacted when the device is unboxed on-premises by the end-user."

The user flow section confirms it: "Connect to a network (if using Wi-Fi). Internet access is always required. If using Microsoft Entra hybrid join, there must also be connectivity to a domain controller." Pre-provisioning shifts the domain controller requirement from the technician's bench to the end user's desk. If the end user's desk is the problem, pre-provisioning has not helped.

How to verify: test the provisioning network as a joining device sees it

Test the network, not your laptop. That distinction matters more than anything else in this article. It is the most common reason a team declares a site ready and then watches ten deployments fail. Your laptop is already domain joined. It holds a machine credential, it may hold a machine certificate, and on an 802.1X port it will authenticate with them. A factory-fresh device has none of that. Test from a machine that is not domain joined, on the same port type and the same SSID a real device would use.

Tip: you can do this from inside OOBE itself. Microsoft documents the shortcut in the Autopilot troubleshooting FAQ: "Select Shift-F10 to open a command prompt window." That gives you a shell on the exact device, on the exact network, in the exact phase that fails. Nothing else reproduces the conditions as faithfully.

Start with domain controller discovery. A joining device finds domain controllers by querying an SRV record, so query the same record by hand. Microsoft's verification article documents the exact lookup and what a healthy answer looks like, including the priority, weight and port 389 in the response.

Command Prompt — Shift+F10 during OOBE, on the provisioning VLAN
nslookup -type=SRV _ldap._tcp.dc._msdcs.contoso.com # Healthy: one SRV row per domain controller, each with port = 389 and a host name. # Broken: "Non-existent domain". That means an internet-only DHCP resolver, # split-brain DNS, or an 802.1X quarantine VLAN. Stop here and fix DNS first. ping dc01.contoso.com # This is the check Autopilot itself performs for hybrid join. If ICMP is filtered # on the path, the deployment fails even with LDAP and Kerberos fully open. powershell -Command "Test-NetConnection dc01.contoso.com -Port 389" # TcpTestSucceeded : True is what you want. False on 389, 88 or 445 means the # first interactive sign-in after the reboot cannot reach a domain controller.

If discovery works, check the ports a domain client actually needs. Microsoft's service and network port requirements article is the authority here, and it also states the general rule for Group Policy: "To successfully apply Group Policy, a client computer must be able to contact a domain controller over the Kerberos, LDAP, SMB, and RPC protocols."

Tested against every host returned by _ldap._tcp.dc._msdcs.<domain>
PortProtocol and serviceWhy the join needs it
88TCP and UDP, KerberosAuthenticating the user at the first interactive sign-in after the domain join reboot
389TCP and UDP, LDAP serverDomain controller location and directory queries; Microsoft also lists UDP 389 as the DC Locator port
445TCP, SMBThe Net Logon secure channel and Group Policy retrieval from SYSVOL
135TCP, RPC endpoint mapperThe RPC protocol that Group Policy application requires alongside Kerberos, LDAP and SMB
464TCP and UDP, Kerberos password changeNeeded if the user must change an expired password at that first sign-in
3268TCP, global catalogCross-domain lookups in a multi-domain forest

Time is the third silent failure. Kerberos rejects tickets outside its clock tolerance, and a device fresh from a factory carton can be badly out. Microsoft's Autopilot guidance for clock problems tells you to boot to OOBE, establish a network connection, and run w32tm /resync /force against time.windows.com. Measure the offset first, so you know whether it was ever the problem.

Once you know what to test, stop testing it by hand at every site. The companion script does the whole chain in one pass and prints a verdict.

PowerShell — on a non-domain-joined machine on the candidate VLAN
.\Test-HybridJoinNetworkReadiness.ps1 -DomainName contoso.com # Read-only. Resolves the DC locator SRV record, resolves each DC host name, # pings each DC, tests Kerberos/LDAP/SMB/RPC, and measures the clock offset. # No domain join is attempted and nothing is written anywhere. .\Test-HybridJoinNetworkReadiness.ps1 -DomainName contoso.com -CheckAutopilotProfile # Adds a read-only Graph GET that reports Skip AD connectivity check per profile. # Prompts before installing Microsoft.Graph.Authentication, and exits 1 rather # than hanging if the session is non-interactive without -InstallModule.

The diagnostic surface after a failure

When a deployment has already failed, three places hold evidence. The Autopilot profile settings the device received are written to the registry, and Microsoft documents the key and its values.

HKLM\SOFTWARE\Microsoft\Provisioning\Diagnostics\Autopilot
Registry Editor
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Provisioning
Diagnostics\Autopilot
CloudAssignedTenantDomain   REG_SZ   contoso.onmicrosoft.com
CloudAssignedTenantId      REG_SZ   {aaaaaaaa-0b0b-1c1c-2d2d-333333333333}
IsAutopilotDisabled        REG_DWORD 0x00000000
TenantMatched              REG_DWORD 0x00000001
CloudAssignedOobeConfig     REG_DWORD 0x0000001c
ValueWhat it holdsWhat it rules in or out
CloudAssignedTenantDomainThe Entra tenant the device is registered with; blank if the device is not registered with AutopilotBlank means the profile never landed, so the failure is upstream of any domain question
CloudAssignedTenantIdThe GUID of the tenant the device registered withConfirms the device pulled a real profile rather than a cached blank one
AadTenantIdThe GUID of the tenant the signing-in user belongs toA mismatch against CloudAssignedTenantId produces a user-facing error, not a domain join error
IsAutopilotDisabledSet to 1 when the device is not registered with AutopilotMicrosoft notes this can also mean the profile could not be downloaded because of network, firewall or timeout problems
TenantMatched1 if the user tenant matches the registration tenant0 means the user is shown an error and forced to start over; again not a domain reachability fault
CloudAssignedOobeConfigA bitmap showing which Autopilot OOBE settings were configuredConfirms the profile that actually arrived matches the profile you think you assigned

Autopilot's own event log is the second place. Microsoft documents the channel as Application and Services Logs, then Microsoft, then Windows, then ModernDeployment-Diagnostics-Provider, then Autopilot.

Applications and Services Logs › Microsoft › Windows › ModernDeployment-Diagnostics-Provider › Autopilot
Event Viewer — Autopilot operational log
Information   164   AutopilotManager determined Internet is available to attempt policy download.
Information   161   AutopilotManager retrieve settings succeeded.
Warning       100   Autopilot policy [name] not found.
Information   153   AutopilotManager reported the state changed from ProfileState_Unknown to ProfileState_Available.
Error         815   ZtdDeviceHasNoAssignedProfile - No profile assigned to the device, and no default profile found in the tenant.
Event IDTypeDocumented meaning
100WarningAutopilot policy not found; typically transient while the device waits for a profile download
101, 103, 109, 111InformationNumeric settings, string settings, state settings and overall settings retrieval succeeded
153InformationState change, usually ProfileState_Unknown to ProfileState_Available, meaning a profile downloaded
160, 161InformationSettings acquisition beginning, then retrieve settings succeeded
163InformationDownload not required because the device is already provisioned; clean or reset to change this
164InformationInternet determined to be available for policy download
171, 172ErrorFailed to set TPM identity confirmed, and the related failure to mark the profile available
807ErrorZtdDeviceIsNotRegistered; validate the hardware hash upload and the profile assignment
809, 815ErrorZtdDeviceHasNoAssignedProfile, either a deleted profile or no profile and no tenant default
908ErrorSerialNumberMismatch or ProductKeyIdMismatch between the Autopilot record and the hardware
Gotcha: notice what is missing from that catalog. There is no documented Autopilot event ID that says "domain controller unreachable". The channel above tracks profile download and registration, not domain join. For the join itself, read the connector's own log, which Microsoft documents at Applications and Services Logs, then Microsoft, then Intune, then ODJConnectorService, with Admin and Operational sub-logs. And be careful with error 0x80070774. It is widely repeated online as "cannot reach the domain controller", but Microsoft's troubleshooting FAQ attributes it to something else entirely: "a domain mismatch between where the Intune Connector for Active Directory is installed and where device configurations are targeted."

The fix: pick a topology the documented flow supports

There is no setting that makes a device reach a domain controller it cannot route to. There are four real options, and choosing between them is a network and identity decision, not an Intune one.

Option 1: a wired provisioning network

Give provisioning its own wired VLAN that routes to at least one domain controller, permits ICMP to it, and does not demand 802.1X of an unauthenticated device. Whether that means MAC authentication bypass, a dedicated non-authenticating port profile, or a staffed provisioning bench is a decision for your network team. Microsoft does not document an 802.1X exemption pattern for Autopilot, so treat any specific configuration as your own design and validate it with the script rather than assuming it works.

If a proxy sits in front of that VLAN, one documented requirement applies directly. The hybrid join enrollment requirements state that if you use a proxy, the "Web Proxy Auto-Discovery Protocol (WPAD) Proxy settings option must be enabled and configured." The Autopilot requirements page adds that proxy settings for Autopilot "should be configured on the proxy server itself" and that implementing them via Intune policy "isn't fully supported."

Option 2: the documented VPN path

For remote and VPN-only sites, Microsoft supports a specific pattern. You turn off the connectivity pre-check, and you deliver a device-level VPN that can connect before anyone signs in.

intune.microsoft.comDevices › WindowsEnrollmentDeployment Profiles
  1. Sign in to the Microsoft Intune admin center.
  2. In the Home screen, select Devices in the left hand pane.
  3. In Devices | Overview, under By platform, select Windows.
  4. In Windows | Windows devices, under Device onboarding, select Enrollment.
  5. Under Windows Autopilot, select Deployment Profiles.
  6. Select Create Profile, then Windows PC.
  7. On the Basics page, enter a name and description, then select Next.
  8. On the Out-of-box experience (OOBE) page, set Deployment mode to User-driven.
  9. Set Join to Microsoft Entra ID as to Microsoft Entra hybrid joined. Several options below it change.
  10. Set Skip AD connectivity check to No for on-premises deployments, or to Yes only for the VPN scenario.
  11. Note that Apply device name template is greyed out for hybrid join. Naming comes from the Domain Join profile instead, and it supports a prefix only, not macros such as %SERIAL%.
  12. Complete the Assignments page against a device group, then Review + Create.

Then deliver the VPN. Microsoft lists the VPN clients it has tested and validated for this scenario: the in-box Windows VPN client, plus Win32 clients for Cisco AnyConnect, Pulse Secure, GlobalProtect, Checkpoint, Citrix NetScaler, SonicWall and FortiClient VPN. It also lists what is known not to work: UWP-based VPN plug-ins, anything requiring a user certificate, and DirectAccess. Bring-your-own VPN configurations are not supported during Autopilot in pre-provisioning mode.

Validate the VPN on an already hybrid joined device before you trust it in OOBE. Microsoft's documented validation is worth following literally, because it tests the one property that matters. Does the tunnel exist at the sign-in screen, or only after it?

PowerShell — on an existing hybrid joined device (run elevated)
Get-VpnConnection -AllUserConnection # Healthy: at least one per-machine connection listed. A user-scoped connection # here means nothing exists at the sign-in screen, which is where you need it. RASDIAL.EXE "ConnectionName" # Confirms the tunnel can be started outside a user session. Then sign out and # check the VPN icon appears on the Windows sign-in page, move the device off # the internal network, and sign in with an account that has no cached # credentials on that device.

Option 3: get the Domain Join profile right

The domain name and organizational unit the connector uses come from an Intune configuration profile, not from the Autopilot profile.

intune.microsoft.comDevices › Manage devices | ConfigurationPolicies › CreateTemplates › Domain Join
  1. In the Microsoft Intune admin center, select Devices, then Manage devices | Configuration, then Policies, then Create, then New Policy.
  2. Set Platform to Windows 10 and later.
  3. Set Profile type to Templates, choose the template named Domain Join, then select Create.
  4. Enter a name and description, then select Next.
  5. Provide a Computer name prefix and the Domain name. The domain name must match the domain your connector serves.
  6. Optionally provide an Organizational unit in distinguished name format, for example OU=SubOU,OU=TopLevelOU,DC=contoso,DC=com. Do not wrap it in quotation marks, do not specify a container such as CN=Computers, and always include the DC= attributes.
  7. Select OK, then Create.
  8. Assign the profile to the same device group that carries the Autopilot deployment profile.
Context: there is no Group Policy equivalent for either of these profiles. Autopilot domain join is configured only in Intune, through the Autopilot deployment profile and the Domain Join template. Group Policy arrives after the device is a domain member, which is after everything discussed in this article has already succeeded or failed. If you are looking for a GPO to fix a hybrid Autopilot network problem, there is not one.

Option 4: stop doing hybrid join for new devices

This is the option that actually removes the requirement, and it is the one Microsoft recommends. Microsoft Entra join needs internet connectivity and nothing on-premises. The user-driven article says it plainly: "Microsoft Entra join is available if devices don't need to join an on-premises Active Directory domain."

One consequence is worth knowing if you are weighing the newer provisioning stack. Windows Autopilot device preparation does not support hybrid join at all. Its requirements list a single line on identity: "Microsoft Entra ID - only Microsoft Entra join is supported." Every improvement shipping in that stack is unavailable to hybrid deployments by design.

Proof it worked: a network that passes and one that does not

Here is the script refusing to produce a comforting answer on a network with no route to the target domain. This is a real run, with the host name and the joined domain redacted.

PowerShell 5.1 — real run, identifiers redacted, exit code 1
Hybrid join network readiness test (read-only) Target domain : contoso.local Run from host : HOSTNAME PowerShell edition : 5.1.26100.9168 === Step 0 - context of this test host === WARN This host is already joined to DOMAIN. It holds a machine credential a factory-fresh device does not, so it can pass port-level 802.1X where a new device fails. Re-test from a non-joined machine for a true result. === Step 1 - DNS resolvers on this connection === INFO DNS server: 192.168.1.1 OK Found 1 DNS resolver(s). === Step 2 - domain controller locator SRV record === INFO Querying SRV record _ldap._tcp.dc._msdcs.contoso.local FAIL SRV lookup failed: contoso.local : DNS name does not exist FAIL _ldap._tcp.dc._msdcs.contoso.local returned no SRV records. INFO Common causes: an internet-only DHCP resolver, split-brain DNS, a guest VLAN, or an 802.1X port that dropped the device onto a quarantine VLAN. ABORTING. A required step failed, so the remaining results would be misleading. This is NOT a clean result. # Note what it did NOT do: print zero port failures and call the network healthy.

A passing run looks like the block below. This one is illustrative rather than captured, because publishing a real domain controller inventory is not something I am going to do.

PowerShell — ILLUSTRATIVE output for a usable provisioning VLAN
=== Step 2 - domain controller locator SRV record === OK SRV record resolved to 2 domain controller target(s). INFO Advertised DC: dc01.contoso.com on LDAP port 389 === Domain controller: dc01.contoso.com === OK dc01.contoso.com resolves to 10.20.30.11 OK ICMP echo succeeded. This is the check Autopilot itself performs. OK TCP 88 (Kerberos) open OK TCP 389 (LDAP) open OK TCP 445 (SMB) open OK TCP 135 (RPC endpoint mapper) open OK Clock offset is -0.41 seconds, inside the 300 second tolerance. === Verdict === Fully usable for a domain join : 2 RESULT: READY. # Run this from a machine that is NOT domain joined, or the 802.1X result lies.

After a deployment on a network that passes, confirm the end state rather than assuming it. In the Intune admin center the Autopilot device should show a Profile status of Assigned with a populated Date assigned, and the connector should show as Active with a version of 6.2501.2000.5 or later.

intune.microsoft.comDevices › Windows › EnrollmentIntune Connector for Active Directory
Microsoft Intune admin center — Intune Connector for Active Directory
Connector name     ODJ-SERVER-01
Status                 Active
Version                6.2504.2001.8
Last check-in      a few minutes ago

Then reduce the surface. Every site you keep on hybrid join is a site where a network change can break device provisioning silently. Every site you move to Microsoft Entra join stops caring about domain controllers during OOBE entirely. That is the real fix. Everything above is how you survive until you get there.

References

Two community deep-dives are worth reading alongside the documentation. Both were fetched and confirmed to be on this topic.

AuthorPostWhy it is relevant
Rudy OomsDeliver us from HybridStates the line-of-sight problem in one sentence and argues the cloud-native alternative, including on-premises single sign-on without hybrid join
Peter van der WoudeHybrid Azure AD join with Windows AutopilotWalks the original end-to-end configuration and lists direct Active Directory access as a prerequisite, with a comment thread full of the remote-user problem this article is about

The companion read-only script is Test-HybridJoinNetworkReadiness.ps1. It attempts no join, writes nothing, and exits 1 rather than reporting a clean network it could not actually verify.

PowerShell — companion script

Download it from Imran76Awan/Windows-Autopilot-Scripts — no sign-in required. It is read-only: it reports and never changes a device or anything in Intune. Validate it in your own environment before relying on the output.

Test-HybridJoinNetworkReadiness.ps1 — Read-only readiness test for a candidate Windows Autopilot Microsoft Entra hybrid
View all scripts on GitHub
Was this post helpful?
React below — no account needed
Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

Autopilot
The Autopilot 4K Hardware Hash Is Not a Serial Number: What Is…
The Autopilot 4K hardware hash is a composite of firmware and hardware identifiers,…
Autopilot
A browser test is not a network test: how proxies and TLS…
The device has internet, the portal says the profile is assigned, and OOBE still fails.…
Autopilot
You Deleted It From Intune and It Still Cannot Re-Enrol:…
A retired Autopilot device is three separate records: the Autopilot registration, the…