SCCM 2007/2012 のハードウェア インベントリ機能を拡張して Bitlocker の有効有無を確認する方法

System Center Configuration Manager サポート担当の美馬です。

 

SCCM のハードウェア インベントリ機能を拡張することによりBitLocker が有効になっているかどうかを判断する方法をご紹介いたします。

なお、「必要な構成管理」機能を利用する方法もありますので、こちらの記事もご参照ください。

SCCM 2007 の「構成管理」機能を利用して Bitlocker の有効有無を確認する方法
https://blogs.technet.com/b/systemcenterjp/archive/2012/06/27/3506084.aspx
■前提となるテクノロジーについて

コンピュータにて各ドライブの Bitlocker が有効になっているかどうかについては、WMI 名前空間にある下記情報から判断することができます。

そのため、SCCM 2007 のハードウェア インベントリ機能を拡張することにより、下記の WMI 名前空間のプロパティ値を収集します。

名前空間:root\cimv2\security\MicrosoftVolumeEncryption

クラス:Win32_EncryptableVolume

プロパティ:ProtectionStatus

値:0 - PROTECTION OFF(Bitlocker が設定されていない)

1 - PROTECTION ON(Bitlocker が設定されている)

2 - PROTECTION UNKNOWN(Bitlocker が設定されているか判断できない)

- 参考情報 -

Win32_EncryptableVolume class
https://msdn.microsoft.com/en-us/library/aa376483(v=vs.85)

 

※ ProtectionStatus 値が「2」となる場合の例

システムドライブとは別のドライブ(D ドライブ等)にBitlocker を設定している環境で、ログオン後の最初のドライブアクセス時に

パスワード入力を要求する設定(パス フレーズによるロック解除設定)を行っている場合、

パスワード入力前の状態では ProtectionStatus 値が「2」、パスワード入力後はProtectionStatus 値が「1」となります。

そのため、SCCM クライアントでの「ハードウェア インベントリ スキャン サイクル」が実行されるタイミングにより ProtectionStatus 値が変わる可能性があります。

 

■ SCCM 2007 のハードウェアインベントリ拡張の設定方法

 

SCCM サイト サーバにて、ハードウェア インベントリ拡張のための設定を行います。

なお、当手順を実施することにより、該当サイト サーバで管理されるすべての SCCM クライアントに設定されます。

特定クライアントにのみ当設定を行うことができませんで、十分な検証を実施していただくことをお勧めいたします。

 

1. SCCM サイト サーバにて、以下のフォルダを開きます。

\Program Files\Microsoft Configuration Manager\inboxes\Clifiles.src\hinv

※ \Program Files は SCCM インストール先に応じて変更されます。

 

2. 以下の 2 ファイルのバックアップを取得します。

・configuration.mof

・sms_def.mof

 

3. configuration.mof ファイルをテキストエディタで開き、一番下までスクロール後に、 以下を追記し上書き保存します。

--------------------------------

#pragma namespace("\\\\.\\root\\cimv2")

[Union,ViewSources{"select * from Win32_EncryptableVolume"},ViewSpaces{"\\\\.\\root\\cimv2\\security\\MicrosoftVolumeEncryption"},
Dynamic,Provider("MS_VIEW_INSTANCE_PROVIDER")]
class Bitlocker
{
    [PropertySources{"DeviceID"},key]
    string          DeviceID;
    [PropertySources{"DriveLetter"}]
    string          DriveLetter;
    [PropertySources{"ProtectionStatus"}]
    uint32          ProtectionStatus;
};

--------------------------------

 

4. sms_def.mof ファイルをテキストエディタで開き、一番下までスクロール後に、以下を追記し上書き保存します。

--------------------------------

[ SMS_Report (TRUE),
SMS_Group_Name ("Bitlocker"),
SMS_Class_ID ("MICROSOFT|Bitlocker|1.0")]

class Bitlocker : SMS_Class_Template
{
[SMS_Report(TRUE), key]
string          DeviceID;
[SMS_Report(TRUE)]
string          DriveLetter;
[SMS_Report(TRUE)]
uint32          ProtectionStatus;
};

--------------------------------

 

手順は以上です。

 

なお、上記手順を実施した後で、SCCM クライアントからポリシー取得処理(既定で 1 時間おき)が実行されますと、変更した mof ファイルの内容がクライアントに反映されます。

次回の「ハードウェア インベントリ サイクル」(既定で 7 日おき)の実行により、Bitlocker 情報が SCCM サイト サーバ送信されるようになります。

 

ご注意:

SCCM 2007 SP1/SP2 や SCCM 2007 R2/R3 を適用しますと、上記で修正した configuration.mof、sms_def.mof ファイルが上書きされてしまい、

追加書きした内容が消えてしまいます。そのため、SP1/SP2、R2/R3 を適用した後は、再度追記していただく必要がございます。

 

■ SCCM 2007 管理コンソールから各クライアントの Bitlocker 設定状況を確認する方法

 

SCCM 管理コンソールにて、該当クライアントのリソースエクスプローラやクエリなどを利用して Bitlocker 設定状況を確認することができます。

 

該当クライアントのリソースエクスプローラから確認する方法

 

SCCM 管理コンソールのコレクション内にある対象クライアントを右クリックして [開始] -> [リソース エクスプローラ] をクリックします。

該当クライアントのリソース エクスプローラが起動しますので、下記のとおり [リソース エクスプローラ] -> [ハードウェア] -> [Bitlocker] と展開することにより Bitlocker の設定状況が確認できます。


WQL クエリによる確認方法

 

1. SCCM 管理コンソールにて、[コンピュータの管理] -> [クエリ] を右クリックして [新規] -> [クエリ] を選択します。

2. クエリ新規作成ウィザードが起動しますので、[名前] に任意の名前を入力後、[クエリ ステートメントの編集] ボタンをクリックします。

3.  下記のプロパティ画面で [クエリ言語を表示する] をクリックします。

4. [クエリ ステートメント] 欄に例えば下記のような WQL クエリを入力して、[OK] ボタンをクリックします。

WQL クエリ例:C ドライブの Bitlocker が無効(ProtectionStatus 値が “0”)のクライアント OS を表示

-----------------------
select SMS_R_System.Name from  SMS_R_System inner join SMS_G_System_BITLOCKER on SMS_G_System_BITLOCKER.ResourceID = SMS_R_System.ResourceId where SMS_G_System_BITLOCKER.DriveLetter = "C:" and SMS_G_System_BITLOCKER.ProtectionStatus = 0 and SMS_R_System.OperatingSystemNameandVersion like "Microsoft Windows NT%Workstation%"
-----------------------
※WQL クエリは、コレクション作成時に指定するクエリとしても利用できます。


5. 下記画面に戻りますので [OK] をクリックします。


6. ウィザード画面に戻り [次へ] ボタンをクリックします。


7. 下記画面で [完了] ボタンをクリックしてウィザードを完了させます。


8. SCCM 管理コンソールに戻り、[コンピュータの管理] -> [クエリ] を右クリックして [最新の情報に更新] を選択して作成したクエリ情報を表示させます。

 

9. SCCM 管理コンソールの [クエリ] 配下に新規に作成したクエリ(ここでは「Bitlocker 無効クライアント」)をクリックすると、WQL クエリが実行されて中央ペインに実行結果が表示されます。

10. ここで、クエリ実行結果を csv 形式に出力させたい場合は、実行結果が表示された状態で新規に作成したクエリ(ここでは「Bitlocker 無効クライアント」)を右クリックして [表示] -> [一覧のエクスポート] をクリックします。

11. [名前を付けて保存] 画面が表示されますので、任意のパス、名前を指定して、[ファイルの種類] で “Unicode テキスト (コンマ区切り) (*.csv)“ を選択して [保存] ボタンをクリックします。

以上となります。

 

SCCM 2012 ののハードウェア インベントリ拡張の設定方法

 

なお、SCCM 2012 の場合、より簡単に BitLocker の有効化状況を取得するためのハードウェア インベントリ拡張を設定することが可能です。

 

1. SCCM 2012 管理コンソールの左下ペインの [管理] をクリック後、左上ペインの [サイトの構成] -> [クライアント設定] を選択し、中央ペインにある「既定のクライアント設定」のプロパティを開きます。

2. プロパティ画面の左ペインにある [ハードウェア インベントリ] を選択し、[クラスの設定] ボタンをクリックします。

3. 「BitLocer (Win32_EncryptableVolume)」の項目に取得対象の項目にチェックを入れて、[OK] をクリックします。


4. [OK] ボタンをクリックして「既定のクライアント設定」のプロパティ画面を閉じます。

以上で SCCM 2012 での設定は完了です。

 

SCCM 2007 と同様に、SCCM クライアントからポリシー取得処理(既定で 1 時間おき)が実行されますと、変更した 「既定のクライアント設定」の内容がクライアントに反映されます。

次回の「ハードウェア インベントリ サイクル」(既定で 7 日おき)の実行により、Bitlocker 情報が SCCM サイト サーバ送信されるようになります。

 

下記画面のとおり、SCCM 2012 管理コンソールにて、クライアントのリソースエクスプローラーを開くと、BitLocker の状況が確認できます。

 

それではまた。