
使用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 提交了錯誤報告。不過我找到如何複製這個問題。如果您從沒有管理員權限的程式中卸載卷,然後嘗試使用具有管理員權限的程式將同一卷安裝到同一磁碟機中,則該磁碟區不起作用。如果你用箭頭相反的方式做,也會發生同樣的事情。簡而言之,如果您總是在沒有管理員權限的情況下安裝和卸載,那就沒問題。
就我而言,我正在創建一個以管理員權限運行的程式。每次我執行 TrueCrypt.exe 時都會遇到問題,因為 trueCrypt.exe 執行時間沒有管理員權限。為了解決這個問題,我要做的就是改變:
現在我的程式和 trueCrypt.exe 都將以管理員權限執行,現在我沒有問題了;)