【bat】manage-bdeの使い方|BitLockerの状態確認・回復キー

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

manage-bde は、BitLockerをコマンドラインから確認・設定するためのWindows標準コマンドです。batから使うと、暗号化状態の確認、回復キーの確認・バックアップ、BitLockerの有効化、TPM確認、暗号化進捗の監視を自動化できます。

この記事では、まずよく使うコマンドを早見表で整理し、そのあとにBitLockerの状態確認、回復キー確認・バックアップ、暗号化・一時停止、USBドライブ、複数PC管理、エラー対処を実務向けに解説します。

先に注意:manage-bdeの変更系コマンドは管理者権限が必要です。回復キーはPC紛失時やTPM変更時の最後の復旧手段なので、平文ログや共有フォルダに置きっぱなしにせず、社内ルールに沿って保管してください。

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

manage-bdeでよく使う操作早見表

目的 コマンド例 権限
BitLocker状態を確認する manage-bde -status C: 一般可
回復キーを確認する manage-bde -protectors -get C: 管理者推奨
回復キーをバックアップする manage-bde -protectors -adbackup C: -id {GUID} 管理者
BitLockerを有効化する manage-bde -on C: -RecoveryPassword 管理者
暗号化を一時停止する manage-bde -protectors -disable C: -RebootCount 1 管理者
一時停止を戻す manage-bde -protectors -enable C: 管理者
TPM状態を確認する manage-bde -tpm -status 管理者推奨
ロック解除する manage-bde -unlock D: -RecoveryPassword 48桁キー 管理者
管理者権限チェック付きの状態確認テンプレート
@echo off
setlocal

net session >nul 2>&1
if errorlevel 1 (
    echo 管理者権限で実行してください。
    exit /b 1
)

set "DRIVE=C:"

echo === BitLocker状態 ===
manage-bde -status %DRIVE%

echo === キープロテクター ===
manage-bde -protectors -get %DRIVE%

endlocal

目的別ショートカット

やりたいこと 読む場所 主なコマンド
まず使うコマンドだけ知りたい 操作早見表 -status / -protectors
BitLockerが有効か確認したい 状態確認 manage-bde -status
TPMを確認したい TPMの状態確認 manage-bde -tpm
BitLockerを有効化したい BitLockerの有効化 manage-bde -on
回復キーを確認・保存したい 回復キーの管理 -protectors -get
USBや外付けHDDを暗号化したい BitLocker To Go -on E:
エラー原因を調べたい よく発生するエラー 権限 / TPM / Home版

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でBitLockerの状態を確認するには?
Amanage-bde -status または manage-bde -status C: を実行します。暗号化率、保護状態、ロック状態、キープロテクターの有無を確認できます。
QBitLockerの回復キーを確認するコマンドは?
Amanage-bde -protectors -get C: です。表示される48桁の回復パスワードは重要情報なので、ログ出力や保存先のアクセス権に注意してください。
Qmanage-bdeは管理者権限が必要ですか?
A状態確認だけなら見える環境もありますが、有効化、無効化、回復キー操作、TPM操作は管理者権限が必要です。bat化する場合は冒頭で net session による権限チェックを入れると安全です。
QBitLockerをbatで有効化できますか?
Aできます。代表例は manage-bde -on C: -RecoveryPassword です。ただしTPM、Windowsエディション、グループポリシー、回復キー保管先を事前に確認してから実行してください。
Q暗号化を一時停止するには?
Amanage-bde -protectors -disable C: -RebootCount 1 を使います。BIOS更新やTPM変更前に一時停止し、作業後は manage-bde -protectors -enable C: で戻します。
QBitLocker回復キーでドライブを解除するには?
Amanage-bde -unlock D: -RecoveryPassword 48桁の回復キー を実行します。OSドライブの起動時回復とは別に、データドライブや外付けドライブのロック解除で使います。
QWindows Homeでもmanage-bdeは使えますか?
AHomeエディションではBitLocker機能が制限されます。本格的なBitLocker管理はWindows Pro、Enterprise、Educationでの利用を前提にしてください。
Qタスクスケジューラで定期的にBitLocker状態を確認できますか?
Aできます。状態確認batを作り、schtasksで毎日実行します。回復キーをログに出す処理は避け、状態や異常検知だけを記録する形にすると安全です。

まとめ

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運用を実現してください。