【发布时间】:2016-01-26 18:36:52
【问题描述】:
备份我的数据的 Powershell 脚本从命令行读取密码并将其传递给 7zip (7z):
....
$pw = Read-Host -assecurestring -Prompt 'Input Backup Master Passphrase: '
$pw = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pw))
....
& 'C:\Program Files\7-Zip\7z.exe' a -v900M -t7z -mhe=on -mx=9 -p$pw $target/myarchive.7z $src
但是当我在 7zip (GUI) 中打开存档时,它会显示一个密码提示,输入密码后它会显示一个文件(还是一个 7zip 文件),该文件也是加密的,但不响应密码。
当我在另一个 Powershell 脚本中提取文件时,它工作正常。
# $pw is read again from commandline via Read-Host....&PtrToStringAuto
& 'C:\Program Files\7-Zip\7z.exe' x -p$pw $target/myarchive.7z
为什么提取只能在 CLI 上工作,而不是通过 GUI?
【问题讨论】:
-
在GUI中你输入的是明文密码还是加密密码?
-
我正在输入明文。第二行 (SecureStringToBSTR) 应该“解密”安全字符串。
标签: powershell password-protection 7zip