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
いずれにせよ、エラーが発生します。
なぜそのエラーが発生するのですか?初めてそのコマンドを実行できました。ボリュームをマウント解除して再度マウントしようとすると、エラーが発生しました。ドライブ文字Wは、手動で開くとtrue cryptで使用可能な文字として表示されるため、使用できることを知っています。
マウントボタンをクリックしてからパスワードtruecrypt
(truecryptはパスワード)を入力すると、ドライブwに正常にマウントされます。コマンドラインからマウントできないのはなぜですか!?コマンドラインでドライブ文字を変更すると、機能します。でもドライブWを使いたいです。言い換えれば、実行
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volumetruecrypt.tc" /lz /a /p truecrypt
そのボリュームをドライブzに正常にマウントしますが、ドライブzにマウントしたくありません。ドライブwにマウントしたいと思います。初めてバッチを実行したときは、正常に実行されました。また、コンピュータを再起動すると、動作するはずです。コマンドラインからtrueCryptを使用する方法の詳細については、次のURLを参照してください。 http://www.truecrypt.org/docs/?s=command-line-usage
また、このエラーがいつ発生するかについても調査していました。このエラーを生成するには、次の手順に従う必要があります。
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のバグだと思います
バグレポートをtrueCryptに提出しました。しかし、私は問題を再現する方法を見つけました。管理者権限のないプログラムからボリュームをマウント解除した後、管理者権限のあるプログラムを使用して同じドライブに同じボリュームをマウントしようとすると、機能しません。逆にそれを行う場合も同じことが起こります。つまり、管理者権限なしで常にマウントおよびマウント解除する場合は問題ありません。
私の場合、管理者権限で実行されるプログラムを作成していました。そして、TrueCrypt.exeを実行するたびに、trueCrypt.exeが管理者権限なしで実行されていたため、問題が発生しました。問題を解決するために私がしなければならないことは、変更することでした。
これで、私のプログラムとtrueCrypt.exeは両方とも管理者権限で実行され、問題はありません;)