
またはバッチファイルを使用して、c#
次の場所にあるtrueCryptボリュームをマウントします。
A:\volumeTrueCrypt.tc
私はこうc#
します:
static void Main(string[] args)
{
var p = Process.Start(
fileName:@"C:\Program Files\TrueCrypt\TrueCrypt.exe",
arguments:@"/v a:\volumetruecrypt.tc /lw /a /p truecrypt"
);
p.WaitForExit();
}
別の方法としては、次のようにコマンド ラインでコマンドを実行します。
C:\Windows\system32>"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volumetruecrypt.tc" /lw /a /p truecrypt
どちらの場合もエラーが発生します:
なぜそのエラーが発生するのでしょうか? 最初はそのコマンドを実行できました。ボリュームをアンマウントして再度マウントしようとした瞬間に、そのエラーが発生しました。手動で開くと、True crypt で使用可能な文字として表示されるため、ドライブ文字 W が使用可能であることがわかります。
マウントボタンをクリックしてパスワードtruecrypt
(パスワードはtruecrypt)を入力すると、ドライブwにマウントされます。なぜコマンドラインからマウントできないのでしょうか?コマンドラインでドライブ文字を変更するとマウントできます。ただし、ドライブWを使用したいのです。つまり、
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volumetruecrypt.tc" /lz /a /p truecrypt
ボリュームをドライブ z にマウントすることはできますが、ドライブ z にマウントするのではなく、ドライブ w にマウントしたいのです。最初にバッチを実行したときは問題なく実行されました。また、コンピューターを再起動しても機能するはずです。コマンド ラインから trueCrypt を使用する方法の詳細については、次のサイトを参照してください。http://www.truecrypt.org/docs/?s=コマンドラインの使用法
編集
このエラーがいつ発生するかについても調査していました。このエラーを生成するには、次の手順に従う必要があります。
1) コマンドを実行します: (最後に /q 引数を付けると静かになります)
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volumetruecrypt.tc" /ln /a /p truecrypt /q
"C...TrueCrypt.exe" = location where trueCrypt is located
/v "path" = location where volume is located
/n = drive letter n
/p truecrypt = password is "trueCrypt"
/q = execute in quiet mode. do not show window
ドライブ文字nにマウントしていることに注意してください
2) これでボリュームがマウントされるはずです。
3) trueCryptを開き、そのボリュームを手動でマウント解除します(コマンドラインは使用しません)
4) 同じコマンドラインを実行してみてください(/q なしで実行してエラーを表示します)
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volumetruecrypt.tc" /ln /a /p truecrypt
5) エラーが表示される
問題は手動でボリュームをアンマウントしたときに発生します。コマンドラインからアンマウントするとエラーは発生しません。しかし、これは trueCrypt のバグだと思います。
答え1
バグ レポートを trueCrypt に送信しました。ただし、問題を再現する方法は見つかりました。管理者権限のないプログラムからボリュームをマウント解除し、その後、管理者権限のあるプログラムを使用して同じボリュームを同じドライブにマウントしようとすると、機能しません。逆の方法で実行した場合も同じことが起こります。つまり、常に管理者権限なしでマウントおよびマウント解除すれば問題ありません。
私の場合、管理者権限で実行されるプログラムを作成していました。TrueCrypt.exe を実行するたびに、管理者権限なしで trueCrypt.exe が実行されていたため問題が発生しました。この問題を解決するには、次の変更を行う必要がありました。
これで私のプログラムと trueCrypt.exe は両方とも管理者権限で実行されるようになり、問題はなくなりました ;)