BitLocker は Windows 10 Professional/Enterprise に標準搭載されているディスク暗号化機能。 最近、会社 PC を Windows 10 にアップデートしたので使うようになった。
BitLocker は OS ログイン前に C ドライブの暗号化を解除しろ、とパスワード入力を求めてくる。 ただし、その後、OS ログインしても、C ドライブ以外 (たとえば、D ドライブ) は暗号化されたままとなっており、いちいち当該ドライブへアクセスしてパスワード入力して暗号化を解除する必要があった。 また、暗号化解除前に D ドライブ上のファイルへアクセスするとエラーが起きてしまい、大変うざったい。
そこで、OS ログイン時に自動的に C ドライブ以外のディスク暗号化解除するために PowerShell とバッチを書いてスタートアッププログラムに登録した話を書く。
セキュリティクラスタには怒られるのかもしれないが、OS に管理者権限ユーザでログインできている時点でもういろいろ見れて当たり前やろ、という思想。
全体の流れは以下。
- BitLocker 解除用の PowerShell を書く
- バッチファイル unlock-bitLocker.cmd を書く
- バッチファイル unlock-bitLocker.cmd をタスクスケジューラに登録する
- タスクを呼び出すバッチファイル trigger_unlock-bitLocker.cmd を書く
- バッチファイル unlock-bitLocker.cmd をスタートアッププログラムに登録してあげる
1. BitLocker 解除用の PowerShell を書く
ここでは D ドライブの BitLocker 解除するスクリプト C:\PATH-YOU-WANT\unlock-bitLocker.ps1
を書く。
1 2 3 4 |
|
複数のドライブがある場合は以下。
1 2 3 4 5 6 |
|
2. バッチファイル unlock-bitLocker.cmd を書く
上述の PowerShell スクリプトを管理者権限で実行し、かつ、スタートアッププログラムに登録するために、上記の PowerShell を呼び出すバッチファイル C:\PATH-YOU-WANT\unlock-bitLocker.cmd
を書いてあげる。
PowerShell を直接登録したかったのだが、調査力が足りず変な構成になった…
もしくは、これくらいなら PowerShell スクリプトはいらず、バッチスクリプトだけでもよかったかもしれない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
3. バッチファイル unlock-bitLocker.cmd をタスクスケジューラに登録する
unlock-bitLocker.cmd
をスタートアッププログラムに登録すると、実行時に管理者権限で実行するかという確認ダイアログがでて毎回うざったい。
そこで、いったん上記のバッチスクリプトをタスクスケジューラに管理者権限実行のタスクとして登録してそのタスクをスタートアッププログラムから起動する。
Windows キー + r
: ファイル名を指定して実行を起動taskschd.msc
を入力: タスクスケジューラが開く- 新規タスクの作成:
- 「タスクの作成」から
unlock_bitlocker.cmd
を起動するタスクを作成する - 「全般」タブの「最上位の特権で実行する」にチェックを入れる
- 「操作」タブから「新規」ボタンを押す。操作は「プログラムの開始」、プログラム/スクリプトに
C:\PATH-YOU-WANT\unlock-bitLocker.cmd
を指定 - 「トリガー」は空でOK
- 「タスクの作成」から
4. タスクを呼び出すバッチファイル trigger_unlock-bitLocker.cmd を書く
1 2 3 4 5 6 7 8 9 |
|
5. バッチファイル unlock-bitLocker.cmd をスタートアッププログラムに登録してあげる
Windows キー + r
: ファイル名を指定して実行を起動shell:startup
を入力: スタートアップのフォルダが開く- 作ったバッチファイル
trigger_unlock-bitLocker.cmd
のショートカットをスタートアップフォルダの中に作成
以上で、OS ログイン後に D ドライブの BitLocker を解除できる。
BitLocker を有効にしていると、初回起動時に NumLock が有効になっているのを無効化したいんだが、だれか方法を教えてほしい。