「社内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エディションでは機能が制限されます。
- manage-bdeとBitLockerとは
- manage-bdeの基本構文とサブコマンド一覧
- BitLockerの状態確認(-status)
- TPMの状態確認(-tpm)
- BitLockerの有効化(-on)
- 回復キーのバックアップと管理(-protectors)
- 暗号化進捗の監視スクリプト
- BitLockerの無効化・一時停止
- ドライブのロック・アンロック
- BitLocker To Go(USBドライブ・外付けHDDの暗号化)
- 複数ドライブの一括管理
- 実践的な活用パターン
- manage-bdeでよく発生するエラーと対処法
- manage-bdeとPowerShellの使い分け
- セキュリティ上の注意事項
- よくある質問
- まとめ
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:
出力例は次のとおりです。
ボリューム 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 でフィルタリングします。
@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
暗号化の進捗率を取得する
@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の現在の状態を確認 manage-bde -tpm :: 出力例: :: TpmEnabled: True :: TpmActivated: True :: TpmReady: True :: TpmOwned: True
コマンド出力の意味は次のとおりです。
| 項目 | True | False |
|---|---|---|
| TpmEnabled | TPMが有効 | BIOSでTPMが無効化されている |
| TpmActivated | TPMがアクティブ | TPMがアクティベートされていない |
| TpmReady | BitLockerで使用可能 | 初期化や所有者設定が必要 |
| TpmOwned | 所有者が設定済み | 所有者が未設定(初回使用時) |
@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の状態を確認できます。
@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を使った保護が設定されます。
基本的な有効化
@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や外付けドライブでは、パスワード認証を使います。
@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が壊れたときや回復パスワードを忘れたときに回復キーがないとデータにアクセスできなくなります。
回復キーをファイルにバックアップする
@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一覧の取得・追加・削除
@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の暗号化は完了まで時間がかかります(容量によっては数時間)。暗号化が完了するまで待機し、完了を通知するスクリプトを作ります。
@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を無効化する
@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がスリープから復帰したときや外付けドライブを取り外す前にロックすることで、セキュリティを高められます。
ドライブをロックする
@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
回復パスワードを使ってドライブをアンロックする
障害発生時など、通常のアクセスができないときに回復パスワードを使ってアンロックします。
@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
パスワードでアンロックする
@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で暗号化する
@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状態を確認する
@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をアンロックしてアクセスする
@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に複数のドライブがある場合、すべてのドライブを一括で管理できます。
@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有効化
@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状態チェックとアラート
@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のバッテリー低下時に暗号化を一時停止する
@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
パターン④:タスクスケジューラで回復キーを定期バックアップ
@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で暗号化されているかを自動確認し、未暗号化ならその場で暗号化してから持ち出せるようにするスクリプトです。
@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ブートで実行することを想定しています。
@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スタートアップキーやパスワードを使う方法に切り替えます。
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サービスが起動していない
@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 |
@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 を使うとより安全です。暗号化方式は有効化時にのみ指定できます。 |
ファイル暗号化の方法全般についてはバッチでファイルを暗号化・復号する方法も合わせて読んでみてください。
よくある質問
C:\Windows\System32\ にあります。パスが通っていない場合は %SystemRoot%\System32\manage-bde -status のようにフルパスで実行してください。また、Windows HomeエディションではBitLocker機能自体がないため使用できません。manage-bde -pause C: で一時停止してから manage-bde -off C: で復号化を開始します。ただし復号化にも暗号化と同程度の時間がかかります。-ComputerName PCName オプションを付けるとリモートPCを操作できます。例: manage-bde -status C: -ComputerName PC001。リモートレジストリサービスと管理共有へのアクセスが必要です。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運用を実現してください。

