Yeah, that error stops you dead in the middle of a BitLocker rollout, and the message "The attribute was not set" is about as helpful as a flat tire. Let's fix it.
Fastest fix: grant the computer account write permission
In 9 out of 10 cases, this isn't a schema problem. It's an AD permission problem. The BitLocker recovery password is written to the computer object's ms-FVE-RecoveryPassword attribute, and your computer account doesn't have the right to write it. Here's the fix:
- Open ADSI Edit (or use
dsacls.exeif you prefer command line). - Navigate to the computer object that's failing (or the OU containing it).
- Right-click → Properties → Security tab.
- Add the computer's machine account (e.g.,
YOURCOMPUTER$) if it isn't already listed. - Grant it Write ms-FVE-RecoveryPassword and Write ms-FVE-VolumeGuid permissions.
If you're dealing with many machines, push it via GPO or delegate the permission to the entire OU. The key is that the computer account itself needs write access to those specific attributes—not the user, not the domain admins.
Alternatively, you can run this from an elevated PowerShell on a domain controller:
dsacls "CN=Computers,DC=yourdomain,DC=com" /G "SELF:WP;ms-FVE-RecoveryPassword"
That grants all computer accounts in the Computers container the right to write their own recovery password attribute. Adjust the path to match your OU.
Why this works
Here's what's actually happening. When BitLocker tries to back up the recovery password, it uses the computer account's credentials to bind to AD and write to its own object. If that account lacks the write permission on the ms-FVE-* attributes, the write fails, and you get FVE_E_AD_ATTR_NOT_SET. The error code specifically means the backup operation couldn't set the attribute—not that the attribute is missing from the schema. So fixing permissions resolves it because now the write succeeds.
The reason step 4–5 work is that you're giving the machine account the exact delegation it needs. Without it, even a domain admin running Enable-BitLocker might hit this if the computer object's security descriptor doesn't allow the write on that attribute.
Less common variations
If the permission fix doesn't cure it, you're dealing with a different beast. Here are the usual suspects:
1. Schema not extended (really rare but happens)
If someone built AD from scratch without extending the schema for BitLocker (or using the adprep /forestprep on an older domain), the ms-FVE-RecoveryPassword attribute won't exist. Check with:
Get-ADObject -Filter {Name -eq 'ms-FVE-RecoveryPassword'} -SearchBase (Get-ADRootDSE).SchemaNamingContext
If nothing comes back, you need to extend the schema. Run adprep.exe /forestprep from the Windows Server installation media, then adprep /domainprep on each domain. Reboot the DCs. That's the nuclear option, but it's the only way if the attribute is truly missing.
2. AD credentials are wrong or misconfigured
Sometimes the error appears when you're using a user account to back up the password, but BitLocker expects the computer account. Or the Group Policy setting "Configure use of passwords for operating system drives" is set to "Require password complexity", which forces a different attribute path. Check the GPO path:
Computer Configuration \ Policies \ Administrative Templates \ Windows Components \ BitLocker Drive Encryption \ Operating System Drives
If "Require additional authentication at startup" is enabled and "Allow BitLocker without a compatible TPM" is off, the recovery password should still be written. But if you've also enabled "Do not enable BitLocker until recovery information is backed up to AD", the policy will block encryption entirely if the write fails. That's often hidden behind this same error.
3. Time skew between DCs
Sounds stupid, but if the DC you're writing to has a clock skew greater than 5 minutes, Kerberos authentication breaks, and the write operation fails with a generic error that maps to this code. Check w32tm /stripchart /computer:<DC name> to verify. Fix the time source and see if the error goes away.
4. Attribute is set but not replicated
If you wrote the password successfully on a DC but the AD replication is lagging, you'll get this error if BitLocker tries to read it back from a different DC. Force replication with:
repadmin /syncall /AdeP
Then retry. This is less common but happens in multi-site environments.
Prevention
Prevention here is about setting up your AD the right way from the start. When you're planning a BitLocker rollout, don't rely on default permissions. In every environment I've seen, the default permissions on computer objects do not include write access to ms-FVE-RecoveryPassword for the machine account itself. So before you even enable BitLocker on the first machine, delegate those permissions to the target OUs. Document it in your runbook.
Also, make sure your schema is prepared before you introduce Windows 10/11 or Server 2016+ machines. Running adprep once during initial AD deployment saves you the headache later.
And check your GPOs. If you set "Require BitLocker backup to AD", test it on a single machine first. That policy turns a silent write failure into a hard error like this one. Testing on one box takes five minutes and beats rolling out to 200 machines only to find none of them encrypt.
If you've done all that and still see 0x8031000E, check the event logs under Microsoft-Windows-BitLocker-DriveEncryption/Operational for the exact error details. Sometimes the real error is buried one level deeper, and this code is just the surface symptom.