HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Autopilot AutopilotTPMSelf-DeployingPre-ProvisioningTroubleshooting

Stuck on "Securing Your Hardware": TPM Attestation and Error 0x800705B4

IA
Imran Awan
17 August 2026

A device sits on "Securing your hardware" for a minute, then fails with 0x800705B4. That code is a generic timeout, which is unhelpful, because the actual problem is almost never a slow network. Self-deploying and pre-provisioning modes do something the user-driven mode does not: they authenticate the device itself into your tenant, with no user credentials involved at all. The only identity the device has for that is its TPM - and if the TPM cannot prove who it is, provisioning has nothing to work with.

The short version

"Securing your hardware" is TPM device attestation. Self-deploying and pre-provisioning modes require TPM 2.0 and a valid Endorsement Key (EK) certificate burned in by the TPM manufacturer, plus outbound HTTPS to a set of attestation URLs that differ per TPM vendor. Microsoft explicitly does not support these modes on virtual machines, including Hyper-V virtual TPMs - those fail with 0x800705B4 by design, not by misconfiguration. Check the TPM spec version and the EK certificate before blaming the network, and remember the failure is a timeout so it looks identical whether the cause is a missing EK cert or a blocked vendor URL.

Note: TPM attestation is the device equivalent of showing photo ID. Every TPM 2.0 chip ships with an Endorsement Key and a certificate for it, signed by the chip manufacturer - Infineon, STMicroelectronics, Intel and so on. During attestation the device proves it holds that key, and Microsoft's attestation service validates the certificate chain back to the manufacturer. That is what lets a device join your tenant with nobody typing a password.

The problem: a timeout that explains nothing

The visible symptom is always the same and always at the same place: the Enrollment Status Page shows "Securing your hardware", waits, and fails. 0x800705B4 translates to a timeout - it tells you something did not answer in time, not what.

What makes this genuinely confusing is that several very different root causes all produce that identical timeout:

Only the last one is a network problem, and it is the one most teams start with.

Why it happens: the device is the credential

In user-driven Autopilot, a human signs in, and their credentials authorise the Entra join. In self-deploying and pre-provisioning modes there is no human at that point in the flow - the device must authenticate on its own. TPM 2.0 attestation is the mechanism that makes that possible.

That means the requirements are hardware requirements, not policy ones, and they cannot be configured around:

  1. TPM 2.0. Not 1.2. The attestation protocol depends on TPM 2.0 primitives.
  2. A valid EK certificate. Provisioned at manufacture. If it is missing or damaged, there is nothing to validate.
  3. Support for TPM device attestation as a capability - Microsoft notes all new Windows devices should meet this, but "should" is doing real work in that sentence for older or unusual hardware.
  4. Reachable, vendor-specific attestation URLs. These are not one shared endpoint - the set differs per TPM provider, which is why a proxy allowlist built for one hardware model can silently break a different one.
Gotcha: that last point catches people who test on one laptop model and roll out on another. Your allowlist was validated against, say, an Infineon TPM's attestation URLs. A different model with an STMicroelectronics TPM uses different URLs, and fails with the same generic timeout - on hardware that is otherwise perfectly capable. Allowlist by requirement, not by whatever the pilot device happened to need.

How to verify: check the four prerequisites

Start with the TPM itself. Present and ready is not sufficient - you need the spec version:

PowerShell — TPM state and spec version (run elevated)
Get-Tpm | Select-Object TpmPresent, TpmReady, TpmEnabled, TpmActivated, ManufacturerIdTxt # Spec version - must be 2.0. TPM 1.2 cannot be used for attestation. Get-CimInstance -Namespace 'root/cimv2/security/microsofttpm' -ClassName Win32_Tpm | Select-Object SpecVersion

Then the EK certificate, which is the part people rarely check and is frequently the actual cause:

PowerShell — is there a valid EK certificate?
\$ek = Get-TpmEndorsementKeyInfo -HashAlgorithm sha256 \$ek.IsPresent # must be True \$ek.ManufacturerCertificates.Count # must be at least 1 # Do NOT print the certificate itself - it is a hardware identifier # for this specific device. Presence and count is all you need.
Tip: if ManufacturerCertificates.Count is 0, stop troubleshooting the network. No amount of firewall work will help a device that has nothing to attest with. That is a hardware or firmware problem - check for a TPM firmware update from the OEM, and confirm the TPM has not been cleared in a way that discarded its certificates.

The fix: work through the prerequisites in order

Context: the order matters, because each step rules out a whole class of cause. Do not start with the firewall.

  1. Confirm it is not a VM. If it is, stop - use user-driven mode instead. Self-deploying and pre-provisioning are not supported on virtual machines, and Hyper-V's virtual TPM does not change that. This is documented behaviour, not a bug to work around.
  2. Confirm TPM 2.0. If the device reports 1.2, it cannot use these modes. Some hardware can be switched from 1.2 to 2.0 in firmware - check with the OEM, and expect that switch to clear the TPM.
  3. Confirm the EK certificate exists. If not, apply the OEM's TPM firmware update. Raise it with the vendor if the certificate is genuinely absent on new hardware, because that is a manufacturing issue.
  4. Only then look at the network. Allow outbound HTTPS to the TPM attestation URLs for every TPM vendor in your fleet, not just the one you piloted with. Microsoft publishes the set in the Autopilot networking requirements.
  5. Re-test with a real provisioning run. A device that passes the local checks has not yet proven it can complete attestation end to end - only an actual deployment does that.
intune.microsoft.comDevices › EnrollmentWindows Autopilot › Deployment ProfilesDeployment mode: Self-deploying
Watch out: do not clear the TPM as a speculative fix. Clearing it destroys keys bound to that TPM - BitLocker protectors, Windows Hello for Business credentials, and the device's existing identity material. On a device that is already provisioned and encrypted, an unconsidered TPM clear turns an enrollment problem into a data-recovery problem. Escrow BitLocker recovery keys and understand what is bound to the TPM before touching it.

Two more limitations worth knowing before you choose self-deploying

Neither is an attestation issue, but both surprise people who pick this mode:

Registry and TPM reference

The attestation result and its timeout are recorded on the device:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Provisioning\AutopilotSettings
Value / sourceWhat it holdsWhy it matters
DevicePreparationCategory.StatusTpmAttestationSubcategoryThe recorded attestation state and its on-screen textThe device's own record of whether "Securing your hardware" passed - readable long after the fact
TpmAikTaskMaxTimeoutMilliseconds (REG_DWORD)Attestation task timeout in millisecondsExplains how long the device waits before producing the 0x800705B4 timeout
TpmNgcWaitDelayMilliseconds (REG_DWORD)Wait delay for TPM-backed credential operationsContext for timing-sensitive provisioning issues on slow TPMs
Get-TpmTpmPresent/TpmReadyLive TPM stateThe first thing to rule out - a not-ready TPM cannot attest
Win32_TpmSpecVersionTPM specification versionMust be 2.0; 1.2 disqualifies the device from these modes entirely
Get-TpmEndorsementKeyInfoManufacturerCertificatesThe EK certificate chain from the TPM vendorCount of 0 means attestation has no identity to present - a hardware issue, not a network one

Proof it worked: a real device that passes

A genuine run of Test-AutopilotTpmAttestationReadiness.ps1 from this series against a real Autopilot-provisioned device. The hardware model identifier is redacted; every TPM value is exactly as captured:

PowerShell — Test-AutopilotTpmAttestationReadiness.ps1 (real output)
Autopilot TPM Attestation Readiness (the 'Securing your hardware' step) ------------------------------------------------------------------------ TPM present / ready : True / True TPM enabled / activated : True / True Manufacturer : STM (version 1.769.0.0) TPM spec version : 2.0, 0, 1.59 EK certificate present : True Manufacturer certs : 1 (contents deliberately NOT printed) Additional certs : 0 Model / manufacturer : LENOVO / 21F9xxxxxx This device's recorded attestation result during its own Autopilot run: state : succeeded statusText : Securing your hardware (Completed) attestation task timeout : 60000 ms Result: READY - this device meets the TPM attestation prerequisites for Autopilot self-deploying and pre-provisioning modes.

This is what all four prerequisites satisfied looks like. The TPM is an STMicroelectronics part reporting spec version 2.0. Crucially, Manufacturer certs: 1 confirms a real EK certificate is present - the single most commonly overlooked requirement. And the device's own historical record shows Securing your hardware (Completed), so attestation genuinely succeeded during its provisioning run rather than merely looking capable now.

The 60000 ms attestation timeout is worth noting too. That is the budget before you see 0x800705B4 - so a device that fails attestation typically sits on that screen for roughly a minute. If yours fails much faster than that, suspect a prerequisite that failed outright (no TPM 2.0, no EK cert) rather than a network timeout.

References

Microsoft MVP community deep-dives

Verified and genuinely on-topic - the URL was fetched and confirmed before being cited here, not copied on trust:

AuthorPostWhat it adds
Rudy Ooms (MVP, call4cloud.nl)Step by Step: How Windows Retrieves the Autopilot ProfileTraces the full token-and-profile retrieval flow and independently documents the AutopilotPolicyCache registry key and wmansvc on-disk cache that these posts read from
PowerShell Scripts — TPM Attestation Readiness

Script for this post is in Windows-Autopilot-Scripts.

Test-AutopilotTpmAttestationReadiness.ps1 — read-only: checks TPM state, spec version, EK certificate presence and VM detection, plus the device's own recorded attestation result - never prints the EK certificate itself
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 Conditional Access deadlock: requiring a compliant…
A brand-new Autopilot device cannot be compliant before it is enrolled, so a Conditional…
Autopilot
Autopilot silent BitLocker: the race between the ESP and your…
Silent BitLocker encryption during Autopilot is a race, not a switch. Windows encrypts…
Autopilot
The Intune Connector Certificate Expires and Hybrid Autopilot…
Hybrid Autopilot depends on one on-premises service, and it authenticates to Intune with…