[ C# ] BitLocker を有効にしたドライブを回復キーでアンロックする(UnlockWithNumericalPassword)

Pocket

下記のリンクではBitLocker 暗号化ドライブのロックをパスワードを使って解除しましたが、ここでは、暗号化時に出力した48文字の回復キーを使ってアンロックするサンプルを掲載しています。

スポンサーリンク

BitLocker暗号化のロックを回復キーで解除する

暗号化ドライブのロックを回復キーを使用して解除するサンプルコードになります。詳細はサンプル内のコメントを参照ください。


string driveLetter = "H:"; // ドライブレター

// 暗号化デバイスを取得
ManagementObjectSearcher sea;
sea = new ManagementObjectSearcher("root\\CIMV2\\Security\\MicrosoftVolumeEncryption",
                                   "SELECT * FROM Win32_EncryptableVolume where DriveLetter='" + driveLetter + "'");

foreach (ManagementObject mo in sea.Get())
{
    ManagementBaseObject statProtection = mo.InvokeMethod("GetLockStatus", null, null);
    // ロック中は1、ロック状態でなければ 0
    if (statProtection["LockStatus"].ToString() == "1")
    {
        // 回復キーを使ってロックを解除
        ManagementBaseObject inParams = mo.GetMethodParameters("UnlockWithNumericalPassword");

        // パラメータに回復キーを設定
        inParams["NumericalPassword"] = "xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx";
        // または以下の形式
        //inParams["NumericalPassword"] = "xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx";
        // アンロック実行
        ManagementBaseObject outParams = mo.InvokeMethod("UnlockWithNumericalPassword", inParams, null);
        if (outParams["returnValue"].ToString() != "0") {
            // エラー 
        }
    }
}

参考

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *