BitLocker Escrow
A PowerShell script that checks whether a device's BitLocker recovery key really escrowed to Entra ID, and forces the backup when it did not.
What it does
- Checks for event 845 in the BitLocker-API/Management log, which is written when a key is backed up to Entra ID successfully
- Treats the device as escrowed only if that event was logged inside your window, so an already-backed-up key is not re-sent every run
- Forces the backup with
BackupToAAD-BitLockerKeyProtectorfor every RecoveryPassword protector when nothing is confirmed - Handles the awkward cases: no recovery protector present, or more than one protector on a volume
- Reports only by default. Nothing changes until you set
$WhatIfto$false - Logs every action to
%LOCALAPPDATA%\Atliso\BitLockerEscrow.log
Get the script
From the PowerShell Gallery with Install-Script Atliso-BitLockerEscrow -Scope CurrentUser, or download it from GitHub.
Configuration
You edit one block:
# ══════════════ EDIT THIS BLOCK FOR YOUR ENVIRONMENT ══════════════
$VolumesToCheck = @("C:") # add data volumes if you encrypt them
$MaxAgeDays = 7 # a confirmed backup inside this window counts as escrowed
$WhatIf = $true # $false to actually force the escrowDeploy in Intune
- In the Intune admin center: Devices > Scripts and remediations > Remediations > Create.
- Use the detection half (exits 1 when no recent escrow is confirmed) as the detection script.
- Use this script with
-WhatIf $falseas the remediation script. - Run as SYSTEM in the 64-bit PowerShell host.
Full walkthrough with screenshots: BitLocker Recovery Key Missing From Intune? Force the Escrow Fleet-Wide
If the drive shows Protection Off or waiting for activation rather than a missing key, use BitLocker Protection Fix.
Version history
Scripts are checked against each month's Windows and Intune changes and patched when something breaks. Every version stays available: if a newer one misbehaves in your environment, use the one before it and reply to any Atliso email to tell me.
v1.0.1Latest
Download v1.0.1 from GitHubAdds PowerShell Gallery metadata (PSScriptInfo) so the script can be installed with
Install-Script Atliso-BitLockerEscrow. No change to what the script does.v1.0.0
Download v1.0.0 from GitHubInitial public release. MIT licensed. Download the zip below or clone the repo. See README for usage and the linked Atliso guide.
Get BitLocker Escrow
We'll send the script plus the deployment checklist, and updates when Microsoft changes something. No spam.