【bat】manage-bdeコマンド完全ガイド|BitLockerの有効化・状態確認・回復キー管理・暗号化進捗監視をバッチで自動化

【bat】manage-bdeコマンド完全ガイド|BitLockerの有効化・状態確認・回復キー管理・暗号化進捗監視をバッチで自動化 bat

「社内PCのBitLocker暗号化状態を一括確認したい」「新しいPCの初期設定でBitLockerを自動有効化したい」という場面に最適なのが manage-bde(マネージ・ビーディーイー)コマンドです。Windows Vista以降に標準搭載されており、BitLockerドライブ暗号化のすべての操作をコマンドラインから実行できます。

本記事では、manage-bdeの基本構文から、BitLockerの有効化・状態確認・回復キーのバックアップ・暗号化進捗の監視、USBドライブのBitLocker To Go操作、TPM管理、そして複数PC一括管理やタスクスケジューラとの連携まで、実際に動作するバッチスクリプトを使って徹底解説します。

本記事で分かること

  • manage-bdeコマンドの基本構文とオプション一覧
  • BitLockerの有効化・無効化・一時停止の方法
  • 暗号化状態の確認と進捗監視スクリプト
  • 回復キーのバックアップとセキュアな管理
  • BitLocker To Go(USBドライブ・外付けHDD)の操作
  • TPMの状態確認とトラブルシューティング
  • 複数ドライブ・複数PCのBitLocker一括管理
  • タスクスケジューラによる定期的な状態チェック

manage-bdeの使用には管理者権限が必要です
本記事のすべてのコマンドは管理者権限(Administrator)で実行する必要があります。また、BitLockerはWindows 10/11 Pro・Enterprise・Education以上で利用できます。Homeエディションでは機能が制限されます。

スポンサーリンク
  1. manage-bdeとBitLockerとは
  2. manage-bdeの基本構文とサブコマンド一覧
  3. BitLockerの状態確認(-status)
    1. 状態を変数に取り込んで判定する
    2. 暗号化の進捗率を取得する
  4. TPMの状態確認(-tpm)
  5. BitLockerの有効化(-on)
    1. 基本的な有効化
    2. 主要な有効化オプション一覧
    3. TPMなし環境(パスワード認証)での有効化
  6. 回復キーのバックアップと管理(-protectors)
    1. 回復キーをファイルにバックアップする
    2. 回復キーID一覧の取得・追加・削除
  7. 暗号化進捗の監視スクリプト
  8. BitLockerの無効化・一時停止
    1. BitLockerを無効化する
  9. ドライブのロック・アンロック
    1. ドライブをロックする
    2. 回復パスワードを使ってドライブをアンロックする
    3. パスワードでアンロックする
    4. データドライブの自動アンロックを設定する
  10. BitLocker To Go(USBドライブ・外付けHDDの暗号化)
    1. USBドライブをBitLockerで暗号化する
    2. USBドライブのBitLocker状態を確認する
    3. 暗号化済みUSBをアンロックしてアクセスする
  11. 複数ドライブの一括管理
  12. 実践的な活用パターン
    1. パターン①:新PC初期設定での自動BitLocker有効化
    2. パターン②:定期的なBitLocker状態チェックとアラート
    3. パターン③:ノートPCのバッテリー低下時に暗号化を一時停止する
    4. パターン④:タスクスケジューラで回復キーを定期バックアップ
    5. パターン⑤:外付けHDD持ち出し管理スクリプト
    6. パターン⑥:BitLocker障害時の回復手順スクリプト
  13. manage-bdeでよく発生するエラーと対処法
    1. エラー①:「操作できません: ボリュームは既に暗号化されています」
    2. エラー②:「このコンピューターには互換性のあるTPMセキュリティデバイスが見つかりません」
    3. エラー③:「アクセスが拒否されました」
    4. エラー④:「指定されたドライブはスペースが不足しているため暗号化できません」
    5. エラー⑤:英語環境でfindstrのキーワードが一致しない
    6. エラー⑥:BitLockerサービスが起動していない
    7. エラー⑦:manage-bdeの出力が空または途中で切れる
  14. manage-bdeとPowerShellの使い分け
  15. セキュリティ上の注意事項
  16. よくある質問
  17. まとめ

manage-bdeとBitLockerとは

BitLocker(ビットロッカー)はWindowsに内蔵されているドライブ暗号化機能です。ドライブ全体をAES暗号化することで、PCが盗難・紛失した場合でもデータを保護できます。manage-bdeはBitLockerをコマンドラインから操作するための専用ツールです。

操作ツール 特徴 向いている場面
コントロールパネル GUIで操作。わかりやすい 個人PCの手動設定
manage-bde コマンドライン。バッチで自動化可能 複数PC管理・自動化・スクリプト組み込み
PowerShell Enable-BitLocker より詳細な制御が可能 高度なカスタマイズ・パイプライン処理
グループポリシー ドメイン環境で一括設定 Active Directory環境での管理

manage-bdeが特に威力を発揮するのは、複数PCへの展開や定期的な状態監視のバッチ自動化です。GUIでは1台ずつ操作が必要な作業を、バッチスクリプトで一括処理できます。

manage-bdeの基本構文とサブコマンド一覧

基本構文
manage-bde [サブコマンド] [ドライブ文字:] [オプション]
サブコマンド 説明 主な用途
-status BitLockerの現在の状態を表示 有効/無効の確認・暗号化率の確認
-on BitLockerを有効にする(暗号化開始) 新規PCのセットアップ
-off BitLockerを無効にする(復号化開始) 暗号化の解除
-pause 暗号化・復号化を一時停止 重い処理中の負荷軽減
-resume 一時停止した暗号化・復号化を再開 一時停止後の再開
-lock ドライブをロックする データドライブの強制ロック
-unlock ドライブのロックを解除する 回復キー・パスワードでのロック解除
-protectors プロテクター(保護方法)の管理 回復キーの追加・削除・バックアップ
-changekey 暗号化キーを変更する セキュリティ強化
-autounlock 自動ロック解除の設定 データドライブの自動解除設定
-tpm TPMの状態を管理する TPM設定の確認・変更
-forcerecovery 次回起動時に回復モードを強制 回復テスト・トラブルシューティング

BitLockerの状態確認(-status)

まず最もよく使うのが状態確認です。manage-bde -status を実行すると、すべてのドライブのBitLocker状態が表示されます。

基本的な状態確認
:: すべてのドライブの状態を確認
manage-bde -status

:: 特定ドライブ(C:)の状態を確認
manage-bde -status C:

出力例は次のとおりです。

status出力例
ボリューム C: [OS]
[BitLocker Drive Encryption: ボリューム状態の概要]

    サイズ:                  237.89 GB
    BitLocker のバージョン:  2.0
    変換状態:                完全に暗号化されています
    変換の割合:              100.0%
    暗号化メソッド:          XTS-AES 128
    保護の状態:              保護はオンです
    ロックの状態:            ロックされていません
    ID フィールド:           {XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
    キー プロテクター:
        TPM
        回復パスワード

状態を変数に取り込んで判定する

バッチ処理でBitLockerの状態を判定するには、manage-bdeの出力を findstr でフィルタリングします。

bitlocker_check.bat
@echo off
setlocal enabledelayedexpansion

set DRIVE=C:

:: BitLockerの有効/無効を確認
manage-bde -status %DRIVE% | findstr /i "保護はオン" >nul 2>&1
if not errorlevel 1 (
    echo [有効] %DRIVE% はBitLockerで保護されています
    set BL_STATUS=ON
) else (
    manage-bde -status %DRIVE% | findstr /i "保護はオフ" >nul 2>&1
    if not errorlevel 1 (
        echo [無効] %DRIVE% のBitLockerは無効です
        set BL_STATUS=OFF
    ) else (
        manage-bde -status %DRIVE% | findstr /i "暗号化されています" >nul 2>&1
        if not errorlevel 1 (
            echo [保護停止中] 暗号化済みだが保護が停止しています
            set BL_STATUS=SUSPENDED
        ) else (
            echo [未設定] BitLockerは設定されていません
            set BL_STATUS=NONE
        )
    )
)

echo ドライブ: %DRIVE%  状態: %BL_STATUS%

endlocal

暗号化の進捗率を取得する

get_encryption_progress.bat
@echo off
setlocal enabledelayedexpansion

set DRIVE=C:

:: 変換の割合を取得
for /f "tokens=2 delims=:" %%A in ('manage-bde -status %DRIVE% 2^>nul ^| findstr /i "変換の割合"') do (
    set "PROGRESS=%%A"
)

:: 前後の空白を除去
for /f "tokens=1" %%B in ("!PROGRESS!") do set PROGRESS=%%B

if defined PROGRESS (
    echo 暗号化進捗: !PROGRESS!
) else (
    echo 暗号化進捗を取得できませんでした
)

endlocal

英語環境での注意点
manage-bdeの出力はOSの言語で表示されます。英語環境の場合は findstr /i "Protection Status"(保護の状態)、"Percentage Encrypted"(変換の割合)のように英語キーワードを使ってください。社内の複数PC環境では表示言語が混在することもあるため注意が必要です。

TPMの状態確認(-tpm)

BitLockerはTPM(Trusted Platform Module)チップと連携して動作します。TPMの状態を事前に確認しておくことで、BitLocker有効化時のトラブルを防げます。

TPM状態確認コマンド
:: TPMの現在の状態を確認
manage-bde -tpm

:: 出力例:
:: TpmEnabled: True
:: TpmActivated: True
:: TpmReady: True
:: TpmOwned: True

コマンド出力の意味は次のとおりです。

項目 True False
TpmEnabled TPMが有効 BIOSでTPMが無効化されている
TpmActivated TPMがアクティブ TPMがアクティベートされていない
TpmReady BitLockerで使用可能 初期化や所有者設定が必要
TpmOwned 所有者が設定済み 所有者が未設定(初回使用時)
TPM確認付きBitLocker有効化スクリプト
@echo off
setlocal enabledelayedexpansion

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

:: TPMが使用可能か確認
set TPM_READY=0
for /f "tokens=2 delims=:" %%A in ('manage-bde -tpm 2^>nul ^| findstr /i "TpmReady"') do (
    set "TPM_VAL=%%A"
    for /f "tokens=1" %%B in ("!TPM_VAL!") do (
        if /i "%%B"=="True" set TPM_READY=1
    )
)

if !TPM_READY! EQU 1 (
    echo [OK] TPMが使用可能です。TPMで保護します
    manage-bde -on C: -RecoveryPassword -SkipHardwareTest
) else (
    echo [INFO] TPMが使用できません。パスワード保護を使用します
    set /p BL_PWD=BitLockerパスワードを入力してください: 
    manage-bde -on C: -Password !BL_PWD! -RecoveryPassword -SkipHardwareTest
)

endlocal

wmicコマンドでもTPMの状態を確認できます。

wmicでTPM確認
@echo off
:: wmicでTPM情報を取得
wmic /namespace:\\root\cimv2\security\microsofttpm path Win32_Tpm get IsEnabled_InitialValue, IsActivated_InitialValue, IsOwned_InitialValue /value 2>nul

:: 出力例:
:: IsActivated_InitialValue=TRUE
:: IsEnabled_InitialValue=TRUE
:: IsOwned_InitialValue=TRUE

BitLockerの有効化(-on)

BitLockerを有効化するには manage-bde -on を使います。TPMが搭載されているPCでは自動的にTPMを使った保護が設定されます。

基本的な有効化

bitlocker_enable_basic.bat
@echo off
setlocal

:: 管理者権限チェック
net session >nul 2>&1
if errorlevel 1 (
    echo [エラー] 管理者権限が必要です
    exit /b 1
)

:: BitLockerを有効化(回復パスワードを自動生成・TPMで保護)
manage-bde -on C: -RecoveryPassword -SkipHardwareTest

if errorlevel 1 (
    echo [エラー] BitLockerの有効化に失敗しました
    exit /b 1
) else (
    echo [成功] BitLockerが有効になりました
    echo 回復パスワードは必ず安全な場所に保存してください
)

endlocal

主要な有効化オプション一覧

オプション 説明
-RecoveryPassword 48桁の回復パスワードを保護手段として追加(自動生成)
-RecoveryPassword [値] 指定した回復パスワードを設定
-RecoveryKey [パス] 指定したパスに回復キーファイル(.bek)を作成
-StartupKey [パス] スタートアップキーをUSBに保存
-Password パスワードプロテクターを追加(TPMなし環境向け)
-SkipHardwareTest ハードウェアテストをスキップ(再起動不要)
-EncryptionMethod 暗号化方式を指定(AES128、AES256、XTS-AES-128、XTS-AES-256)
-UsedSpaceOnly 使用済み領域のみ暗号化(高速化)

TPMなし環境(パスワード認証)での有効化

TPMが搭載されていないPCや外付けドライブでは、パスワード認証を使います。

bitlocker_no_tpm.bat
@echo off
setlocal

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

:: データドライブ(D:)をパスワードで有効化
set DRIVE=D:

:: パスワードをインタラクティブに入力させる(スクリプトに書かない)
set /p BL_PWD=BitLockerパスワードを入力してください: 

manage-bde -on %DRIVE% -Password %BL_PWD% -RecoveryPassword -SkipHardwareTest

if not errorlevel 1 (
    echo [成功] %DRIVE% のBitLocker有効化完了
) else (
    echo [エラー] %DRIVE% のBitLocker有効化失敗 ERRORLEVEL=%errorlevel%
)

endlocal

スクリプト内にパスワードをハードコーディングしない
BitLockerのパスワードをバッチファイルに直接書くと、スクリプトを見た人に漏洩します。set /p BL_PWD=パスワードを入力: でインタラクティブに入力させるか、安全な環境変数や鍵管理システムから取得する設計にしましょう。

回復キーのバックアップと管理(-protectors)

BitLockerで最も重要なのが回復キーの管理です。TPMが壊れたときや回復パスワードを忘れたときに回復キーがないとデータにアクセスできなくなります。

回復キーをファイルにバックアップする

backup_recovery_key.bat
@echo off
setlocal

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

set DRIVE=C:
set BACKUP_DIR=\\fileserver\bitlocker_backup\%COMPUTERNAME%

:: バックアップフォルダを作成
if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"

:: 回復情報をテキストファイルに保存
set KEYFILE=%BACKUP_DIR%\%COMPUTERNAME%_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%_recovery.txt
manage-bde -protectors -get %DRIVE% > "%KEYFILE%"

if not errorlevel 1 (
    echo [成功] 回復情報を保存しました: %KEYFILE%
) else (
    echo [エラー] 回復情報の保存に失敗しました
)

endlocal

回復キーID一覧の取得・追加・削除

manage_recovery_keys.bat
@echo off
setlocal

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

set DRIVE=C:

:: 現在の回復パスワードID一覧を表示
echo === 現在の回復パスワード ===
manage-bde -protectors -get %DRIVE% -Type RecoveryPassword

:: 新しい回復パスワードを追加(自動生成)
:: manage-bde -protectors -add %DRIVE% -RecoveryPassword

:: 特定のIDを削除する場合
:: manage-bde -protectors -delete %DRIVE% -id {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}

endlocal

回復キーファイルへのアクセス権限設定にはicaclsコマンド完全ガイドも参考にしてください。

暗号化進捗の監視スクリプト

BitLockerの暗号化は完了まで時間がかかります(容量によっては数時間)。暗号化が完了するまで待機し、完了を通知するスクリプトを作ります。

wait_for_encryption.bat
@echo off
setlocal enabledelayedexpansion

set DRIVE=C:
set CHECK_INTERVAL=60

echo BitLocker暗号化進捗監視を開始します
echo ドライブ: %DRIVE%  確認間隔: %CHECK_INTERVAL%秒
echo Ctrl+C で監視を停止します
echo.

:CHECK_LOOP
    :: 変換状態を確認
    for /f "tokens=2 delims=:" %%A in ('manage-bde -status %DRIVE% 2^>nul ^| findstr /i "変換の割合"') do (
        set "PROGRESS=%%A"
    )
    for /f "tokens=1" %%B in ("!PROGRESS!") do set PROGRESS=%%B

    for /f "tokens=2 delims=:" %%A in ('manage-bde -status %DRIVE% 2^>nul ^| findstr /i "変換状態"') do (
        set "CONV_STATE=%%A"
    )

    echo [%TIME%] 進捗: !PROGRESS!  状態: !CONV_STATE!

    :: "完全" を含む場合は完了
    echo !CONV_STATE! | findstr /i "完全" >nul 2>&1
    if not errorlevel 1 (
        echo.
        echo ============================
        echo [完了] 暗号化が完了しました
        echo ============================
        goto :DONE
    )

    timeout /t %CHECK_INTERVAL% /nobreak >nul
goto CHECK_LOOP

:DONE
manage-bde -status %DRIVE%
endlocal

BitLockerの無効化・一時停止

BitLockerを無効化する

bitlocker_disable.bat
@echo off
setlocal

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

set DRIVE=C:

echo [警告] %DRIVE% のBitLockerを無効化します
set /p CONFIRM=本当に無効化しますか?(yes と入力): 
if /i not "%CONFIRM%"=="yes" ( echo キャンセルしました & exit /b 0 )

manage-bde -off %DRIVE%

if not errorlevel 1 (
    echo [成功] %DRIVE% の復号化を開始しました
    echo 復号化が完了するまで時間がかかります
) else (
    echo [エラー] 無効化に失敗しました
)

endlocal
操作 コマンド 説明
無効化(復号化) manage-bde -off C: 暗号化を完全に解除。復号化に時間がかかる
保護を一時停止 manage-bde -protectors -disable C: 暗号化は維持したまま保護を停止。再起動で自動再開
保護を再開 manage-bde -protectors -enable C: 一時停止した保護を再有効化
暗号化を一時停止 manage-bde -pause C: 暗号化の進行を一時停止(途中から再開可能)
暗号化を再開 manage-bde -resume C: 一時停止した暗号化を再開

ドライブのロック・アンロック

BitLockerで保護されたデータドライブはロック状態にするとアクセスできなくなります。PCがスリープから復帰したときや外付けドライブを取り外す前にロックすることで、セキュリティを高められます。

ドライブをロックする

drive_lock.bat
@echo off
setlocal

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

:: データドライブ(D:)をロック
set DRIVE=D:

:: ロック前に現在のアクセス状況を確認
manage-bde -status %DRIVE% | findstr /i "ロック" >nul 2>&1

manage-bde -lock %DRIVE%

if not errorlevel 1 (
    echo [成功] %DRIVE% をロックしました
) else (
    echo [エラー] ロックに失敗しました(使用中のファイルがある場合はロックできません)
)

endlocal

回復パスワードを使ってドライブをアンロックする

障害発生時など、通常のアクセスができないときに回復パスワードを使ってアンロックします。

drive_unlock_recovery.bat
@echo off
setlocal

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

set DRIVE=D:

:: 回復パスワードを入力させる
echo 48桁の回復パスワードを入力してください
echo 形式: 123456-234567-345678-456789-567890-678901-789012-890123
set /p RECOVERY_PWD=回復パスワード: 

:: 回復パスワードでアンロック
manage-bde -unlock %DRIVE% -RecoveryPassword %RECOVERY_PWD%

if not errorlevel 1 (
    echo [成功] %DRIVE% をアンロックしました
    :: アンロック後の状態確認
    manage-bde -status %DRIVE%
) else (
    echo [エラー] アンロックに失敗しました。回復パスワードを確認してください
)

endlocal

パスワードでアンロックする

drive_unlock_password.bat
@echo off
setlocal

set DRIVE=D:

:: パスワードを入力させる
set /p BL_PWD=BitLockerパスワードを入力してください: 

manage-bde -unlock %DRIVE% -Password %BL_PWD%

if not errorlevel 1 (
    echo [成功] %DRIVE% をアンロックしました
) else (
    echo [エラー] アンロックに失敗しました。パスワードを確認してください
)

endlocal

データドライブの自動アンロックを設定する

PCを起動するたびにパスワード入力が必要なのが不便な場合、-autounlock で自動アンロックを設定できます。OSドライブが解除されると自動でデータドライブも解除されます。

自動アンロックの設定・確認・解除
@echo off
net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

:: D: ドライブの自動アンロックを有効化
manage-bde -autounlock -enable D:

:: 現在の自動アンロック設定を確認
manage-bde -autounlock D:

:: 自動アンロックを無効化する場合
:: manage-bde -autounlock -disable D:

:: すべての自動アンロック設定をクリア
:: manage-bde -autounlock -clearallkeys D:

BitLocker To Go(USBドライブ・外付けHDDの暗号化)

BitLocker To GoはUSBメモリや外付けHDDなどのリムーバブルドライブを暗号化する機能です。通常のBitLockerと同じmanage-bdeコマンドで操作でき、パスワードまたはスマートカードで保護します。

BitLocker To Goの特徴

  • TPMが不要(パスワードまたはスマートカードのみ)
  • 暗号化されたUSBをWindows XP/Vista/7でも読み取り専用アクセスが可能
  • ファイルシステムはNTFSとFAT32に対応
  • USBが盗難・紛失した場合のデータ保護に有効

USBドライブをBitLockerで暗号化する

usb_bitlocker_enable.bat
@echo off
setlocal

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

:: 暗号化するUSBドライブのドライブ文字
set USB_DRIVE=E:

:: ドライブが存在するか確認
if not exist %USB_DRIVE%\ (
    echo [エラー] ドライブ %USB_DRIVE% が見つかりません
    exit /b 1
)

:: 既にBitLockerが有効か確認
manage-bde -status %USB_DRIVE% | findstr /i "保護はオン" >nul 2>&1
if not errorlevel 1 (
    echo [INFO] %USB_DRIVE% は既にBitLocker To Goで保護されています
    exit /b 0
)

:: パスワードを入力させる
echo USBドライブ %USB_DRIVE% をBitLokcer To Goで暗号化します
set /p USB_PWD=パスワードを設定してください(英数字8文字以上推奨): 

:: 使用済み領域のみ暗号化(高速)+ 回復パスワード付き
manage-bde -on %USB_DRIVE% -Password %USB_PWD% -RecoveryPassword -SkipHardwareTest -UsedSpaceOnly

if not errorlevel 1 (
    echo.
    echo [成功] %USB_DRIVE% の暗号化を開始しました
    echo パスワードは安全な場所に保存してください
    echo 暗号化の進捗は manage-bde -status %USB_DRIVE% で確認できます
) else (
    echo [エラー] 暗号化に失敗しました。管理者権限と空き容量を確認してください
)

endlocal

USBドライブのBitLocker状態を確認する

check_usb_bitlocker.bat
@echo off
setlocal enabledelayedexpansion

echo === リムーバブルドライブのBitLocker状態チェック ===

:: すべてのドライブを確認(リムーバブルを含む)
for %%D in (D E F G H I J K) do (
    if exist %%D:\ (
        :: ドライブの種類を確認(リムーバブルかどうか)
        for /f "skip=1 tokens=1" %%T in ('wmic logicaldisk where DeviceID^="%%D:" get DriveType 2^>nul') do (
            :: DriveType 2=リムーバブル
            if "%%T"=="2" (
                echo %%D: [リムーバブル]
                manage-bde -status %%D: 2>nul | findstr /i "保護の状態 変換の割合"
                echo.
            )
        )
    )
)

endlocal

暗号化済みUSBをアンロックしてアクセスする

usb_unlock.bat
@echo off
setlocal

set USB_DRIVE=E:

:: USBがロックされているか確認
manage-bde -status %USB_DRIVE% | findstr /i "ロックされています" >nul 2>&1
if errorlevel 1 (
    echo [INFO] %USB_DRIVE% はすでにアンロック状態です
    goto :EOF
)

:: パスワードでアンロック
set /p USB_PWD=BitLocker To Goパスワードを入力: 
manage-bde -unlock %USB_DRIVE% -Password %USB_PWD%

if not errorlevel 1 (
    echo [成功] %USB_DRIVE% をアンロックしました
) else (
    echo [エラー] アンロック失敗。パスワードを確認してください
    echo 回復パスワードでのアンロック: manage-bde -unlock %USB_DRIVE% -RecoveryPassword [48桁]
)

endlocal

BitLocker To Goの運用上のポイント
USBドライブは紛失リスクが高いため、重要データの持ち出しには必ずBitLocker To Goを使うことをお勧めします。パスワードは最低8文字以上の英数字+記号にしてください。また、回復パスワードは別の場所(クラウドや管理サーバー)に必ずバックアップしておきましょう。

複数ドライブの一括管理

PCに複数のドライブがある場合、すべてのドライブを一括で管理できます。

check_all_drives.bat
@echo off
setlocal enabledelayedexpansion

echo ====================================
echo  BitLocker 状態一覧 - %COMPUTERNAME%
echo  %DATE% %TIME%
echo ====================================

for %%D in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%D:\ (
        manage-bde -status %%D: >nul 2>&1
        if not errorlevel 1 (
            set "STATUS=不明"
            for /f "tokens=2 delims=:" %%A in ('manage-bde -status %%D: 2^>nul ^| findstr /i "保護の状態"') do (
                set "STATUS=%%A"
            )
            for /f "tokens=*" %%B in ("!STATUS!") do set STATUS=%%B

            set "PROG=--"
            for /f "tokens=2 delims=:" %%A in ('manage-bde -status %%D: 2^>nul ^| findstr /i "変換の割合"') do (
                set "PROG=%%A"
            )
            for /f "tokens=1" %%B in ("!PROG!") do set PROG=%%B

            echo %%D:  状態=!STATUS!  進捗=!PROG!
        )
    )
)

endlocal

実践的な活用パターン

パターン①:新PC初期設定での自動BitLocker有効化

new_pc_bitlocker_setup.bat
@echo off
setlocal enabledelayedexpansion

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

set DRIVE=C:
set BACKUP_SERVER=\\fileserver\bitlocker_keys
set LOGFILE=%BACKUP_SERVER%\setup_log.txt

echo [%DATE% %TIME%] %COMPUTERNAME% BitLockerセットアップ開始 >> "%LOGFILE%"

:: 既にBitLockerが有効か確認
manage-bde -status %DRIVE% | findstr /i "保護はオン" >nul 2>&1
if not errorlevel 1 (
    echo [INFO] %COMPUTERNAME%: BitLockerは既に有効です
    echo [%DATE% %TIME%] %COMPUTERNAME% - 既に有効 >> "%LOGFILE%"
    goto :BACKUP_ONLY
)

:: BitLocker有効化
echo %COMPUTERNAME%: BitLockerを有効化しています...
manage-bde -on %DRIVE% -RecoveryPassword -SkipHardwareTest >nul 2>&1

if errorlevel 1 (
    echo [エラー] %COMPUTERNAME%: BitLocker有効化失敗
    echo [%DATE% %TIME%] %COMPUTERNAME% - 有効化失敗 >> "%LOGFILE%"
    exit /b 1
)

echo [成功] %COMPUTERNAME%: BitLocker有効化完了

:BACKUP_ONLY
set KEYFILE=%BACKUP_SERVER%\%COMPUTERNAME%_bitlocker_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.txt
manage-bde -protectors -get %DRIVE% > "%KEYFILE%" 2>&1
if not errorlevel 1 (
    echo [成功] 回復キーをバックアップしました
    echo [%DATE% %TIME%] %COMPUTERNAME% - バックアップ完了 >> "%LOGFILE%"
) else (
    echo [エラー] 回復キーのバックアップ失敗
)

endlocal

パターン②:定期的なBitLocker状態チェックとアラート

bitlocker_health_check.bat
@echo off
setlocal enabledelayedexpansion

set DRIVE=C:
set ALERT=0
set LOGFILE=bitlocker_check_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.log

echo [%DATE% %TIME%] %COMPUTERNAME% BitLockerチェック >> "%LOGFILE%"

manage-bde -status %DRIVE% | findstr /i "保護はオン" >nul 2>&1
if errorlevel 1 (
    echo [ALERT] %COMPUTERNAME%: %DRIVE% の保護がオフです >> "%LOGFILE%"
    set ALERT=1
) else (
    echo [OK] %COMPUTERNAME%: %DRIVE% は保護中です >> "%LOGFILE%"
)

manage-bde -status %DRIVE% | findstr /i "完全に暗号化" >nul 2>&1
if errorlevel 1 (
    for /f "tokens=2 delims=:" %%A in ('manage-bde -status %DRIVE% 2^>nul ^| findstr /i "変換の割合"') do (
        echo [INFO] %DRIVE% 暗号化進捗: %%A >> "%LOGFILE%"
    )
)

if !ALERT! EQU 1 (
    echo [結果] 問題を検出しました
    exit /b 1
) else (
    echo [結果] %COMPUTERNAME%: BitLockerは正常です
)

endlocal

アラートのメール通知についてはエラー通知メールを自動送信する完全ガイドを参考にしてください。

パターン③:ノートPCのバッテリー低下時に暗号化を一時停止する

battery_aware_bitlocker.bat
@echo off
setlocal enabledelayedexpansion

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

:: バッテリー残量をwmicで取得
for /f "skip=1 tokens=2 delims==" %%A in ('wmic path Win32_Battery get EstimatedChargeRemaining /value 2^>nul') do (
    set "BATTERY=%%A"
)

if not defined BATTERY (
    echo [INFO] バッテリーなし(AC電源)
    goto :EOF
)
for /f "tokens=1" %%B in ("!BATTERY!") do set BATTERY=%%B
echo バッテリー残量: !BATTERY!%%

:: 暗号化中かどうか確認
manage-bde -status C: | findstr /i "暗号化しています" >nul 2>&1
if errorlevel 1 goto :EOF

if !BATTERY! LSS 20 (
    echo [一時停止] バッテリー残量が少ないため暗号化を一時停止します
    manage-bde -pause C:
) else (
    echo [継続] バッテリー残量は十分です
)

endlocal

パターン④:タスクスケジューラで回復キーを定期バックアップ

schedule_key_backup.bat
@echo off
setlocal

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

set TASK_NAME=BitLockerKeyBackup
set SCRIPT_PATH=%~dp0backup_recovery_key.bat

schtasks /create ^
  /tn "%TASK_NAME%" ^
  /tr "cmd /c "%SCRIPT_PATH%"" ^
  /sc WEEKLY /d MON /st 09:00 ^
  /ru SYSTEM /rl HIGHEST /f

if not errorlevel 1 (
    echo [成功] タスク登録完了: 毎週月曜 09:00 に回復キーをバックアップします
) else (
    echo [エラー] タスク登録失敗
)
endlocal

タスクスケジューラの詳しい使い方はschtasksコマンド完全ガイドを参照してください。

パターン⑤:外付けHDD持ち出し管理スクリプト

社外に外付けHDDを持ち出す際に、BitLocker To Goで暗号化されているかを自動確認し、未暗号化ならその場で暗号化してから持ち出せるようにするスクリプトです。

usb_export_check.bat
@echo off
setlocal enabledelayedexpansion

net session >nul 2>&1
if errorlevel 1 ( echo 管理者権限が必要です & exit /b 1 )

echo ====================================
echo  外付けドライブ持ち出し前チェック
echo ====================================

:: リムーバブルドライブを検索
set USB_FOUND=0
for %%D in (D E F G H I J K) do (
    if exist %%D:\ (
        for /f "skip=1 tokens=1" %%T in ('wmic logicaldisk where DeviceID^="%%D:" get DriveType 2^>nul') do (
            if "%%T"=="2" (
                set USB_FOUND=1
                echo リムーバブルドライブ発見: %%D:

                :: BitLocker状態確認
                manage-bde -status %%D: | findstr /i "保護はオン" >nul 2>&1
                if not errorlevel 1 (
                    echo   [OK] BitLocker To Goで保護済みです
                    manage-bde -status %%D: | findstr /i "変換の割合"
                ) else (
                    echo   [警告] %%D: はBitLockerで保護されていません
                    set /p DO_ENC=今すぐ暗号化しますか?(yes/no): 
                    if /i "!DO_ENC!"=="yes" (
                        set /p USB_PWD=パスワードを設定: 
                        manage-bde -on %%D: -Password !USB_PWD! -RecoveryPassword -SkipHardwareTest -UsedSpaceOnly
                        if not errorlevel 1 (
                            echo   [成功] %%D: の暗号化を開始しました
                        ) else (
                            echo   [エラー] 暗号化に失敗しました
                        )
                    ) else (
                        echo   [注意] 未暗号化のまま持ち出すとデータ漏洩リスクがあります
                    )
                )
                echo.
            )
        )
    )
)

if !USB_FOUND! EQU 0 (
    echo リムーバブルドライブが接続されていません
)

endlocal

パターン⑥:BitLocker障害時の回復手順スクリプト

BitLockerが原因でPCが起動しなくなった場合や、パスワード・PINが分からなくなった場合の回復手順をバッチ化します。回復環境(WinRE)からUSBブートで実行することを想定しています。

bitlocker_recovery.bat
@echo off
setlocal enabledelayedexpansion

echo ====================================
echo  BitLocker 回復スクリプト
echo ====================================

:: 利用可能なドライブとBitLocker状態を確認
echo 利用可能なドライブの確認...
for %%D in (C D E F G H) do (
    if exist %%D:\ (
        manage-bde -status %%D: >nul 2>&1
        if not errorlevel 1 (
            echo %%D: [BitLockerドライブ検出]
            manage-bde -status %%D: | findstr /i "変換状態 保護の状態 ロックの状態"
            echo.
        )
    )
)

:: 回復するドライブを選択
set /p TARGET_DRIVE=回復するドライブ文字を入力(例: C): 
set TARGET_DRIVE=%TARGET_DRIVE%:

echo.
echo 回復方法を選択してください:
echo   1. 回復パスワード(48桁)でアンロック
echo   2. 回復キーファイル(.bek)でアンロック
echo   3. プロテクターのIDを確認する
set /p METHOD=番号を入力: 

if "%METHOD%"=="1" (
    set /p REC_PWD=48桁の回復パスワードを入力: 
    manage-bde -unlock %TARGET_DRIVE% -RecoveryPassword !REC_PWD!
    if not errorlevel 1 (
        echo [成功] %TARGET_DRIVE% をアンロックしました
        echo アンロック後のデータへのアクセスが可能になりました
    ) else (
        echo [エラー] アンロック失敗。回復パスワードを確認してください
    )
) else if "%METHOD%"=="2" (
    set /p BEK_FILE=回復キーファイルのパスを入力(例: E:\recovery.bek): 
    manage-bde -unlock %TARGET_DRIVE% -RecoveryKey !BEK_FILE!
    if not errorlevel 1 (
        echo [成功] %TARGET_DRIVE% を回復キーでアンロックしました
    ) else (
        echo [エラー] アンロック失敗。キーファイルのパスを確認してください
    )
) else if "%METHOD%"=="3" (
    echo %TARGET_DRIVE% のプロテクターID一覧:
    manage-bde -protectors -get %TARGET_DRIVE%
) else (
    echo [エラー] 無効な選択です
)

endlocal

manage-bdeでよく発生するエラーと対処法

エラー①:「操作できません: ボリュームは既に暗号化されています」

原因:既にBitLockerが有効なドライブに対して再度有効化を試みた。
対処:manage-bde -status で現在の状態を確認してから操作してください。

エラー②:「このコンピューターには互換性のあるTPMセキュリティデバイスが見つかりません」

原因:TPMが搭載されていないか、BIOSで無効化されている。
対処:TPMなし環境ではUSBスタートアップキーやパスワードを使う方法に切り替えます。

パスワードで有効化(TPMなし)
manage-bde -on C: -Password -RecoveryPassword -SkipHardwareTest

エラー③:「アクセスが拒否されました」

原因:管理者権限なしで実行した。
対処:コマンドプロンプトを「管理者として実行」で起動してください。

管理者権限の自動取得については管理者権限を自動取得する完全ガイドを参照してください。

エラー④:「指定されたドライブはスペースが不足しているため暗号化できません」

原因:BitLockerはメタデータ領域として320MB程度を必要とします。
対処:不要ファイルを削除してから再実行してください。

エラー⑤:英語環境でfindstrのキーワードが一致しない

言語に依存しない状態確認
@echo off
setlocal

manage-bde -status C: > "%TEMP%\bde_status.txt" 2>&1

:: 英語と日本語の両方を試す
findstr /i "Protection On" "%TEMP%\bde_status.txt" >nul 2>&1
if not errorlevel 1 ( echo [有効] & goto :DONE )
findstr /i "保護はオン" "%TEMP%\bde_status.txt" >nul 2>&1
if not errorlevel 1 ( echo [有効] & goto :DONE )
echo [無効/不明]

:DONE
del /q "%TEMP%\bde_status.txt" 2>nul
endlocal

エラー⑥:BitLockerサービスが起動していない

BitLockerサービスの確認と起動
@echo off
sc query BDESVC | findstr /i "RUNNING" >nul 2>&1
if errorlevel 1 (
    echo BitLockerサービスが停止しています。起動します...
    net start BDESVC
)

Windowsサービスの操作についてはWindowsサービスを起動・停止する完全ガイドも参考にしてください。

エラー⑦:manage-bdeの出力が空または途中で切れる

原因:出力を for /f でパイプ処理する際、出力が複数行にわたるため期待するトークンが取れないことがある。
対処:一時ファイルに出力してから解析する方法を使うと安定します。

一時ファイル経由の安全な解析
@echo off
setlocal

:: 一時ファイルに出力
manage-bde -status C: > "%TEMP%\bde_tmp.txt" 2>&1

:: 特定の行を検索
findstr /i "保護の状態" "%TEMP%\bde_tmp.txt"
findstr /i "変換の割合" "%TEMP%\bde_tmp.txt"

del /q "%TEMP%\bde_tmp.txt" 2>nul
endlocal

manage-bdeとPowerShellの使い分け

用途 manage-bde PowerShell (BitLocker モジュール)
基本的な状態確認 -status Get-BitLockerVolume
有効化・無効化 -on / -off Enable-BitLocker / Disable-BitLocker
回復キー管理 -protectors Add-BitLockerKeyProtector
バッチとの親和性 ◎ 直接呼び出し可能 △ powershell -Command が必要
条件分岐・構造化 △ findstrでのテキスト解析が必要 ◎ オブジェクト操作で柔軟
複数PCの一括処理 ○ forループで可能 ◎ Invoke-Commandでより強力
Azureへの回復キー保存 × 非対応 ○ BackupToAAD-BitLockerKeyProtector
PowerShellでBitLocker状態をバッチから取得
@echo off
setlocal

:: PowerShellでBitLocker状態を取得(1=On, 0=Off, 2=Unknown)
for /f %%A in ('powershell -NoProfile -Command "(Get-BitLockerVolume -MountPoint C:).ProtectionStatus"') do (
    set "PS_STATUS=%%A"
)

if "%PS_STATUS%"=="1" ( echo BitLockerは有効です )
if "%PS_STATUS%"=="0" ( echo BitLockerは無効です )

endlocal

セキュリティ上の注意事項

注意事項 詳細
回復キーは必ずバックアップ TPMが壊れたり設定変更があると、回復キーがないとデータにアクセスできなくなります。Active Directory環境ではADへのバックアップが推奨されます。
パスワードをスクリプトに書かない BitLockerのパスワードをバッチファイルにハードコードすると漏洩リスクがあります。set /p でインタラクティブに入力させましょう。
一時停止後の再開を忘れない -protectors -disable で保護を一時停止すると、次回起動時に自動再開されますが、長期停止が続くとセキュリティリスクになります。
ログに回復キーを書かない 回復キーが含まれるログファイルへのアクセス権は厳格に管理してください。
XTS-AES 256を推奨 デフォルトはXTS-AES 128ですが、機密性の高いデータには -EncryptionMethod XTS-AES-256 を使うとより安全です。暗号化方式は有効化時にのみ指定できます。

ファイル暗号化の方法全般についてはバッチでファイルを暗号化・復号する方法も合わせて読んでみてください。

よくある質問

Qmanage-bdeを実行したら「認識されていない」と表示されます。
Amanage-bde.exeは C:\Windows\System32\ にあります。パスが通っていない場合は %SystemRoot%\System32\manage-bde -status のようにフルパスで実行してください。また、Windows HomeエディションではBitLocker機能自体がないため使用できません。
QBitLockerを有効化するとPCが重くなりますか?
A暗号化処理中はディスクI/Oが増加してやや重くなりますが、暗号化が完了すれば通常は体感できるほどの影響はありません。現代のCPUはAES-NI命令セットを持っているため、暗号化・復号の処理はほぼハードウェアオフロードされます。
Q回復キーはどこに保存するのが安全ですか?
AActive DirectoryやAzure AD(Microsoft Entra ID)へのバックアップが最も安全です。個人PCではMicrosoftアカウントのウェブサイトに保存できます。社内管理では専用のファイルサーバー(ICACLSでアクセス制限済み)を使うことをお勧めします。絶対にNGなのは、暗号化されたドライブ自身に回復キーを保存することです。
Qmanage-bde -statusの出力が英語と日本語で混在することがありますか?
AOSの言語設定に依存するため、日本語OSなら日本語、英語OSなら英語で出力されます。複数の言語環境で使う場合は、findstrで日英両方のキーワードを試すか、一時ファイルに出力してから解析する設計にしてください。
QBitLockerで保護されたドライブをLinuxからアクセスできますか?
ALinuxではDislocker等のオープンソースツールを使えばアクセス可能ですが、標準では読み取れません。デュアルブート環境でBitLockerを使う場合はLinux側での操作が制限されることを念頭に置いてください。
Q暗号化をキャンセルすることはできますか?
A暗号化を途中でキャンセルするには manage-bde -pause C: で一時停止してから manage-bde -off C: で復号化を開始します。ただし復号化にも暗号化と同程度の時間がかかります。
QリモートPCのBitLockerをmanage-bdeで管理できますか?
Aはい。多くのコマンドに -ComputerName PCName オプションを付けるとリモートPCを操作できます。例: manage-bde -status C: -ComputerName PC001。リモートレジストリサービスと管理共有へのアクセスが必要です。
QWindows HomeでBitLockerは使えますか?
AWindows 10/11 HomeではBitLocker(manage-bde)は使えませんが、「デバイスの暗号化」という簡易版の機能が利用できる場合があります(Microsoftアカウントへのサインインが必要)。コマンドラインからの詳細な制御にはPro以上が必要です。
QUSBを抜くたびにパスワードを入力するのが面倒です。自動解除できますか?
Aはい。manage-bde -autounlock -enable [ドライブ]: を実行すると、OSドライブがBitLockerで解除された後に自動的にデータドライブも解除されます。ただしこれはPCに紐付いた設定であるため、そのUSBを別のPCに接続した場合は引き続きパスワードが必要です。

まとめ

manage-bdeコマンドを使うと、BitLockerのすべての操作をバッチから自動化できます。特に複数PCを管理する企業環境では、GUIでは手間がかかる作業を大幅に効率化できます。

よく使う操作 コマンド
状態確認 manage-bde -status C:
TPM確認 manage-bde -tpm
有効化(回復パスワード付き) manage-bde -on C: -RecoveryPassword -SkipHardwareTest
無効化(復号化) manage-bde -off C:
保護を一時停止 manage-bde -protectors -disable C:
保護を再開 manage-bde -protectors -enable C:
回復キー一覧を表示 manage-bde -protectors -get C:
ドライブをロック manage-bde -lock D:
回復パスワードでアンロック manage-bde -unlock D: -RecoveryPassword [48桁]
USBをBitLocker To Goで暗号化 manage-bde -on E: -Password -RecoveryPassword -SkipHardwareTest

回復キーのバックアップ自動化・定期的な状態チェック・新PC展開時の一括設定・USB持ち出し管理など、実務で活用できるパターンを組み合わせて、安全で管理しやすいBitLocker運用を実現してください。