如何在 Windows 部署中使用 MBAM 启用 BitLocker

重要提示

这些说明不适用于 Configuration Manager BitLocker 管理。 Invoke-MbamClientDeployment.ps1不支持 PowerShell 脚本与 Configuration Manager 中的 BitLocker 管理配合使用。 这包括在 Configuration Manager 任务序列期间托管 BitLocker 恢复密钥。

从 Configuration Manager 版本 2103 开始,Configuration Manager BitLocker Management 不再使用 MBAM 密钥恢复服务站点来托管密钥。 尝试将 Invoke-MbamClientDeployment.ps1 PowerShell 脚本与 Configuration Manager 版本 2103 或更高版本配合使用可能会导致 Configuration Manager 站点出现严重问题。 已知问题包括创建大量面向所有设备的策略,这可能会导致策略风暴。 此行为会导致 Configuration Manager 的性能严重下降,主要在 SQL 中和管理点。 有关详细信息,请参阅 使用 MBAM 代理托管 BitLocker 恢复密钥在 Configuration Manager 版本 2103 中生成过多策略

BitLocker 管理从 Configuration Manager 开始,版本 2203 本机支持在任务序列期间通过选项“自动将恢复密钥存储在:>Configuration Manager 数据库中”启用 BitLocker 任务序列“任务托管 BitLocker 密钥。 有关详细信息,请参阅在 任务序列期间将 BitLocker 恢复密码托管到站点

只有 Configuration Manager 版本 1902 才支持与 Configuration Manager 的独立 MBAM 集成。 由于 Configuration Manager 版本 1902 不受支持,因此不再支持使用具有当前受支持的 Configuration Manager 版本的独立 MBAM 和 Invoke-MbamClientDeployment.ps1 PowerShell 脚本。 有关详细信息,请参阅 MBAM 支持的 Configuration Manager 版本。 将独立 MBAM 与 Configuration Manager 配合使用的客户应 迁移到 Configuration Manager BitLocker Management

本文介绍如何在 Windows 映像和部署过程中使用 Microsoft BitLocker 管理和监视 (MBAM) 在用户计算机上启用 BitLocker。

注意

如果在安装阶段结束后重新启动时看到黑屏,指示驱动器无法解锁,请参阅如果 预预配 BitLocker 与 Windows 10 版本 1511 配合使用,请参阅早期 Windows 版本在“设置 Windows 和配置管理器”步骤后未启动

必备条件

  • 现有 Windows 映像部署过程(Microsoft部署工具包 (MDT) 、Microsoft System Center Configuration Manager 或其他映像工具或进程)必须到位

  • 必须在 BIOS 中启用 TPM,并且对 OS 可见

  • MBAM 服务器基础结构必须到位且可访问

  • 必须创建 BitLocker 所需的系统分区

  • 在 MBAM 完全启用 BitLocker 之前,计算机必须在映像期间加入域

使用 MBAM 2.5 SP1 作为 Windows 部署的一部分启用 BitLocker

使用 Invoke-MbamClientDeployment.ps1 PowerShell 脚本在 Windows 部署期间启用 BitLocker

在 MBAM 2.5 SP1 中,在 Windows 部署期间启用 BitLocker 的建议方法是使用 Invoke-MbamClientDeployment.ps1 PowerShell 脚本。

  • 脚本 Invoke-MbamClientDeployment.ps1 在映像处理过程中执行 BitLocker。 当 BitLocker 策略要求时,当域用户在映像映像后首次登录时,MBAM 代理会立即提示域用户创建 PIN 或密码。

  • 易于与 MDT、System Center Configuration Manager 或独立映像进程配合使用

  • 与 PowerShell 2.0 或更高版本兼容

  • 使用 TPM 密钥保护程序加密 OS 卷

  • 完全支持 BitLocker 预预配

  • (可选)加密 FDD

  • 托管 TPM 所有者身份验证

    • 对于 Windows 7,MBAM 必须拥有 TPM 才能进行托管。
    • 对于Windows 8.1、Windows 10 RTM 和 Windows 10 版本 1511,支持托管 TPM OwnerAuth。
    • 对于 Windows 10 版本 1607 或更高版本,只有 Windows 可以获取 TPM 的所有权。 预配 TPM 时,Windows 不会保留 TPM 所有者密码。 有关详细信息,请参阅 TPM 所有者密码
  • 托管恢复密钥和恢复密钥包

  • 立即报告加密状态

  • 新的 WMI 提供程序

  • 详细日志记录

  • 可靠的错误处理

可以从 MBAM 客户端部署脚本下载Invoke-MbamClientDeployment.ps1脚本。 此下载是部署系统调用的主脚本,用于使用 MBAM 服务器配置 BitLocker 驱动器加密和记录恢复密钥。

MBAM 的 WMI 部署方法

为了支持使用 Invoke-MbamClientDeployment.ps1 PowerShell 脚本启用 BitLocker,MBAM 2.5 SP1 包括以下 WMI 方法:

MBAM_Machine WMI 类

  • PrepareTpmAndEscrowOwnerAuth:读取 TPM OwnerAuth,并使用 MBAM 恢复服务将其发送到 MBAM 恢复数据库。 如果 TPM 不归所有且自动预配未启用,则会生成 TPM OwnerAuth 并获取所有权。 如果失败,将返回错误代码进行故障排除。

    注意

    对于 Windows 10 版本 1607 或更高版本,只有 Windows 可以获取 TPM 的所有权。 此外,Windows 在预配 TPM 时不会保留 TPM 所有者密码。 有关详细信息,请参阅 TPM 所有者密码

    参数 说明
    RecoveryServiceEndPoint 指定 MBAM 恢复服务终结点的字符串。

    下面是常见错误消息的列表:

    常见返回值 错误消息
    S_OK
    0 (0x0)
    方法成功。
    MBAM_E_TPM_NOT_PRESENT
    2147746304 (0x80040200)
    计算机中不存在 TPM 或 BIOS 配置中禁用 TPM。
    MBAM_E_TPM_INCORRECT_STATE
    2147746305 (0x80040201)
    ) 启用、激活和所有者安装 (TPM 状态不正确。
    MBAM_E_TPM_AUTO_PROVISIONING_PENDING
    2147746306 (0x80040202)
    MBAM 无法获取 TPM 的所有权,因为自动预配挂起。 完成自动预配后重试。
    MBAM_E_TPM_OWNERAUTH_READFAIL
    2147746307 (0x80040203)
    MBAM 无法读取 TPM 所有者授权值。 成功托管后,可能会删除该值。 在 Windows 7 上,如果其他人拥有 TPM,则 MBAM 无法读取该值。
    MBAM_E_REBOOT_REQUIRED
    2147746308 (0x80040204)
    必须重启计算机才能将 TPM 设置为正确的状态。 可能需要手动重新启动计算机。
    MBAM_E_SHUTDOWN_REQUIRED
    2147746309 (0x80040205)
    计算机必须关闭并重新打开,才能将 TPM 设置为正确的状态。 可能需要手动重新启动计算机。
    WS_E_ENDPOINT_ACCESS_DENIED
    2151481349 (0x803D0005)
    远程终结点拒绝访问。
    WS_E_ENDPOINT_NOT_FOUND
    2151481357 (0x803D000D)
    远程终结点不存在或无法找到。
    **WS_E_ENDPOINT_FAILURE
    2151481357 (0x803D000F)
    远程终结点无法处理请求。
    WS_E_ENDPOINT_UNREACHABLE
    2151481360 (0x803D0010)
    无法访问远程终结点。
    WS_E_ENDPOINT_FAULT_RECEIVED
    2151481363 (0x803D0013)
    从远程终结点收到包含错误的消息。 请确保连接到正确的服务终结点。
    WS_E_INVALID_ENDPOINT_URL 2151481376 (0x803D0020) 终结点地址 URL 无效。 URL 必须以 httphttps开头。
  • ReportStatus:读取卷的符合性状态,并使用 MBAM 状态报告服务将其发送到 MBAM 符合性状态数据库。 状态包括密码强度、保护程序类型、保护程序状态和加密状态。 如果失败,将返回错误代码进行故障排除。

    参数 说明
    ReportingServiceEndPoint 指定 MBAM 状态报告服务终结点的字符串。

    下面是常见错误消息的列表:

    常见返回值 错误消息
    S_OK
    0 (0x0)
    方法成功
    WS_E_ENDPOINT_ACCESS_DENIED
    2151481349 (0x803D0005)
    远程终结点拒绝访问。
    WS_E_ENDPOINT_NOT_FOUND
    2151481357 (0x803D000D)
    远程终结点不存在或无法找到。
    WS_E_ENDPOINT_FAILURE
    2151481357 (0x803D000F)
    远程终结点无法处理请求。
    WS_E_ENDPOINT_UNREACHABLE
    2151481360 (0x803D0010)
    无法访问远程终结点。
    WS_E_ENDPOINT_FAULT_RECEIVED
    2151481363 (0x803D0013)
    从远程终结点收到包含错误的消息。 请确保连接到正确的服务终结点。
    WS_E_INVALID_ENDPOINT_URL
    2151481376 (0x803D0020)
    终结点地址 URL 无效。 URL 必须以 httphttps开头。

MBAM_Volume WMI 类

  • EscrowRecoveryKey:读取卷的恢复数字密码和密钥包,并使用 MBAM 恢复服务将它们发送到 MBAM 恢复数据库。 如果失败,将返回错误代码进行故障排除。

    参数 说明
    RecoveryServiceEndPoint 指定 MBAM 恢复服务终结点的字符串。

    下面是常见错误消息的列表:

    常见返回值 错误消息
    S_OK
    0 (0x0)
    方法成功
    FVE_E_LOCKED_VOLUME
    2150694912 (0x80310000)
    卷已锁定。
    FVE_E_PROTECTOR_NOT_FOUND
    2150694963 (0x80310033)
    找不到卷的数字密码保护程序。
    WS_E_ENDPOINT_ACCESS_DENIED
    2151481349 (0x803D0005)
    远程终结点拒绝访问。
    WS_E_ENDPOINT_NOT_FOUND
    2151481357 (0x803D000D)
    远程终结点不存在或无法找到。
    WS_E_ENDPOINT_FAILURE
    2151481357 (0x803D000F)
    远程终结点无法处理请求。
    WS_E_ENDPOINT_UNREACHABLE
    2151481360 (0x803D0010)
    无法访问远程终结点。
    WS_E_ENDPOINT_FAULT_RECEIVED
    2151481363 (0x803D0013)
    从远程终结点收到包含错误的消息。 请确保连接到正确的服务终结点。
    WS_E_INVALID_ENDPOINT_URL
    2151481376 (0x803D0020)
    终结点地址 URL 无效。 URL 必须以 httphttps开头。

使用 Microsoft Deployment Toolkit (MDT) 和 PowerShell 部署 MBAM

  1. 在 MDT 中,创建新的部署共享或打开现有的部署共享。

    注意

    可以将 PowerShell 脚本与任何映像进程或工具配合使用 Invoke-MbamClientDeployment.ps1 。 本部分介绍如何使用 MDT 集成它,但步骤类似于将其与任何其他进程或工具集成。

    注意

    如果在 Windows PE 中使用 BitLocker 预预配,并且想要维护 TPM 所有者授权值,则必须在安装重启到完整操作系统之前立即在 Windows PE 中添加 SaveWinPETpmOwnerAuth.wsf 脚本。 如果不使用此脚本,重启时将丢失 TPM 所有者授权值。

  2. 复制到 Invoke-MbamClientDeployment.ps1<DeploymentShare>\Scripts。 如果使用预预配,请将 SaveWinPETpmOwnerAuth.wsf 文件复制到 <DeploymentShare>\Scripts中。

  3. 将 MBAM 2.5 SP1 客户端应用程序添加到部署共享中的“应用程序”节点。

    1. 在“ 应用程序” 节点下,选择“ 新建应用程序”。
    2. 选择“ 包含源文件的应用程序”。 选择下一步
    3. “应用程序名称”中,键入“MBAM 2.5 SP1 客户端”。 选择下一步
    4. 浏览到包含 MBAMClientSetup-<Version>.msi的目录。 选择下一步
    5. 键入“MBAM 2.5 SP1 客户端”作为要创建的目录。 选择下一步
    6. msiexec /i MBAMClientSetup-<Version>.msi /quiet在命令行输入 。 选择下一步
    7. 接受剩余的默认值以完成“新建应用程序”向导。
  4. 在 MDT 中,右键单击部署共享的名称,然后选择“ 属性”。 选择“ 规则 ”选项卡。添加以下行:

    SkipBitLocker=YES``BDEInstall=TPM``BDEInstallSuppress=NO``BDEWaitForEncryption=YES

    选择“确定”关闭窗口。

  5. 在“任务序列”节点下,编辑用于 Windows 部署的现有任务序列。 如果需要,可以通过右键单击“ 任务序列 ”节点,选择“新建任务序列”并完成向导来创建新的 任务序列

    在所选任务序列的“任务序列”选项卡上,执行以下步骤:

    1. 若要在 WinPE 中启用 BitLocker,请在 “预安装 ”文件夹下启用可选任务 “启用 BitLocker (脱机) ,该任务仅加密已用空间。

    2. 若要在使用预预配时保留 TPM OwnerAuth,允许 MBAM 稍后对其进行托管,请执行以下操作:

      1. 查找 “安装操作系统 ”步骤

      2. 在步骤后面添加新 的“运行命令行” 步骤

      3. 将步骤命名 为“持久化 TPM 所有者身份验证”

      4. 将命令行设置为 cscript.exe "%SCRIPTROOT%/SaveWinPETpmOwnerAuth.wsf"

        注意

        对于 Windows 10 版本 1607 或更高版本,只有 Windows 可以获取 TPM 的所有权。 预配 TPM 时,Windows 不会保留 TPM 所有者密码。 有关详细信息,请参阅 TPM 所有者密码

    3. “状态还原” 文件夹中,删除 “启用 BitLocker” 任务。

    4. 在“自定义任务”下的“状态还原”文件夹中,创建新的“安装应用程序”任务并将其命名为“安装 MBAM 代理”。 选择“ 安装单一应用程序 ”单选按钮,并浏览到之前创建的 MBAM 2.5 SP1 客户端应用程序。

    5. 在“自定义任务”下的“状态还原”文件夹中, (在 MBAM 2.5 SP1 客户端应用程序步骤) 之后,创建一个新的运行 PowerShell 脚本任务) , (根据需要更新环境参数) :

      • 名称:为 MBAM 配置 BitLocker

      • PowerShell 脚本: Invoke-MbamClientDeployment.ps1

      • 参数:

        参数 要求 说明
        -RecoveryServiceEndpoint 必需 MBAM 恢复服务终结点。
        -StatusReportingServiceEndpoint 可选 MBAM 状态报告服务终结点。
        -EncryptionMethod 可选 加密方法 (默认值:AES 128) 。
        -EncryptAndEscrowDataVolume 开关 指定 以加密数据卷并托管数据卷恢复密钥。
        -WaitForEncryptionToComplete 开关 指定 以等待加密完成。
        -DoNotResumeSuspendedEncryption 开关 指定部署脚本不会恢复挂起的加密。
        -IgnoreEscrowOwnerAuthFailure 开关 指定 以忽略 TPM 所有者身份验证托管失败。 在 MBAM 无法读取 TPM 所有者身份验证的情况下,应使用它。例如,如果启用了 TPM 自动预配。
        -IgnoreEscrowRecoveryKeyFailure 开关 指定 以忽略卷恢复密钥托管失败。
        -IgnoreReportStatusFailure 开关 指定 以忽略状态报告失败。

使用 MBAM 2.5 或更早版本作为 Windows 部署的一部分启用 BitLocker

  1. 安装 MBAM 客户端。 有关说明,请参阅 如何使用命令行部署 MBAM 客户端

  2. 将计算机加入 (建议) 域。

    • 如果计算机未加入域,则恢复密码不会存储在 MBAM 密钥恢复服务中。 默认情况下,除非可以存储恢复密钥,否则 MBAM 不允许进行加密。

    • 如果计算机在恢复密钥存储在 MBAM 服务器上之前以恢复模式启动,则没有可用的恢复方法,并且必须重置计算机映像。

  3. 以管理员身份打开命令提示符,并停止 MBAM 服务。

  4. 键入以下命令,将服务设置为 “手动 ”或“ 按需 ”:

    net stop mbamagent

    sc config mbamagent start= demand

  5. 设置注册表值,使 MBAM 客户端忽略组策略设置,改为设置加密以开始将 Windows 部署到该客户端计算机的时间。

    注意

    此步骤介绍如何修改 Windows 注册表。 错误地使用注册表编辑器可能会导致需要重新安装 Windows 的严重问题。 我们无法保证可以解决注册表编辑器使用不当导致的问题。 使用注册表编辑器的风险自担。

    1. 设置 仅限操作系统的 TPM 加密,运行 Regedit.exe,然后从 C:\Program Files\Microsoft\MDOP MBAM\MBAMDeploymentKeyTemplate.reg导入注册表项模板。

    2. 在 Regedit.exe 中,转到 HKLM\SOFTWARE\Microsoft\MBAM,并配置下表中列出的设置。

      注意

      可以在此处设置与 MBAM 相关的组策略设置或注册表值。 这些设置将替代以前设置的值。

      注册表项 配置设置
      DeploymentTime 0 = 关闭
      1 = 使用部署时间策略设置 (默认) - 使用此设置在将 Windows 部署到客户端计算机时启用加密。
      UseKeyRecoveryService 0 = 不使用密钥托管。 在这种情况下,不需要接下来的两个注册表项。
      1 = 在密钥恢复系统中使用密钥托管 (默认)
      建议使用此设置,使 MBAM 能够存储恢复密钥。 计算机必须能够与 MBAM 密钥恢复服务通信。 在继续操作之前,请验证计算机是否可以与服务通信。
      KeyRecoveryOptions 0 = 仅上传恢复密钥
      1 = 上传恢复密钥和密钥恢复包 (默认)
      KeyRecoveryServiceEndPoint 将此值设置为运行密钥恢复服务的服务器的 URL, https://<computer name>/MBAMRecoveryAndHardwareService/CoreService.svc例如 。
  6. MBAM 客户端在 MBAM 客户端部署期间重启系统。 准备好进行此重启后,以管理员身份在命令提示符处运行以下命令:

    net start mbamagent

  7. 当计算机重新启动,BIOS 提示你时,接受 TPM 更改。

  8. 在 Windows 客户端操作系统映像过程中,当你准备好开始加密时,以管理员身份打开命令提示符,并键入以下命令,将启动设置为 “自动 ”并重启 MBAM 客户端代理:

    sc config mbamagent start= auto

    net start mbamagent

  9. 若要删除旁路注册表值,请运行 Regedit.exe,然后转到 HKLM\SOFTWARE\Microsoft 注册表项。 右键单击 MBAM 节点,然后选择“ 删除”。

部署 MBAM 2.5 客户端

规划 MBAM 2.5 客户端部署