HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Autopilot AutopilotHybrid JoinIntune ConnectorODJ ConnectorActive DirectoryCertificatesMonitoringTroubleshooting

The Intune Connector Certificate Expires and Hybrid Autopilot Stops, With No Alert

IA
Imran Awan
21 August 2026

Hybrid Windows Autopilot has one on-premises moving part, and it is a Windows service on a server that nobody looks at. That service is the Intune Connector for Active Directory. When it stops being able to talk to Intune, every hybrid Autopilot deployment stalls at the domain-join step, and nothing in the Intune admin center emails you to say so.

The short version

The Intune Connector for Active Directory authenticates to Intune with a machine credential it obtains once, during enrollment. Microsoft documents the connector, its status surface and its event log, but it does not publish that credential's lifetime or its renewal mechanism, so do not trust any specific renewal interval you read online. What you can do is monitor: watch the connector Status and Version in the Intune admin center, watch the Microsoft-Intune-ODJConnectorService/Admin event channel on the server, and poll lastConnectionDateTime from Microsoft Graph. When the credential does fail, there is no documented in-place renewal, because Microsoft guidance for Intune connectors is to reinstall and re-enroll.

The problem: deployment day stops at domain join

You have twenty laptops on a bench. Every one of them reaches the Enrollment Status Page (ESP), sits at the device setup phase, and eventually fails. Nothing changed in your Autopilot profile. Nothing changed in your Domain Join profile. Last month the same build worked.

What changed is on a server. Hybrid Autopilot needs an on-premises component to create the computer account and hand the device an Offline Domain Join (ODJ) blob. Microsoft calls that component the Intune Connector for Active Directory, and also calls it the ODJ Connector. The documented job is narrow. It joins computers to an on-premises domain during the Windows Autopilot process, and it creates computer objects in a specified Organizational Unit (OU) in Active Directory during that domain join.

Context: Microsoft Graph describes the same object even more plainly. A domain join connector is "a connector that is responsible to allocate (and delete) machine account blobs." If the connector cannot allocate a blob, the device has nothing to join with, and the domain-join step has nowhere to go but a timeout.

The connector is not a chatty component. It has no dashboard, no notification channel, and no built-in expiry warning. Its entire health surface in the portal is one page with a status column.

intune.microsoft.comDevices › WindowsEnrollmentIntune Connector for Active Directory

That page shows a Connector name, a Status and a Version. The documented healthy state is simple. The server appears, Status reads Active, and the version is at or above the supported floor. Anything else is a problem, and the page will not tell you which problem.

What the portal showsWhat it usually meansWhere to look next
Server listed, Status Active, current versionThe connector reached Intune recently and is enrolledNothing. This is the healthy state
Server listed but Status is not ActiveThe connector is installed but is no longer calling the service successfullyThe ODJConnectorService Admin channel on the server
Server not listed at allEnrollment never completed, or the record was cleaned upODJConnectorUI.log and the proxy configuration
Server listed with an old versionAutomatic update is not reaching the serverOutbound 443 to the Azure update service
Gotcha: Microsoft documents that inactive Intune Connectors for Active Directory still appear on that page, and are then automatically cleaned up after 30 days. So a connector that quietly failed a month ago does not leave a red row behind for you to find. It leaves nothing at all. If your only monitoring is "I would notice a bad row," you will not notice a missing one.

There is a second reason this failure mode is confusing. A supported, current, correctly installed connector can still stop working. The version floor is a separate issue that this site has covered already. What follows is the other case, where the connector is on a good build and has simply lost the ability to authenticate.

Why it happens: an undocumented credential lifecycle

Start with what Microsoft actually states. During installation you sign the connector in with an Entra ID account that holds an Intune administrator role. Then comes the sentence that matters most. The account used to enroll the connector is only a temporary requirement at the time of installation, and it is not used going forward after the server is enrolled.

Read that carefully. The connector keeps working after the human credential goes away. Something durable and machine-held must be doing the authenticating from that point on. In practice that is a client certificate issued to the server during enrollment, held in the local machine store, and presented on every outbound call to the service.

Watch out: Microsoft does not publish the Intune Connector for Active Directory certificate lifetime, its renewal interval, its renewal trigger, or its store location. If a blog gives you a number, whether that is twelve months or six months or anything else, treat it as unverified. Numbers invented for the ODJ connector are usually borrowed from a completely different product. Acting on a borrowed number is how people end up reinstalling the wrong connector on the wrong server.

That different product is worth naming, because the confusion is constant. The Certificate Connector for Microsoft Intune is the SCEP and PKCS connector. It is not the ODJ connector. For that product Microsoft does document a client-certificate story, including automatic updates over port 443 to autoupdate.msappproxy.net, and the blunt statement that the process to manually update a certificate connector is the same as reinstalling one.

Gotcha: the two connectors are documented as mutually exclusive on a host. Microsoft states plainly that the Certificate Connector should not be installed on the same server as the Intune Connector for Active Directory. If somebody consolidated them onto one box, you now have two credential lifecycles and two update paths competing for the same outbound rules.

What actually breaks the renewal path

Whatever the renewal cadence is, renewal is an outbound call. Anything that blocks that call turns a silent background refresh into a silent background failure. Four causes are documented.

One, no outbound internet at all. The requirement is explicit. The server hosting the connector must have access to the internet and to Active Directory, and the connector requires the same endpoints as Intune itself.

Two, a proxy the connector does not know about. By default the connector tries Web Proxy Auto-Discovery (WPAD). Where WPAD is absent, you have to declare the proxy in the connector's own .NET configuration files. The Microsoft support article for a connector that installs but never appears in Intune points at exactly this, with a distinctive error in the ODJ Connector Service log: Failed to get a value for Key: OdjServiceBaseUrl.

Three, TLS interception. This one bites mature networks hardest, because break-and-inspect is usually a security requirement there. The Microsoft endpoint documentation is unambiguous. SSL traffic inspection is not supported for *.manage.microsoft.com, *.dm.microsoft.com, or the Device Health Attestation endpoints. The connector service configuration points at https://manage.microsoft.com/, so an inspecting proxy sits directly in its authentication path.

Four, a hardened SCHANNEL configuration. Microsoft documents a specific failure where the connector sign-in page will not load, showing either "Navigation to the webpage was canceled" or "Can't connect securely to this page." The documented cause is that the server is sending network requests over TLS 1.0 or 1.1 because PKCS cryptography is disabled.

Registry EditorHKEY_LOCAL_MACHINE › SYSTEMSCHANNELKeyExchangeAlgorithms
Registry Editor — connector server (illustrative)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS
    Enabled   REG_DWORD   0x00000000   <-- disabled, breaks connector sign-in
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ODJConnectorSvc
    ImagePath   REG_EXPAND_SZ   "C:\Program Files\Microsoft Intune\ODJConnector\ODJConnectorSvc\ODJConnectorSvc.exe"
    ObjectName   REG_SZ   CONTOSO\msaODJ00000$
    Start   REG_DWORD   0x00000002   (Automatic)

Only the first key above is documented by Microsoft as a connector-specific cause. The ODJConnectorSvc keys are ordinary Windows service plumbing, shown here because they are the fastest way to read the connector logon account and binary path without opening a console. Microsoft does not document a registry-backed configuration surface for the connector itself. Its settings live in two .config files instead, which is why this post has no full registry reference table.

The service account changed, and the direction matters

One more thing to get right, because it is frequently stated backwards. The legacy connector ran under the server computer context, which is why the legacy guidance says the server running the connector needs permission to create computer accounts. The updated connector moved to a low-privileged Managed Service Account (MSA). The installer creates it, names it in the format msaODJ#####, and that MSA is what needs the Create Computer objects delegation on your target OU.

Tip: you can read the account without any AD tooling. The documented instruction is to open Computer Management, expand Services and Applications, select Services, find the connector service, and read the Log On As column. If that column says LocalSystem on a connector you believe is current, you are probably still looking at the deprecated legacy build.

How to verify: six checks, five of them local

Verification order matters. Confirm the tenant view first, because it is fastest, then work down onto the server.

Check 1: the portal status page

  1. Sign in to the Microsoft Intune admin center.
  2. Select Devices in the left pane.
  3. Under By platform, select Windows.
  4. Under Device onboarding, select Enrollment.
  5. Under Windows Autopilot, select Intune Connector for Active Directory.
  6. Confirm the server appears under Connector name and shows Active under Status.
  7. Confirm the version is greater than or equal to 6.2501.2000.5.

If the page is empty, do not assume the connector was never installed. Remember the 30-day cleanup.

Check 2: the connector event log

The connector logs to a nested channel, and that channel moved at some point, which trips people up. The Microsoft FAQ states it directly. The connector originally logged in Event Viewer directly under Applications and Services Logs in a log called ODJ Connector Service. Logging has since moved to Applications and Services Logs, then Microsoft, then Intune, then ODJConnectorService.

Event Viewer — Microsoft-Intune-ODJConnectorService/Admin (illustrative)
Level   Date and Time   Source   Description
Information   18/08/2026 06:12:04   ODJConnectorSvc   ODJ request completed for CONTOSO-A1B2C3
Information   18/08/2026 06:11:58   ODJConnectorSvc   Computer object created in OU=Hybrid,DC=contoso,DC=com
Warning   19/08/2026 02:40:11   ODJConnectorSvc   Service call retried after transport failure
Error   20/08/2026 02:40:14   ODJConnectorSvc   Authentication to the Intune service failed
Error   20/08/2026 07:03:22   ODJConnectorSvc   ODJ blob request abandoned, no valid client credential

The event text above is illustrative. That matters, because Microsoft publishes no Event ID catalog for this connector. It does publish one for the Certificate Connector for Microsoft Intune, where connector health events occupy the 5000 to 5999 range. That is the other product, and reusing those IDs here would be wrong. For the ODJ connector, treat the channel as the reference rather than the ID.

Channel nameEvent Viewer pathWhat lands here
Microsoft-Intune-ODJConnectorService/AdminApplications and Services Logs, Microsoft, Intune, ODJConnectorServicePer-request outcomes and actionable failures. Start here
Microsoft-Intune-ODJConnectorService/OperationalApplications and Services Logs, Microsoft, Intune, ODJConnectorServiceOngoing operations and extra detail for debugging
ODJ Connector ServiceApplications and Services Logs, top levelThe original location. Empty or stale on current builds

Check 3: the service, the version and the certificate

Everything below is read-only. Run it elevated on the connector server.

PowerShell — on the connector server (run elevated)
Get-CimInstance Win32_Service -Filter "Name LIKE 'ODJConnector%'" | Select-Object Name, State, StartMode, StartName # Healthy: State Running, StartMode Auto, StartName a msaODJ##### managed service account. # StartName LocalSystem on a "current" connector usually means the legacy build is still there. (Get-Item 'C:\Program Files\Microsoft Intune\ODJConnector\ODJConnectorSvc\ODJConnectorSvc.exe').VersionInfo.FileVersion # Must be 6.2501.2000.5 or later. Below that, Microsoft documents it as deprecated # and unable to process enrollment requests at all. Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Subject -match 'ODJ|Intune' -or $_.Issuer -match 'ODJ|Intune' } | Select-Object Subject, Issuer, NotAfter, Thumbprint, HasPrivateKey # This is the credential nobody watches. NotAfter is the number you want on a dashboard. # HasPrivateKey False means it cannot be used for client authentication at all.
Tip: whatever the real renewal cadence turns out to be in your tenant, the useful discipline is the same. Record NotAfter today, alert 45 days out, and re-check after every patch cycle on that server. You are not trying to predict a Microsoft interval. You are trying to never be surprised by it.

Check 4: the outbound path, including inspection

PowerShell — endpoint, config and SCHANNEL check
Test-NetConnection manage.microsoft.com -Port 443 | Select-Object ComputerName, TcpTestSucceeded Test-NetConnection autoupdate.msappproxy.net -Port 443 | Select-Object ComputerName, TcpTestSucceeded # TCP reachability is necessary but not sufficient. Also check WHO signed the certificate. Get-Content 'C:\Program Files\Microsoft Intune\ODJConnector\ODJConnectorSvc\ODJConnectorSvc.exe.config' # Look for BaseServiceAddress, documented as https://manage.microsoft.com/, and for any # defaultProxy element. No defaultProxy means the connector is relying on WPAD. reg query "HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS" /v Enabled # Enabled = 0 forces TLS 1.0 or 1.1 and is a documented cause of connector sign-in failure. # "unable to find the specified registry key" here is the good outcome.

If manage.microsoft.com presents a certificate issued by your own inspection appliance rather than a public certificate authority, stop and fix that first. Nothing else you do to the connector will hold.

Checks 5 and 6: the two config files, and the tenant record from Graph

The two files that hold connector configuration both live under the install root, normally C:\Program Files\Microsoft Intune\ODJConnector\. The service uses ODJConnectorSvc\ODJConnectorSvc.exe.config. The enrollment wizard uses ODJConnectorEnrollmentWizard\ODJConnectorEnrollmentWizard.exe.config, which is also where the OU allow-list key OrganizationalUnitsUsedForOfflineDomainJoin lives, and where ODJConnectorUI.log is written.

Finally, the piece that makes real monitoring possible. Microsoft Graph exposes the connector record, so you can poll it instead of visiting a page.

PowerShell — read the tenant-side connector record (read-only)
Connect-MgGraph -Scopes 'DeviceManagementConfiguration.Read.All' $r = Invoke-MgGraphRequest -Method GET -Uri 'https://graph.microsoft.com/beta/deviceManagement/domainJoinConnectors' $r.value | Select-Object displayName, state, version, lastConnectionDateTime # state is documented with exactly three values: active, error, inactive. # lastConnectionDateTime is the last time the connector contacted Intune. Alert on it.
Context: this is a /beta endpoint. Microsoft supports the Intune beta APIs but notes they are subject to more frequent change, and recommends v1.0 wherever a v1.0 equivalent exists. For connector monitoring there is no v1.0 equivalent today, so beta is the honest answer. Pin the property names you depend on and re-test after Graph changes.

The fix: re-enroll, then close the renewal path

There is no documented renew button for this connector. Microsoft manual-update guidance for Intune connectors is to reinstall, so that is the shape of the fix. Do it in this order, because reinstalling into a broken network path just recreates the same failure with a fresher timestamp.

Step 1: fix the network path first

  1. Confirm outbound 443 to the Intune core service endpoints, including manage.microsoft.com and *.manage.microsoft.com.
  2. Exclude those hostnames from SSL inspection. This is a support requirement, not a preference.
  3. If you use a proxy and WPAD is not available, declare the proxy in both .config files. The documented options are to bypass the proxy with a defaultProxy enabled="False" element, or to pin a specific proxy with a proxy proxyaddress element.
  4. Copy the original .config files before editing them, then restart the connector service from services.msc.
  5. If PKCS key exchange was explicitly disabled, remove that value. The documented command is reg.exe delete "HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS" /v Enabled /f from an elevated prompt.

Step 2: stand up a second connector before you touch the broken one

This is the step people skip, and it is the one that saves deployment day. Multiple connectors are supported, with documented constraints. One connector per server, one connector instance per domain, and if one connector fails the requests go to another connector on another server within the same domain.

Tip: Microsoft recommends this explicitly for single-connector domains. Install the updated connector on another server first, then deal with the original. Doing it that way avoids downtime while the connector is being updated on the current server. A second connector also converts a silent single point of failure into a redundant pair you can monitor against each other.

Step 3: reinstall and re-enroll the connector

  1. Sign in to the server as a local administrator, using a domain account that can create msDs-ManagedServiceAccount objects in the Managed Service Accounts container.
  2. Uninstall the existing connector through the Settings app.
  3. Run ODJConnectorBootstrapper.exe again and select Uninstall if prompted. Microsoft documents that Settings alone does not always fully remove it, and that the bootstrapper version must match the installed connector version.
  4. Download a fresh ODJConnectorBootstrapper.exe from Intune Connector for Active Directory, then Add, in the admin center.
  5. Install it, and tick Launch Intune Connector for Active Directory at the end.
  6. On the Enrollment tab, select Sign In and authenticate with an Intune administrator account that holds an Intune license.
  7. Note the MSA name from the confirmation dialog. It is in the format msaODJ#####.
  8. Aim for version 6.2504.2001.8 or later. From that build the sign-in wizard uses WebView2, so Internet Explorer Enhanced Security Configuration no longer has to be turned off.

Step 4: re-grant the MSA its OU permission

A new install means a new MSA, and a new MSA has no delegation. By default an MSA can only create computer objects in the Computers container, and Active Directory caps any single account at ten domain joins without a delegation. Add the OUs to OrganizationalUnitsUsedForOfflineDomainJoin in the wizard config, then use Configure Managed Service Account. If the installing admin lacks OU rights, someone who has them must grant the MSA the Create Computer objects permission on the target OU through DSA.msc.

Watch out: when you delegate manually, the documented steps say to set Applies to to This object only, then clear every permission and select only Create Computer objects. Do not shortcut this by adding the MSA to Domain Admins. That does remove the ten-join limit, and it also hands a service account on an internet-facing server full control of your directory.
Gotcha: there is no Group Policy path for any of this. The connector has no ADMX template and no configuration service provider. Its configuration surface is two .config files on the server plus the Intune admin center. A hardening Group Policy Object cannot configure the connector, it can only break it, which is exactly what the SCHANNEL case is.

Step 5: confirm the domain still matches

intune.microsoft.comDevices › ConfigurationTemplatesDomain Join

The fully qualified domain name and OU in your Domain Join profile must live in the same domain as the connector. Microsoft documents error 0x80070774 during ESP as exactly this mismatch, where the connector is installed on one Active Directory domain but devices are configured for another. If you rebuilt the connector on a different server, re-read the profile before you trust it.

Proof it worked: what a healthy connector looks like

The companion script gathers every check above into one verdict, so you can schedule it rather than remember it.

PowerShell — Get-OdjConnectorHealth.ps1 output (illustrative, not a real run)
PS C:\> .\Get-OdjConnectorHealth.ps1 1. Connector service Service name ODJConnectorSvc State Running Log on as CONTOSO\msaODJ00000$ [OK] Service ODJConnectorSvc is running. [INFO] Service runs as a managed service account (expected for the updated connector). 2. Connector version File version 6.2504.2001.8 Documented min 6.2501.2000.5 [OK] Connector version meets the documented minimum. 4. Certificates that look like connector credentials NotAfter 2027-02-14 09:22 Days remaining 177 [OK] Certificate is valid for another 177 day(s). 5. Connector Event Log channels Channel Microsoft-Intune-ODJConnectorService/Admin [OK] No Error entries in the last 20 events. 7. Endpoint reachability and TLS issuer [OK] manage.microsoft.com presents a certificate from a recognised public CA. Verdict VERDICT: HEALTHY. The connector service, version, credential and event log all look good. Keep checking. Nothing in Intune will alert you when this stops being true. # Exit code 0. Any FAIL finding exits 1, so this drops straight into a monitoring job.

Then confirm the outcome in the places a stakeholder will actually accept.

SignalBroken connectorRecovered connector
Intune admin center StatusNot Active, or the server is missing entirelyServer listed, Status Active
Graph stateerror or inactiveactive
Graph lastConnectionDateTimeHours or days staleWithin the last check-in window
ODJConnectorService Admin channelRepeated Error entries, or no new entries at allFresh per-request Information entries
Local certificate NotAfterIn the past, or inside your alert thresholdComfortably in the future, with a private key
OOBE outcomeHangs and fails during device setup on ESPDomain join completes and ESP moves on

One closing point on honesty. If somebody asks you exactly how long the connector credential lasts, the correct answer is that Microsoft does not publish it. That is not a gap in your knowledge, it is a gap in the documentation, and the mitigation is the same either way. Measure the expiry you actually have, alert on it, run a second connector, and never let deployment day be the thing that tells you the connector died.

References

Microsoft official documentation, each page read while writing this post:

No community or MVP deep-dive is cited in this post. Several were checked, and none of the pages that loaded were specifically about the connector credential lifecycle or its ongoing health monitoring, so the table was left out rather than padded with something off-topic.

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.

Get-OdjConnectorHealth.ps1 — Read-only health report for the Intune Connector for Active Directory (the Offline
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
Hybrid Autopilot Fails Silently If Your ODJ Connector Is Below…
Intune Connector for Active Directory builds older than 6.2501.2000.5 can no longer…
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…