2025年3月

1.配置域内电脑将BitLocker恢复密码保存到AD中

计算机配置 → 策略 → 管理模板 → Windows组件 → BitLocker驱动器加密
根据具体需要(如固定数据驱动器、操作系统驱动器),设置:

操作系统驱动器
配置策略:
操作系统驱动器 → 选择如何恢复BitLocker保护的操作系统驱动器
勾选:
    启用
    在选项中选择:
    ✔️将BitLocker恢复信息保存到Active Directory域服务
    ✔️不要启用BitLocker,除非恢复信息存储到AD中

2.如何在AD域控制器中查看已存储的BitLocker恢复密钥:

 步骤1:安装BitLocker的AD架构扩展(如果从未安装过)
    Add-WindowsFeature RSAT-Feature-Tools-BitLocker-BdeAducExt
 步骤2:运行AD权限脚本授权计算机存储恢复信息
 # 在域控上,打开CMD或PowerShell并执行此命令:
    Invoke-command { regsvr32 bdeaducext.dll }
 步骤3:给计算机对象赋予权限(脚本)
   dsacls "OU=Computers,DC=yourdomain,DC=com" /I:S /G "SELF:CCDC;msFVE-RecoveryInformation"
       给计算机对象赋予权限(GUI)
       域控服务器上,打开 Active Directory用户和计算机。
         找到需要设置权限的OU,例如:Computers,右键点击此OU,选择:属性 → 安全 → 高级
         点击 添加 按钮。点击 选择主体,输入:SELF
         选择权限类型及对象,类型:允许,应用于:后代 msFVE-RecoveryInformation 对象
         权限勾选:
           勾选『创建msFVE-RecoveryInformation对象』
           勾选『删除msFVE-RecoveryInformation对象』
         确定 → 应用 → 确定

3.手工上传bitlocker信息 (两边做gpupdate /force)

 manage-bde -protectors -get C:
 manage-bde -protectors -adbackup C: -id "{恢复密码ID}"

4.批量上传所有的bitlocker密码

 AD域只对增量电脑管理,存量电脑需要收集

# 批量上传本地所有BitLocker驱动器恢复密钥到AD
$BitLockerVolumes = Get-BitLockerVolume | Where-Object {$_.VolumeStatus -eq 'FullyEncrypted'}

foreach ($volume in $BitLockerVolumes) {

$protectors = $volume.KeyProtector | Where-Object { $_.KeyProtectorType -eq 'RecoveryPassword' }

foreach ($protector in $protectors) {
    manage-bde -protectors -adbackup $volume.MountPoint -id $protector.KeyProtectorId
}

}

    将上述脚本放到网络共享路径上,如:
\\yourdomain.com\NETLOGON\push-bitlocker-to-ad.ps1
     在组策略中配置:
   计算机配置 → 策略 → Windows 设置 → 脚本(启动/关机) → 启动
  1. 最终批量验证结果
    到域控的『Active Directory 用户和计算机』管理工具里查看计算机属性,确认BitLocker恢复选项卡中已显示对应计算机的恢复密码。
    也可以在域控电脑上执行powershell 批量获得
 Get-ADComputer -Filter * -SearchBase "OU=Computers,DC=yourdomain,DC=com" | ForEach-Object {
    $comp = $_.Name
    $recoveryInfo = Get-ADObject -Filter 'objectclass -eq "msFVE-RecoveryInformation"' -SearchBase $_.DistinguishedName -Properties 'msFVE-RecoveryPassword'

    [PSCustomObject]@{
        Computer = $comp
        RecoveryKeysUploaded = if($recoveryInfo){'Yes'}else{'No'}
    }
} | Format-Table -AutoSize