
Com c#
ou um arquivo em lote eu monto um volume trueCrypt localizado em
A:\volumeTrueCrypt.tc
Com c#
eu faço:
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();
}
a alternativa é executar o comando na linha de comando como:
C:\Windows\system32>"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volumetruecrypt.tc" /lw /a /p truecrypt
De qualquer forma, recebo o erro:
Por que recebo esse erro? Consegui executar esse comando pela primeira vez. No momento em que desmontei o volume e tentei montá-lo novamente, recebi esse erro. Eu sei que a letra da unidade W está disponível porque aparece como uma letra disponível no true crypt se eu abri-la manualmente:
Se eu clicar no botão montar e digitar a senha truecrypt
(truecrypt é a senha), ele será montado com sucesso na unidade w. Por que não consigo montá-lo a partir da linha de comando!? Se eu alterar a letra da unidade na linha de comando, ela funcionará. Eu quero usar a unidade W. Em outras palavras, executar
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volumetruecrypt.tc" /lz /a /p truecrypt
montarei com êxito esse volume na unidade z, mas não quero montá-lo na unidade z. Quero montá-lo na unidade w. A primeira vez que executei o lote funcionou bem. Além disso, se eu reiniciar meu computador, acredito que deve funcionar. Mais informações sobre como usar o trueCrypt por meio da linha de comando podem ser encontradas em:http://www.truecrypt.org/docs/?s=command-line-usage
Editar
Eu também estava investindo quando esse erro ocorre. Para gerar este erro você precisa seguir estes passos.
1) execute o comando: (observe o argumento /q no final para silêncio)
"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
note que estou montando na letra n da unidade
2) agora o volume deve ser montado.
3) Abra o trueCrypt e desmonte manualmente esse volume (sem usar linha de comando)
4) Tente executar a mesma linha de comando (sem o /q para ver o erro)
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volumetruecrypt.tc" /ln /a /p truecrypt
5) um erro deve aparecer
Portanto, o problema ocorre quando desmonto manualmente o volume. Se eu desmontá-lo da linha de comando, não recebo erros. Mas acho que isso é um bug do trueCrypt
Responder1
Enviei o relatório de bug para trueCrypt. Eu descobri como replicar o problema. Se você desmontar um volume de um programa que não tem direitos de administrador e tentar montar o mesmo volume na mesma unidade com um programa que tenha direitos de administrador, isso não funcionará. A mesma coisa acontece se você fizer o contrário. Resumindo, se você sempre monta e desmonta sem privilégios de administrador, tudo bem.
No meu caso, eu estava criando um programa que rodava com privilégios de administrador. E toda vez que executei o TrueCrypt.exe, tive problemas porque o trueCrypt.exe estava sendo executado sem privilégios de administrador. O que tive que fazer para resolver o problema foi mudar:
agora meu programa e trueCrypt.exe serão executados com privilégios de administrador e agora não tenho problemas;)