Ask CORE

Microsoft Japan Windows Technology Support

BitLockerの暗号化状態を確認する方法について

こんにちは。Windows サポートの石井です。BitLocker に関連するお問い合わせで、最近よく、「レジストリからBitLocker の暗号化の状態を確認したい。」 というご要望をいただきます。残念ながら、レジストリから BitLocker の暗号化状態を確認する方法のご用意はございませんので、本稿では、BitLocker の暗号化状態を確認する方法についてご紹介いたします。

BitLocker によるドライブ暗号化の設定情報はレジストリやフォルダ等には格納されておりません。
そのため、レジストリ値を参照する方法では、BitLocker による暗号化の状態を確認することができません。
**補足の項目としてご紹介しております、BitLockerStatus というレジストリが Windows 10 以降に格納される事を確認しておりますが、こちらも暗号化の状態が 100% かどうか、どのドライブが暗号化されているのかなどを確認する事はできません。**

BitLocker によるドライブ暗号化の設定情報の確認につきましてグラフィック インターフェースを除いては、BitLocker ドライブ暗号化コマンドラインツールを使用する方法、または Windows Management Instrumentation (以下 WMI) を利用する方法がございます。

以下に 2 つの利用方法についてご説明いたします。

コマンドラインから確認する方法
====================================
Windows OS に標準で用意されている BitLocker ドライブ暗号化コマンドラインツール(Manage-bde.exe)を実行する事で、BitLocker による暗号化の状態を確認できます。

[確認手順]
1. 管理者権限を持つアカウントでログオンします。

2. コマンド プロンプトを管理者権限で起動します。

3. 以下のコマンドを実行し、BitLocker による暗号化の状態を確認します。

<コマンド実行例>
Manage-bde.exe -status

<実行結果の例>

 

表示された各ドライブの暗号化された割合が 100% になっており、保護状態が”オン″になっていれば、有効化されていると判断することができます。

WMI から確認する方法
======================================
BitLocker によるドライブ暗号化の状態は WMI の Win32_EncryptableVolume クラスでも確認できます。

Win32_EncryptableVolume クラスにはシステムのボリューム情報がインスタンスとして格納されています。
複数のボリュームが存在する場合は複数のインスタンスが存在します。

Win32_EncryptableVolume クラスのインスタンスにて DriveLetter および ProtectionStatus プロパティを参照する事で暗号化のステータスが確認できます。

<クラス情報>
名前空間: root\cimv2\Security\MicrosoftVolumeEncryption
クラス名: Win32_EncryptableVolume

<プロパティ>
DriveLetter : ボリュームに設定されているドライブ文字

ProtectionStatus
0 : PROTECTION OFF (暗号化オフ)
1 : PROTECTION ON  (暗号化オン)
2 : PROTECTION UNKNOWN (ステータス不明)

WMIC コマンドで実行する場合は以下のコマンドとなります。

<コマンド実行例>
wmic /namespace:\\root\cimv2\Security\MicrosoftVolumeEncryption path Win32_EncryptableVolume get DriveLetter, ProtectionStatus

<実行結果の例>

GetConversionStatus メソッドにて、ドライブに対して Bitlocker 有効化が行われている最中の状態が取得できます。
ConversionStatus
0 : 暗号化されていない状態
1 : 暗号化されている状態
2 : 暗号化中
3 : 暗号化解除中EncryptionPercentage
//暗号化処理中の状態を % で取得できます。
0 : 暗号化処理が開始されていない状態
100 : 暗号化処理が完了した状態Win32_EncryptableVolume クラスを利用して VBS や PowerShell 等のスクリプトやプログラムを作成することで、端末上の BitLocker によるドライブ暗号化の設定情報を取得することが可能となります。<コマンド実行例>
(Get-WmiObject -Namespace root/CIMV2/Security/MicrosoftVolumeEncryption -Class Win32_EncryptableVolume).GetConversionStatus()

<実行結果の例>

BitLocker に関する WMI クラス、およびメソッドにつきましては以下の情報をご参照ください。

Win32_EncryptableVolume class
http://msdn.microsoft.com/en-us/library/windows/desktop/aa376483(v=vs.85).aspx
Win32_EncryptableVolume Methods
http://msdn.microsoft.com/en-us/library/windows/desktop/gg196263(v=vs.85).aspx

BitLocker の暗号化状態の確認には、上述の manage-bde.exe による確認方法または、WMI による確認方法を利用する事をご検討いただければ幸いです。

補足:Windows 10 / Windows Server 2016 では、システムの起動時にシステム ドライブの BitLocker の保護がオンとなっているかオフとなっているかをチェックするためのレジストリとしてBitlockerStatus がございます。

キー名:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BitlockerStatus
名前:  BootStatus
種類:  REG_DWORD
データ:  1

データ:1 (オン)
データ:0  (オフ)

このレジストリが設定されるタイミングとしまして、システムドライブ(例えば C: )の暗号化が完了して、100 % となった後に再起動した際、または”BitLocker システム チェックを実行する(R)”のチェックをオンにして、暗号化を開始した場合です。
後者の場合は、暗号化が完了していなくても再起動後にレジストリはデータ値 1 に設定されております。
そのため、BitlockerStatus のレジストリ値から、暗号化状態が 100 % である事を確認する事はできません。
また、システム ドライブのみのチェックをしているので、データ ドライブのみを暗号化していてもレジストリのデータ値は 0 となります。