質問: ### 前提・実現したいこと 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 ``` 再起動後は、下記のエラーが発生し暗号化が行われません。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/de23be815f46accddc846d815fc308d5.png) [2019/5/29 11:40追記] コマンドを下記に変更したところ、再起動後の「BitLockerを有効にできませんでした。」エラーについては発生しなくなった。 ``` manage-bde -on C: -recoverypassword -EncryptionMethod xts_aes128 -UsedSpaceOnly ``` ただし、【3:】のテキスト保存については実行できず。
回答: むりやりですが、下記の手順で解決しました。 1あらかじめテンプレートとして下記テキストの内容のファイルを用意する(ファイル名「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 で詳細を確認してください。 ``` 2下記コマンドにて暗号化を実行 ``` manage-bde -on C: -recoverypassword -EncryptionMethod xts_aes128 -UsedSpaceOnly ``` 3再起動後、暗号化の終了を待ち下記コマンドを実行 ``` #数字パスワードに対する情報を取得 $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 ```