Windows Components › BitLocker Drive Encryption
Store BitLocker recovery information in Active Directory Domain Services (Windows Server 2008 and Windows Vista)
Supported on Windows Server 2008 and Windows Vista
What it does
This policy setting allows you to manage the Active Directory Domain Services (AD DS) backup of BitLocker Drive Encryption recovery information. This provides an administrative method of recovering data encrypted by BitLocker to prevent data loss due to lack of key information. This policy setting is only applicable to computers running Windows Server 2008 or Windows Vista. If you enable this policy setting, BitLocker recovery information is automatically and silently backed up to AD DS when BitLocker is turned on for a computer. This policy setting is applied when you turn on BitLocker. Note: You might need to set up appropriate schema extensions and access control settings on the domain before AD DS backup can succeed. More information about setting up AD DS backup for BitLocker is available on Microsoft TechNet. BitLocker recovery information includes the recovery password and some unique identifier data. You can also include a package that contains a BitLocker-protected drive's encryption key. This key package is secured by one or more recovery passwords and may help perform specialized recovery when the disk is damaged or corrupted. If you select the option to "Require BitLocker backup to AD DS" BitLocker cannot be turned on unless the computer is connected to the domain and the backup of BitLocker recovery information to AD DS succeeds. This option is selected by default to help ensure that BitLocker recovery is possible. If this option is not selected, AD DS backup is attempted but network or other backup failures do not prevent BitLocker setup. Backup is not automatically retried and the recovery password may not have been stored in AD DS during BitLocker setup. If you disable or do not configure this policy setting, BitLocker recovery information is not backed up to AD DS. Note: Trusted Platform Module (TPM) initialization might occur during BitLocker setup. Enable the "Turn on TPM backup to Active Directory Domain Services" policy setting in System\Trusted Platform Module Services to ensure that TPM information is also backed up.
What it writes
- Hive
- HKEY_LOCAL_MACHINE
- Registry key
Software\Policies\Microsoft\FVE- Value name
ActiveDirectoryBackup- When enabled
- DWORD 1
- When disabled
- DWORD 0
Why it needs changes for Intune
- Policy references a Windows supportedOn definition.
- ADMX-INTUNE-WINDOWS-SUPPORTEDON-REFERENCE
In Intune
No native CSP; import the ADMX (needs changes first).
From Microsoft's Policy CSP DDF files (DDF v2 Files, February 2026), read 18 Oct 2026.
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| Require BitLocker backup to AD DSDefault: checked | Checkbox | RequireActiveDirectoryBackup |
On (1) or off (0) |
| Select BitLocker recovery information to storeRequiredDefault: Recovery passwords and key packages | Drop-down list | ActiveDirectoryInfoToStore |
|
Configure and deploy
Choose a state and the option values; the output below is generated from the template for exactly that.
Enabled · Computer · template defaults
Registry file (.reg)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE]
"ActiveDirectoryBackup"=dword:00000001
"ActiveDirectoryInfoToStore"=dword:00000001
"RequireActiveDirectoryBackup"=dword:00000001
PowerShell
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: Store BitLocker recovery information in Active Directory Domain Services (Windows Server 2008 and Windows Vista)
# Name: ActiveDirectoryBackup_Name
# Scope: Machine
# State: Enabled
# Source: VolumeEncryption.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE' -Name 'ActiveDirectoryBackup' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE' -Name 'RequireActiveDirectoryBackup' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE' -Name 'ActiveDirectoryInfoToStore' -PropertyType 'DWord' -Value 1
- The OMA-URI is an inferred ADMX-backed Policy CSP candidate derived from the source ADMX file name and policy name.
- Some Microsoft policies use built-in Policy CSP pages whose area names don't match the ADMX file name, so verify the candidate against Microsoft Learn before deployment.
ADMX profile candidate (OMA-URI)
./Device/Vendor/MSFT/Policy/Config/ADMX_VolumeEncryption/ActiveDirectoryBackup_NameADMX SyncML candidate
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncBody>
<Replace>
<CmdID>1</CmdID>
<Item>
<Meta>
<Format>chr</Format>
<Type>text/plain</Type>
</Meta>
<Target>
<LocURI>./Device/Vendor/MSFT/Policy/Config/ADMX_VolumeEncryption/ActiveDirectoryBackup_Name</LocURI>
</Target>
<Data><enabled/>
<data id="RequireActiveDirectoryBackup_Name" value="true"/>
<data id="ActiveDirectoryBackupDropDown_Name" value="1"/></Data>
</Item>
</Replace>
<Final/>
</SyncBody>
</SyncML>Intune remediation scripts
Detection
$ErrorActionPreference = 'Stop'
$reasons = [System.Collections.Generic.List[string]]::new()
function Test-RegistryValueExists {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
return $null -ne (Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue)
}
function Test-RegistryValueEquals {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $Kind,
[Parameter(Mandatory = $true)][object] $Expected
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
$valueObject = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue
if ($null -eq $valueObject) {
return $false
}
$actual = $valueObject.$Name
switch ($Kind) {
'String' { return [string]$actual -ceq [string]$Expected }
'ExpandString' { return [string]$actual -ceq [string]$Expected }
'DWord' { return [uint32]$actual -eq [uint32]$Expected }
'QWord' { return [uint64]$actual -eq [uint64]$Expected }
'MultiString' {
$actualArray = @($actual)
$expectedArray = @($Expected)
if ($actualArray.Count -ne $expectedArray.Count) { return $false }
for ($index = 0; $index -lt $actualArray.Count; $index++) {
if ([string]$actualArray[$index] -cne [string]$expectedArray[$index]) { return $false }
}
return $true
}
'Binary' {
$actualArray = [byte[]]$actual
$expectedArray = [byte[]]$Expected
if ($actualArray.Length -ne $expectedArray.Length) { return $false }
for ($index = 0; $index -lt $actualArray.Length; $index++) {
if ($actualArray[$index] -ne $expectedArray[$index]) { return $false }
}
return $true
}
default { return [string]$actual -ceq [string]$Expected }
}
}
# Policy: Store BitLocker recovery information in Active Directory Domain Services (Windows Server 2008 and Windows Vista)
# Name: ActiveDirectoryBackup_Name
# Scope: Machine
# State: Enabled
# Source: VolumeEncryption.admx
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE' -Name 'ActiveDirectoryBackup' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE\ActiveDirectoryBackup') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE' -Name 'RequireActiveDirectoryBackup' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE\RequireActiveDirectoryBackup') | Out-Null
}
$isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE' -Name 'ActiveDirectoryInfoToStore' -Kind 'DWord' -Expected 1
if (-not $isMatch) {
$reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE\ActiveDirectoryInfoToStore') | Out-Null
}
if ($reasons.Count -eq 0) {
Write-Output 'Compliant'
exit 0
}
$reasons | ForEach-Object { Write-Output $_ }
exit 1
Remediation
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: Store BitLocker recovery information in Active Directory Domain Services (Windows Server 2008 and Windows Vista)
# Name: ActiveDirectoryBackup_Name
# Scope: Machine
# State: Enabled
# Source: VolumeEncryption.admx
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE' -Name 'ActiveDirectoryBackup' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE' -Name 'RequireActiveDirectoryBackup' -PropertyType 'DWord' -Value 1
Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\FVE' -Name 'ActiveDirectoryInfoToStore' -PropertyType 'DWord' -Value 1
History 5 retained releases
- 22H2 · 1.015 Jul 2024
- Already present in the first release ChangeIntel keeps.
4 later releases left it unchanged.
Template
- Internal name
ActiveDirectoryBackup_Name- Namespace
Microsoft.Policies.VolumeEncryption- Template file
VolumeEncryption.admx- Release
- Windows 11 25H2 · 1.0 · file set
de4e49983ebd651f…
Definition, editor controls and support
Definition
<policy class="Machine" displayName="$(string.ActiveDirectoryBackup_Name)" explainText="$(string.ActiveDirectoryBackup_Help)" key="Software\Policies\Microsoft\FVE" name="ActiveDirectoryBackup_Name" presentation="$(presentation.ActiveDirectoryBackup_Name)" valueName="ActiveDirectoryBackup" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.VolumeEncryption:FVECategory" />
<supportedOn ref="Microsoft.Policies.Windows:SUPPORTED_WindowsVistaOrServer2008Only" />
<enabledValue>
<decimal value="1" />
</enabledValue>
<disabledValue>
<decimal value="0" />
</disabledValue>
<elements>
<boolean id="RequireActiveDirectoryBackup_Name" valueName="RequireActiveDirectoryBackup">
<trueValue>
<decimal value="1" />
</trueValue>
<falseValue>
<decimal value="0" />
</falseValue>
</boolean>
<enum id="ActiveDirectoryBackupDropDown_Name" required="true" valueName="ActiveDirectoryInfoToStore">
<item displayName="$(string.ActiveDirectoryBackupDropDown_1)">
<value>
<decimal value="1" />
</value>
</item>
<item displayName="$(string.ActiveDirectoryBackupDropDown_2)">
<value>
<decimal value="2" />
</value>
</item>
</enum>
</elements>
</policy>Editor controls
<presentation id="ActiveDirectoryBackup_Name" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<checkBox defaultChecked="true" refId="RequireActiveDirectoryBackup_Name">Require BitLocker backup to AD DS</checkBox>
<text>If selected, cannot turn on BitLocker if backup fails (recommended default). </text>
<text>If not selected, can turn on BitLocker even if backup fails. Backup is not automatically retried.</text>
<dropdownList defaultItem="0" noSort="true" refId="ActiveDirectoryBackupDropDown_Name">Select BitLocker recovery information to store:</dropdownList>
<text />
<text>A recovery password is a 48-digit number that unlocks access to a BitLocker-protected drive.</text>
<text>A key package contains a drive's BitLocker encryption key secured by one or more recovery passwords</text>
<text>Key packages may help perform specialized recovery when the disk is damaged or corrupted. </text>
</presentation>Supported platforms and category
Microsoft.Policies.VolumeEncryption:category:FVECategory
<category displayName="$(string.FVECategory)" name="FVECategory" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.Windows:WindowsComponents" />
</category>
Microsoft.Policies.Windows:category:WindowsComponents
<category displayName="$(string.WindowsComponents)" explainText="$(string.WindowsComponents_Help)" name="WindowsComponents" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
Microsoft.Policies.Windows:definition:SUPPORTED_WindowsVistaOrServer2008Only
<definition displayName="$(string.SUPPORTED_WindowsVistaOrServer2008Only)" name="SUPPORTED_WindowsVistaOrServer2008Only" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<or>
<reference ref="Microsoft.Policies.Products:MicrosoftWindowsVista" />
<reference ref="Microsoft.Policies.Products:WindowsServer2008" />
</or>
</definition>
Microsoft.Policies.Windows:unresolved:Microsoft.Policies.Products:MicrosoftWindowsVista
<unresolved reference="Microsoft.Policies.Products:MicrosoftWindowsVista" />
Microsoft.Policies.Windows:unresolved:Microsoft.Policies.Products:WindowsServer2008
<unresolved reference="Microsoft.Policies.Products:WindowsServer2008" />
Microsoft.Policies.VolumeEncryption:category:FVECategory
<category displayName="$(string.FVECategory)" name="FVECategory" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="Microsoft.Policies.Windows:WindowsComponents" />
</category>
<strings><string id="Microsoft.Policies.VolumeEncryption:FVECategory">BitLocker Drive Encryption</string></strings>
Microsoft.Policies.Windows:category:WindowsComponents
<category displayName="$(string.WindowsComponents)" explainText="$(string.WindowsComponents_Help)" name="WindowsComponents" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="Microsoft.Policies.Windows:WindowsComponents">Windows Components</string><string id="Microsoft.Policies.Windows:WindowsComponents_Help">Contains settings for operating system components.</string></strings>
Microsoft.Policies.Windows:definition:SUPPORTED_WindowsVistaOrServer2008Only
<definition displayName="$(string.SUPPORTED_WindowsVistaOrServer2008Only)" name="SUPPORTED_WindowsVistaOrServer2008Only" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<or>
<reference ref="Microsoft.Policies.Products:MicrosoftWindowsVista" />
<reference ref="Microsoft.Policies.Products:WindowsServer2008" />
</or>
</definition>
<strings><string id="Microsoft.Policies.Windows:SUPPORTED_WindowsVistaOrServer2008Only">Windows Server 2008 and Windows Vista</string></strings>