
С помощью 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 через командную строку, можно найти по адресу: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
решение1
Я отправил отчет об ошибке в trueCrypt. Но я нашел, как воспроизвести проблему. Если вы отмонтируете том из программы, у которой нет прав администратора, а затем попытаетесь смонтировать тот же том на тот же диск позже с помощью программы, у которой есть права администратора, это не сработает. То же самое произойдет, если вы сделаете это наоборот arrownd. Короче говоря, если вы всегда монтируете и отмонтируете без прав администратора, то все в порядке.
В моем случае я создавал программу, которая запускалась с правами администратора. И каждый раз, когда я запускал TrueCrypt.exe, у меня возникали проблемы, потому что trueCrypt.exe запускался без прав администратора. Для решения этой проблемы мне нужно было изменить:
теперь моя программа и trueCrypt.exe будут работать с правами администратора и у меня больше нет проблем ;)