質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.80%

コマンドによるBitLocker暗号化に失敗する

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,013

O_Sano

score 12

前提・実現したいこと

Powershell、コマンドを使用して、BitLockerによるCドライブの暗号化を自動化しようとしています。
GUIでの下記1~6の操作と同等の処理を行いたいと思っています。

1:Cドライプに対して「BitLockerを有効にする」から、BitLockerを立ち上げ
2:『回復キーのバックアップ方法を指定してください』で「ファイルに保存する」を選択
3:[回復キー保存先フルパス]のディレクトリへデフォルト名(BitLocker 回復キー ~ .TXT)のファイルを保存
4:『ドライブを暗号化する範囲の選択』で「使用済みの領域のみ暗号化する」を選択
5:『使用する暗号化モードを選ぶ』で「新しい暗号化モード」を選択
6:『このドライブを暗号化する準備ができましたか?』で「BitLockerシステムをチェックを実行する」にチェックを入れる

この後、再起動を実行し再起動後に暗号化が実行される

上記手順を実現できるコマンドをご教授いただきたく質問いたしました。

発生している問題・エラーメッセージ

上記の内容を下の通りのコマンドで実施できると思っています。、
ですが、コマンド自体はエラーなく実行終了しますが、
【3:】の回復キーの記載されたテキストファイルと同等のものが作成されず(指定したディレクトリには何も生成されず…)

#[コマンド]
manage-bde -on C: -RecoveryKey [回復キー保存先フルパス] -EncryptionMethod xts_aes128 -UsedSpaceOnly

再起動後は、下記のエラーが発生し暗号化が行われません。
イメージ説明

[2019/5/29 11:40追記]
コマンドを下記に変更したところ、再起動後の「BitLockerを有効にできませんでした。」エラーについては発生しなくなった。

manage-bde -on C: -recoverypassword -EncryptionMethod xts_aes128 -UsedSpaceOnly


ただし、【3:】のテキスト保存については実行できず。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • yoorwm

    2019/05/29 10:18

    ソレについてはよく分からないのですが、まずはD:で試してみてはどうでしょうか?
    ちょっと見てみた感じ、C:に入っているプログラムで、C:自体を暗号化しようとしているように見えるのですが。

    キャンセル

  • O_Sano

    2019/05/29 10:28

    Cドライブしか搭載されていないPC(ドライブの分割が許可されていないPC)のため確認はできないのですが、GUIでの実行は可能であることを確認しているのでドライブの問題ではないように思われます。

    キャンセル

  • CHERRY

    2019/05/29 10:58 編集

    Enabling BitLocker by Using the Command Line ( https://docs.microsoft.com/ja-jp/previous-versions/windows/it-pro/windows-7/dd894351(v=ws.10) )を試しているということでよろしいでしょうか? (Windows 10 での例がみつけられなかったので、 Windows 7 の例ですが... )

    上記 URL の Configuring the hard disk for BitLocker の部分を読むと コマンドラインツールの場合、別のパーティションが必要と思われるのですが...

    キャンセル

  • O_Sano

    2019/05/29 11:41

    色々と試したところ、
    manage-bde -on C: -recoverypassword -EncryptionMethod xts_aes128 -UsedSpaceOnly
    にて、【3:】のテキストファイルの保存以外はGUIと同等の処理ができたため
    CHERRYさんの回答いただいた内容についてはWindows10環境では問題ない様子です。

    上記コマンドにより、再起動後のエラーは発生せず暗号化が実行されるようにはなりました。
    ですが、【3:】のテキスト保存方法はまだ見つかっておりません。

    引き続き、【3:】のテキスト保存方法についてはご回答をおねがいたしたく思います。

    キャンセル

回答 1

0

むりやりですが、下記の手順で解決しました。

①あらかじめテンプレートとして下記テキストの内容のファイルを用意する(ファイル名「BitLocker 回復キー ID_NUM.TXT」)

BitLocker ドライブ暗号化の回復キー 

これが適切な回復キーであることを確認するには、次の ID の先頭と、PC に表示されている ID 値とを比較してください。

ID:

    ID_NUM

上記の ID が PC に表示されている ID と一致する場合は、次のキーを使用してドライブのロックを解除します。

回復キー:

    PASS_NUM

上記の ID が PC に表示されている ID と一致しない場合、ドライブのロックを解除するための適切なキーではありません。
別の回復キーを試してみるか、https://go.microsoft.com/fwlink/?LinkID=260589 で詳細を確認してください。


 
②下記コマンドにて暗号化を実行

manage-bde -on C: -recoverypassword -EncryptionMethod xts_aes128 -UsedSpaceOnly

 
③再起動後、暗号化の終了を待ち下記コマンドを実行

#数字パスワードに対する情報を取得
$Results  = manage-bde -protectors -get c: -type RecoveryPassword

#読み込みフラグ初期化
$pass_flg = 0

# 1行づつ処理する
foreach( $Line in $Results ){
    # 「NTP: 」の行を特定
    if( $Line -match " ID:"){

        #「}」で分割
        $Buffers1 = $Line.Split("}")

        #「{」で分割
        $Buffers2 = $Buffers1[0].Split("{")

        # 1つ目の文字列
        $TergetBuffer_ID = $Buffers2[1]
    }

    #読み込みフラグが立っている場合
    if( $pass_flg -eq 1 ){

        #1行読み込み、空白を削除したものをパスワードとして保持
        $DifferentTime = $Line.Trim()
        $TergetBuffer_PASS = $DifferentTime 

        #フラグを初期化
        $pass_flg = 0
    }

    #パスワードを発見した場合、次の行を読むようにフラグを立てる
    if( $Line -match " パスワード:"){
        $pass_flg = 1
    }
}

#テンプレートファイルを加工する
#ID_NUMを$TergetBuffer_IDで置き換える
$data = Get-Content ".\BitLocker 回復キー ID_NUM.TXT" | ForEach-Object { $_ -replace "ID_NUM", $TergetBuffer_ID }

#PASS_NUMを$TergetBuffer_PASSで置き換える
$data = $data | ForEach-Object { $_ -replace "PASS_NUM", $TergetBuffer_PASS }

#ファイル名を設定
$file_name = "BitLocker 回復キー "
$file_name += $TergetBuffer_ID
$file_name += ".TXT"

#書き換えたファイルを保存する
$data | Out-File $file_name

#読み取り専用にする
Set-ItemProperty $file_name -Name IsReadOnly -Value $true

#作成したファイルをフォルダへ移動する
Move-Item $file_name "[格納フォルダパス]" -force

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.80%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る