Saya memiliki kode ini dalam skrip PowerShell:
$passwords = Get-Content "passwords.txt"
$TCPath = "c:\Program Files\TrueCrypt\TrueCrypt.exe"
$TCfile = "container.tc"
foreach ($password in $passwords)
{
$LASTEXITCODE=99
& $TCPath "/l z /s /q /p$password $TCfile"
if ($LASTEXITCODE)
{
write-host YES
}
else
{
write-host NO
}
}
$ LASTEXITCODE selalu 99 setelah panggilan ke TCPath, jadi skrip selalu dicetak YES
. Panggilan ke TC tidak mengubah apa pun dalam $ LASTEXITCODE. Apa yang harus saya lakukan untuk mendapatkan kode keluar dari TrueCrypt?
IF ($LASTEXITCODE -eq 99)
? Jika menunggu bool dan mencoba untuk melemparkan nilai ke bool.-5 .. 5 |%{if ($_) {write-host "yes $_"} else {write-host "no $_"} }
untuk melihat apa yang saya maksud.0
. Untuk mengetahui nilai sebenarnya, Andawrite-host "Yes $LASTEXTICODE and $?"
hanya perlu YAJawaban:
Jadi, setelah banyak penelitian saya dapat melihat bahwa TrueCrypt tidak dapat menetapkan $ LASTEXITCODE dan masalahnya tidak dapat diselesaikan oleh $ ?. Jadi satu-satunya cara untuk menguji kata sandi adalah file batch. Satu liner sudah cukup:
sumber
Solusi yang tepat untuk pengambilan kode keluar yang benar dari TC adalah dengan menggunakan perintah Mulai-Proses.
sumber