HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Autopilot Windows AutopilotIntuneTLS inspectionProxyOOBEMicrosoft Entra IDNetwork endpointsDevice registration

A browser test is not a network test: how proxies and TLS break-and-inspect kill Autopilot

IA
Imran Awan
21 August 2026

A device arrives on a corporate site. It gets an IP address. It gets DNS. An engineer proves the network is fine by opening a browser on the machine next to it. The Intune portal says the Autopilot profile is assigned. The new device boots into the out-of-box experience. It shows a generic Microsoft sign-in page with none of your branding. Then it either sits there or falls over with a vague error. Nothing was misconfigured in Intune. The network is the problem, and the browser test was the wrong test.

The short version

Autopilot needs a specific endpoint set, not "the internet". Some of those endpoints must never be TLS-inspected: Microsoft documents that SSL traffic inspection is not supported for *.manage.microsoft.com and *.dm.microsoft.com, and that device.login.microsoftonline.com and enterpriseregistration.windows.net must be excluded from TLS break-and-inspect. A middlebox that re-signs those certificates breaks client certificate authentication, and the out-of-box experience does not trust your inspection CA anyway because no policy has ever been applied to the device. On top of that, device registration runs in machine context, so an authenticated proxy has nobody to authenticate as during OOBE. Test each endpoint from the OOBE context and look at the certificate issuer, not at whether a page loads.

The problem: internet access is not the same as Autopilot access

The failure is frustrating because every obvious check passes. The device has a link light. DNS resolves. A laptop on the same VLAN browses the web without complaint. In the Intune admin center the device is listed under Windows Autopilot devices with a profile status of Assigned. And yet the out-of-box experience does one of these things instead of running your deployment.

The Autopilot event log tells a much clearer story than the screen does. Microsoft documents the channel at Applications and Services LogsMicrosoftWindowsModernDeployment-Diagnostics-ProviderAutopilot. A network failure looks like repeated warnings and no success.

Event Viewer — ModernDeployment-Diagnostics-Provider/Autopilot
TimeEvent IDLevelMessage
08:41:02160InformationAutopilotRetrieveSettings beginning acquisition
08:41:04100WarningAutopilot policy not found
08:41:34100WarningAutopilot policy not found
08:42:04100WarningAutopilot policy not found
08:42:35807ErrorZtdDeviceIsNotRegistered
Context: Microsoft documents event ID 100 as "typically a temporary problem, while the device is waiting for a Windows Autopilot profile to be downloaded". One instance means nothing. The same warning every thirty seconds with no event 153 or 161 afterwards means the profile download is never completing. That is a network story, not an Intune story.

There is a second, quieter symptom. Microsoft documents that Autopilot profile settings are cached in the registry. One of those values is IsAutopilotDisabled. Set to 1 it can mean the device is not registered. It can also mean that "the Windows Autopilot profile couldn't be downloaded because of network connectivity or firewall issues, or network timeouts". One registry value, two very different root causes. Admins read it as "not registered", re-register a device that was already registered fine, and lose a day.

Why it happens: three separate middlebox failures

There is not one cause here. There are three, and they fail in different places, which is why the symptoms look inconsistent between sites.

1. The endpoint set is narrower and stranger than "allow port 443"

Microsoft's baseline guidance for Autopilot networking is blunt. Resolve internet DNS names, and allow access to all hosts on port 80, port 443, and UDP port 123. Most enterprises cannot do that, so they build an allowlist instead. The allowlist is usually where it goes wrong, because two of the required names are not obviously Microsoft-cloud-shaped.

The Windows Autopilot Deployment Service itself uses two URLs: https://ztd.dds.microsoft.com and https://login.live.com. That second one catches people out constantly. It is a consumer Microsoft account endpoint, and it frequently ends up on a block list for good reasons in a corporate environment. The profile request is authenticated with a device token obtained through the Microsoft Account Sign-In Assistant service, so blocking consumer identity blocks Autopilot. Microsoft makes the dependency explicit elsewhere too. It documents that setting the Microsoft Account sign-in assistant device restriction to disabled "turns off the Microsoft Sign-in Assistant service (wlidsvc)". It then states plainly that "Windows Autopilot requires this service to get the Windows Autopilot profile".

After the profile lands, three more services take over, each with its own endpoint set. Microsoft Entra ID validates the user and joins the device. Intune enrols it. And for self-deploying and pre-provisioning modes, TPM attestation runs against per-vendor URLs that differ by silicon manufacturer.

2. TLS break-and-inspect breaks certificate-based authentication

A break-and-inspect proxy terminates the TLS session, decrypts it, inspects the payload, then opens a second TLS session onward to Microsoft. To the client, the certificate for manage.microsoft.com is no longer issued by a public certification authority. It is issued by your inspection CA.

This works for browsers on managed machines for one reason only. Your inspection root is already in the machine's Trusted Root store, put there by Group Policy or by Intune. A device in OOBE has never received a policy from you. Nothing has run. The trust store contains the roots that shipped with Windows and nothing else. So the same middlebox that is invisible to your fleet is a hard certificate error to the device you are trying to provision.

Even if the root were trusted, some of this traffic still cannot survive interception. Microsoft is explicit about it in two places. The Intune network endpoints documentation states that "SSL traffic inspection isn't supported for '*.manage.microsoft.com', '*.dm.microsoft.com', or the Device Health Attestation (DHA) endpoints". And the Microsoft Entra hybrid join documentation carries a warning worth reading twice. If your proxies intercept SSL traffic, "ensure that traffic to https://device.login.microsoftonline.com and https://enterpriseregistration.windows.net are excluded from TLS break-and-inspect. Failure to exclude these URLs might cause interference with client certificate authentication, cause issues with device registration, and device-based Conditional Access."

Client certificate authentication is the key phrase. Device registration presents a certificate to prove the device's identity. A proxy that terminates TLS terminates that mutual authentication with it. No client-side setting makes this work, because the thing the proxy is breaking is the proof of identity itself.

Gotcha: the Microsoft 365 network connectivity principles list "TLS termination or deep packet inspection of any Microsoft 365 domains with customer proxies or other types of network devices or services" as a scenario Microsoft has not tested and knows to cause connectivity issues. That sentence covers far more than the endpoints named above. If your proxy inspects everything and you have carved out only two exceptions, you are still outside what Microsoft supports.

3. An authenticated proxy has nobody to authenticate as

This is the failure that produces the most confused tickets, because it only affects part of the flow. A user can sign in at the OOBE credentials page, and then enrolment fails, which looks like a licensing or permissions problem.

The mechanism is context. Microsoft states it directly for device registration: "Because Windows 10 or newer computers run device registration by using machine context, configure outbound proxy authentication by using machine context." Machine context means the SYSTEM account and the machine's own network stack, not the interactive user's credentials. In OOBE there is no interactive user at all until the sign-in page appears, and in self-deploying mode there is never one. A proxy that answers with HTTP 407 and expects a username has nothing to prompt.

Intune says something similar from the other direction: "For some tasks, Intune requires unauthenticated proxy server access to manage.microsoft.com, *.azureedge.net, and graph.microsoft.com." The Microsoft 365 connectivity principles also list "routing connections through network infrastructure applying its own authentication such as proxy authentication" among the configurations known to cause problems.

And there is no client-side policy lever during OOBE

The instinct is to fix this on the device. It does not work, and Microsoft says so. The Autopilot requirements page states that "deploying proxy settings for Windows Autopilot should be configured on the proxy server itself" and that "implementing proxy settings via Intune policy isn't fully supported as it might cause issues and unexpected behavior with privileged access deployments". Intune policy arrives after enrolment, which is after the part that is failing.

What Microsoft does support is proxy auto-discovery. For Autopilot with Microsoft Entra hybrid join, the requirement is stated as a prerequisite: "If using Proxy, Web Proxy Auto-Discovery Protocol (WPAD) Proxy settings option must be enabled and configured." For device registration generally, Microsoft says you can use WPAD "to enable Windows 10 or newer computers for device registration with Microsoft Entra ID", or configure WinHTTP proxy settings by Group Policy on machines that are already domain joined.

Watch out: do not try to solve this by baking your TLS inspection root certificate into the Windows installation media, or by disabling certificate revocation checking to make handshake errors go away. Both turn a network configuration problem into a fleet-wide trust problem, and neither fixes client certificate authentication, which interception breaks regardless of trust. Microsoft's Intune Connector troubleshooting guidance does include deleting a SCHANNEL registry value in one narrow scenario, but that is a targeted server-side fix for a specific symptom on a connector host. Deleting SCHANNEL values changes the cryptographic posture of the whole machine, so do not generalise it to clients.

How to verify: test each endpoint from the OOBE context

Two rules make this tractable. Test from the context that fails, which is machine context, not a signed-in user's browser. And look at the certificate issuer for each endpoint, not at whether something responds.

The endpoint set to test

Every hostname below comes from Microsoft documentation. The third column is the constraint that matters, and it is the column most allowlists ignore.

EndpointNeeded forDocumented constraint
ztd.dds.microsoft.comAutopilot Deployment Service, profile downloadTCP 443
login.live.comAutopilot Deployment Service, device tokenTCP 443. Often blocked as a consumer endpoint
login.microsoftonline.comAuthentication and identityTCP 80 and 443
device.login.microsoftonline.comDevice registrationMust be excluded from TLS break-and-inspect
enterpriseregistration.windows.netDevice registrationMust be excluded from TLS break-and-inspect
certauth.enterpriseregistration.windows.netIdentity supporting servicesTCP 80 and 443. Client certificate path
graph.windows.netAuthentication and identityTCP 80 and 443
manage.microsoft.com and *.manage.microsoft.comIntune client and host serviceSSL traffic inspection is not supported
*.dm.microsoft.comIntune client and host serviceSSL traffic inspection is not supported
EnterpriseEnrollment.manage.microsoft.comMDM enrolment discoveryPart of the Intune core service endpoint set
go.microsoft.comEndpoint discoveryTCP 80 and 443
*.msftconnecttest.comNetwork Connection Status IndicatorMust resolve in DNS and be reachable over HTTP
time.windows.comClock sync, which every TLS handshake depends onUDP 123
*.microsoftaik.azure.netTPM attestation for self-deploying and pre-provisioningHTTPS. The URL pattern differs per TPM provider
ekop.intel.com, ekcert.spserv.microsoft.com, ftpm.amd.comFirmware TPM endorsement key certificatesTCP 443, one per silicon vendor
lgmsapeweu.blob.core.windows.netAutomatic Autopilot diagnostics uploadMust not be blocked, or you lose the logs
Tip: a wrong clock is a silent TLS killer, and it is the cheapest thing to rule out. If UDP 123 to time.windows.com is blocked and the hardware clock has drifted, every certificate on the wire looks not-yet-valid or expired. Every endpoint then fails at handshake for a reason that has nothing to do with your proxy. Check the clock before you open a proxy ticket.

Reading the certificate issuer, from the machine itself

At the OOBE screen, press Shift + F10 to open a command prompt, then start PowerShell. The point of the following is not reachability. It is to see who signed the certificate.

Shift+F10 at OOBE — name resolution and machine-context proxy
X:\WINDOWS\system32> nslookup ztd.dds.microsoft.com Server: corp-dns-01 Address: 10.x.x.x Non-authoritative answer: name resolved X:\WINDOWS\system32> netsh winhttp show proxy Current WinHTTP proxy settings: Proxy Server(s) : proxy.corp.example:8080 Bypass List : (none) Bypass List is empty. Every machine-context call goes through the proxy, including the ones Microsoft documents as unsupported for inspection.
Gotcha: the OOBE environment is not a full desktop. Some cmdlets you rely on daily are missing from the boot image, and there is no browser to fall back on. Write your connectivity test using only .NET types that ship with every build, or run it from a reference machine placed on the same VLAN and the same proxy path. A test run from a signed-in admin session on an already-managed laptop is not the same test, and that is the whole point of this article.

The certificate check itself is short, and it is the single most useful thing you can run. Open a socket, complete a TLS handshake with validation deliberately bypassed, and print the issuer of what came back.

PowerShell — who signed the certificate for this endpoint?
$target = 'manage.microsoft.com' $client = New-Object System.Net.Sockets.TcpClient($target, 443) # Accept anything on purpose. We are inspecting, not trusting. $accept = [System.Net.Security.RemoteCertificateValidationCallback] { $true } $ssl = New-Object System.Net.Security.SslStream($client.GetStream(), $false, $accept) $ssl.AuthenticateAsClient($target) $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $ssl.RemoteCertificate $cert.Issuer # a public CA, or your proxy? $cert.Subject $ssl.SslProtocol $ssl.Dispose(); $client.Close()

If $cert.Issuer names your organisation, your firewall vendor, or an internal certification authority, you have found the answer. That endpoint is being broken and inspected, and for manage.microsoft.com that configuration is documented as unsupported.

Microsoft's own read-only test scripts

Two Microsoft-published scripts save time here, and both are read-only. Test-DeviceRegConnectivity tests login.microsoftonline.com, device.login.microsoftonline.com and enterpriseregistration.windows.net under the system context. Microsoft explicitly notes that it "checks for SSL/TLS handshake and report as failure if any". Its own FAQ answers the important question plainly: "Does this script change anything? No. It just retrieves data." Test-IntuneAFDConnectivity.ps1 covers the Azure Front Door address ranges Intune uses, and Microsoft's troubleshooting notes for it name the cause we are chasing. An unreachable service endpoint may mean "a DNS, proxy, or HTTPS inspection issue is preventing connection to the Intune service FQDN".

The Autopilot diagnostics registry surface

Everything the deployment service told the device is cached here. This is the same key on every Windows client, and it is worth reading before and after any proxy change. Parent key, stated once.

HKLM\SOFTWARE\Microsoft\Provisioning\Diagnostics\Autopilot
ValueWhat Microsoft documentsHow to read it when chasing a network fault
CloudAssignedTenantDomainThe Entra tenant the device is registered with. Blank if the device is not registered with Autopilot.Populated means the profile download succeeded at least once. Blank on a registered device points straight at the download.
CloudAssignedTenantIdThe GUID of the tenant the device registered with. Blank if not registered.Same signal as above, and it lets you confirm the correct tenant answered.
AadTenantIdThe GUID of the tenant the user signed into.Only appears after a sign-in, so it marks how far the flow got before failing.
TenantMatchedSet to 1 if the user's tenant ID matches the tenant the device was registered with. If 0, the user is shown an error and forced to start over.A 0 here is an identity mismatch, not a network fault. Stop chasing the proxy.
IsAutopilotDisabled1 indicates the device is not registered with Autopilot. Microsoft adds that it "could also indicate that the Windows Autopilot profile couldn't be downloaded because of network connectivity or firewall issues, or network timeouts".The most misread value on the list. Confirm registration in the portal before you accept the first meaning.
CloudAssignedOobeConfigA bitmap of which Autopilot settings were configured. Documented values are SkipCortanaOptIn = 1, OobeUserNotLocalAdmin = 2, SkipExpressSettings = 4, SkipOemRegistration = 8, SkipEula = 16.A non-zero value proves a real profile was parsed rather than a blank one being cached.
Registry Editor
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Provisioning\Diagnostics\Autopilot
CloudAssignedTenantDomainREG_SZcontoso.onmicrosoft.com
CloudAssignedTenantIdREG_SZ{aaaaaaaa-0b0b-1c1c-2d2d-333333333333}
CloudAssignedOobeConfigREG_DWORD0x0000001c (28)
IsAutopilotDisabledREG_DWORD0x00000000 (0)

The Autopilot event ID catalog

These are the events Microsoft publishes for the Autopilot channel. Channel, stated once.

Applications and Services Logs › Microsoft › Windows › ModernDeployment-Diagnostics-Provider › Autopilot
IDLevelDocumented meaning
100WarningAutopilot policy not found. Typically temporary while waiting for the profile. Repeating forever is your network signal.
101InfoAutopilotGetPolicyDwordByName succeeded. Numeric OOBE settings being processed.
103InfoAutopilotGetPolicyStringByName succeeded. String settings such as the Entra tenant name.
109InfoAutopilotGetOobeSettingsOverride succeeded. State-related OOBE settings.
111InfoAutopilotRetrieveSettings succeeded. The settings that control OOBE behaviour were retrieved.
153InfoState change, usually ProfileState_Unknown to ProfileState_Available. The device is ready to deploy.
160InfoAutopilotRetrieveSettings beginning acquisition. The download attempt has started.
161InfoAutopilotManager retrieve settings succeeded. The profile downloaded.
163InfoDownload is not required, the device is already provisioned. Clean or reset the device to change this.
164InfoAutopilotManager determined Internet is available to attempt policy download.
171ErrorFailed to set TPM identity confirmed, with an HRESULT. A TPM attestation problem, needed for self-deploying mode.
172ErrorFailed to set the Autopilot profile as available. Typically related to event 171.
807ErrorZtdDeviceIsNotRegistered. Check the hardware hash upload and the profile assignment.
809ErrorZtdDeviceHasNoAssignedProfile, assigned profile does not exist. The profile was deleted without cleanup.
815ErrorZtdDeviceHasNoAssignedProfile, no profile assigned and no default profile in the tenant.
908ErrorSerialNumberMismatch or ProductKeyIdMismatch. The hardware does not match what Autopilot recorded.

The diagnostic pattern to look for is a pair. Event 164 says Windows believes it has internet. Event 160 says the download started. If you see 164 and 160 but never 161 or 153, Windows is reaching the internet and still cannot complete the profile request. That is exactly the signature of a middlebox in the path, and it is the case a browser test can never reproduce. Other event IDs do appear on real devices without being in Microsoft's published table, so do not build alerting on undocumented IDs.

The fix: bypass lists on the proxy, not policy on the client

Work through these in order. The first two are the ones that actually resolve the failure described here.

Step 1: exclude the documented endpoints from TLS inspection

This is a change on the proxy or firewall, made by the network team, not in Intune. Here is the minimum set with the source for each.

Exclude from TLS inspectionWhyWhere Microsoft says so
manage.microsoft.com and *.manage.microsoft.comSSL traffic inspection is not supportedNetwork endpoints for Microsoft Intune
*.dm.microsoft.comSSL traffic inspection is not supportedNetwork endpoints for Microsoft Intune
device.login.microsoftonline.comInterferes with client certificate authentication and device registrationConfigure Microsoft Entra hybrid join
enterpriseregistration.windows.netInterferes with client certificate authentication and device registrationConfigure Microsoft Entra hybrid join
Device Health Attestation and the Azure attestation endpoints for your tenant regionDevices fall out of compliance when inspection is in the pathNetwork endpoints for Microsoft Intune
Microsoft Store API endpointsSSL inspection is not supported on the Store API endpointsNetwork endpoints for Microsoft Intune

Microsoft's broader recommendation goes further than that documented minimum. For every required Microsoft 365 endpoint it says to "bypass Microsoft 365 domains from TLS decryption, traffic interception, deep packet inspection, and network packet and content filtering". Treat the named list as the floor, not the ceiling.

Your tenant region matters for two of those rows. To find it, open Tenant administration, then Tenant status. Read Tenant location under Tenant details. Then use the endpoint list Microsoft publishes for that region.

Step 2: make the required endpoints reachable without proxy authentication

Add the Autopilot, Entra and Intune endpoint set to the proxy's unauthenticated bypass, or configure machine-context authentication with your proxy vendor. Microsoft's wording is the one to take to the network team. Device registration runs in machine context, so outbound proxy authentication must be configured using machine context. If the vendor cannot do that, an unauthenticated bypass for those hostnames is the only workable answer during OOBE.

Step 3: give OOBE a way to discover the proxy

Configure WPAD so the device can find the proxy with no policy applied. Microsoft's Autopilot hybrid join prerequisite states it as a requirement. The device registration guidance offers WPAD, or GPO-deployed WinHTTP settings for machines that are already domain joined. A WPAD entry can be published through DHCP option 252 or through a wpad host record in DNS.

Gotcha: Windows Server DNS ships with a global query block list, and Microsoft documents that wpad is on it by default specifically to stop WPAD hijacking. If you add a wpad record after the DNS Server role was deployed, Microsoft's guidance is that "you must update the block list on all DNS servers that host the zones affected by the change". Plenty of WPAD deployments look perfect in DNS Manager and never answer a single query for exactly this reason.

Step 4: confirm the profile really is assigned

Rule out the boring cause before escalating to the network team.

Microsoft Intune admin centerDevicesWindowsEnrollmentDevices, under Windows Autopilot
  1. Sign in to the Microsoft Intune admin center.
  2. Select Devices, then select Windows under By platform.
  3. Select Enrollment under Device onboarding.
  4. Under Windows Autopilot, select Devices.
  5. Find the device and check the profile status column. If it reads anything other than Assigned, you have an assignment problem and not a network problem.
  6. Also check whether the record shows Fix pending or Attention required. Microsoft documents both as indicating a hardware change on the device, which is a separate failure mode with its own remediation.

Step 5: turn on the diagnostics page so the next failure is legible

On Windows 11 user-driven deployments you can open a diagnostics view during provisioning, but only if the Enrollment Status Page profile allows it.

Microsoft Intune admin centerDevicesWindowsEnrollmentEnrollment Status Page
  1. Open the Enrollment Status Page profile that applies to the devices you are provisioning.
  2. Set Show app and profile configuration progress to Yes.
  3. Set Turn on log collection and diagnostics page for end users to Yes.
  4. Save, then during the next deployment press CTRL + SHIFT + D or select View Diagnostics.
  5. Make sure lgmsapeweu.blob.core.windows.net is not blocked, or the automatic diagnostics upload fails and you lose the logs from the failed run.
Microsoft Intune admin center — Enrollment Status Page
All users and all devices
Windows 10 and later · Enrollment Status Page profile
Show app and profile configuration progressYes
Turn on log collection and diagnostics page for end usersYes
Block device use until all apps and profiles are installedNo
Context: there is deliberately no Group Policy path in this section for the proxy fix. During OOBE the device is neither domain joined nor Intune enrolled, so no Group Policy Object and no configuration service provider has reached it yet. Microsoft's own guidance is that Autopilot proxy settings "should be configured on the proxy server itself". GPO-deployed WinHTTP proxy settings are useful for machines that are already domain joined, which by definition is after the failure we are fixing.

Proof it worked: a clean certificate chain and event 153

The companion script is Test-AutopilotNetworkReadiness.ps1. It resolves each documented endpoint, opens a socket, completes a TLS handshake, and compares the presented issuer against a list of well-known public certification authorities. Anything issued by something that is not a public CA is reported as interception. It is read-only, needs no PowerShell modules, and exits non-zero if any required endpoint is not clean.

The block below is a real run on a clean network path, with the hostname and account name redacted.

Test-AutopilotNetworkReadiness.ps1 — real run, identifiers redacted
Host : REDACTED Running as : REDACTED PowerShell : 5.1.26100.9168 Timeout : 8s per stage ==== Proxy configuration ==== Current WinHTTP proxy settings: Direct access (no proxy server). No explicit WinHTTP proxy. Machine-context traffic goes direct, or via WPAD. Unauthenticated proxy probe: no proxy in the effective path for this context ==== Endpoint tests (14 endpoints) ==== [PASS] ztd.dds.microsoft.com Tls13 [PASS] login.live.com Tls12 [PASS] login.microsoftonline.com Tls13 [PASS] device.login.microsoftonline.com Tls13 [PASS] enterpriseregistration.windows.net Tls12 [PASS] certauth.enterpriseregistration.windows.net Tls12 [PASS] graph.windows.net Tls13 [PASS] manage.microsoft.com Tls13 [PASS] EnterpriseEnrollment.manage.microsoft.com Tls13 [PASS] go.microsoft.com Tls13 [PASS] www.msftconnecttest.com TCP 80 open [PASS] ekop.intel.com Tls13 [PASS] ekcert.spserv.microsoft.com Tls12 [PASS] ftpm.amd.com Tls12 ==== Summary ==== Endpoints tested : 14 (11 required) Passed : 14 Unreachable (DNS or TCP) : 0 TLS interception detected : 0 Chain build warnings : 0 Errors or indeterminate : 0 VERDICT: READY. Every required endpoint resolved, connected, and presented a certificate from a recognised public certification authority.

A broken path looks like the next block. This one is illustrative. It was constructed to show the shape of the output on a network with break-and-inspect and an authenticated proxy. No such path was available to run against.

ILLUSTRATIVE output shape on an inspected path, not a real run
Unauthenticated proxy probe: unauthenticated request returned 407 HTTP 407 returned. The proxy demands credentials. During OOBE there is no signed-in user, so interactive proxy authentication cannot happen. [PASS] ztd.dds.microsoft.com Tls13 [BREAK] manage.microsoft.com certificate re-signed by a non-public CA issuer : CN=Example Corp TLS Inspection CA, O=Example Corp root : CN=Example Corp Root CA, O=Example Corp Microsoft documents this endpoint as unsupported for SSL/TLS inspection. [BREAK] enterpriseregistration.windows.net certificate re-signed by a non-public CA [WARN] device.login.microsoftonline.com chain did not build (UntrustedRoot) TLS interception detected : 2 VERDICT: NOT READY. Fix the items above before blaming Autopilot or Intune.

Once the exclusions are in place, the Autopilot channel tells you it worked without anyone having to sit and watch the screen. The sequence you want is acquisition starting, then a successful retrieve, then the state change.

Event Viewer — the healthy sequence
TimeEvent IDLevelMessage
09:12:41164InformationInternet is available to attempt policy download
09:12:41160InformationAutopilotRetrieveSettings beginning acquisition
09:12:43161InformationAutopilotManager retrieve settings succeeded
09:12:43103InformationPolicy name = DeploymentProfileName
09:12:43153InformationProfileState_Unknown to ProfileState_Available

Three checks close the loop. The event log shows 161 and 153. The registry key shows a populated CloudAssignedTenantDomain and IsAutopilotDisabled at 0. And the readiness script reports zero interception across the required set. If all three agree, the network path is genuinely clean. Any remaining failure is a real Intune or Entra problem, worth investigating on its own terms.

Community deep dives worth reading

AuthorArticleWhy it is useful here
Mattias Melkersen, Rudy Ooms and Ben Whitmore, MSEndpointMgrOnboarding modern with Autopilot: Magic trick revealedWalks the whole provisioning flow end to end, including the profile fetch against ztd.dds.microsoft.com and the token that authenticates it.
Rudy Ooms, call4cloudStep by Step: How Windows Retrieves the Autopilot ProfileThe clearest breakdown of the device token, the role of wlidsvc, and why login.live.com is not optional.

References

The companion script for this post is Test-AutopilotNetworkReadiness.ps1 in the Windows Autopilot scripts collection. It is read-only by design. It opens sockets, reads certificates, reads registry values and reads event logs. It writes nothing, changes no configuration, and installs no modules.

PowerShell Scripts — Autopilot Network Readiness

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-AutopilotNetworkReadiness.ps1 — tests each documented Autopilot endpoint and detects TLS break-and-inspect
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
The Autopilot Conditional Access deadlock: requiring a compliant…
A brand-new Autopilot device cannot be compliant before it is enrolled, so a Conditional…
Autopilot
Hybrid Autopilot Needs a Domain Controller in OOBE, and 802.1X,…
Microsoft documents that a hybrid Autopilot device must be on the internal network with…