我想从命令提示符解锁用 BitLocker 锁定的卷,我在网上搜索到的命令是:
manage-bde -unlock E: -RecoveryPassword "mypassword"
但是我的密码字符之间有空格,所以不起作用。即使我把它放在引号之间。我该如何解决这个问题?
答案1
正如 David 提到的
C:\Windows\System32>manage-bde -unlock D: -Password Enter the password to unlock this volume:
这是主动提示。您不能在同一行中输入密码,必须等待提示。
因此有一个替代方案:
C:\Windows\System32>manage-bde -unlock D: -RecoveryKey "D:\path\keyfile.bek"
使用您提到的批处理文件比使用密码更容易处理。但要保护对密钥文件的访问。
请注意,-RecoveryKey 有点令人困惑。它不适用于 .txt-recovery-file,后者实际上称为 RecoveryPassword;它适用于启动密钥或恢复密钥,它们都是外部密钥文件。(*.bek)。
您可以使用命令添加这样的密钥,以此开始,
manage-bde -protectors -add /?
这将显示帮助和示例,以便您可以为您的驱动器选择一种新类型的密钥。
供您概览:
- 恢复密码:数字密码
- 密码:人工定义的密码
- RecoveryKey:*.bek 文件,包含一个非常长的复杂密钥。
- StartupKey :与 RecoveryKey 相同,*.bek,用于启动时使用。
- 其他类型可用,请运行提到的/?命令。
答案2
如果您使用 PowerShell,则可以直接在命令行上传递密码:
Unlock-Bitlocker d: -Password (ConvertTo-SecureString "YourPassword" -AsPlainText -Force)
正如前面所说,manage-bde 尝试强制人类输入密码是有充分理由的,避免在 .bat/.ps1 文件中以明文形式嵌入密码。但是,只要在受信任的环境中小心谨慎,这样做是有充分理由的。最后两个开关的文档指出了这样做可能造成危害的众多方式之一:
-AsPlainText:指定要转换为安全字符串的纯文本字符串。安全字符串 cmdlet 有助于保护机密文本。文本经过加密以保护隐私,使用后会从计算机内存中删除。如果使用此参数提供纯文本作为输入,系统无法以这种方式保护该输入。要使用此参数,还必须指定 Force 参数。
-Force:确认您了解使用 AsPlainText 参数的含义并且仍然想要使用它。
答案3
我的疯狂情况是这样的......
起初,我有 2 个 BitLocker 卷,通过运行 .bat 文件将它们解锁,然后进行备份,再通过 bat 文件将它们锁定。
一切都很顺利,直到我出于(愚蠢的)原因不得不格式化两个驱动器中的一个。
然后对格式化的驱动器重新启用 BitLocker。
现在,当我去解锁卷时,我像往常一样运行一个 bat 文件,但遇到了可怕的错误,解锁了但无法访问(无缘无故)。
偶然中我找到了解决该问题的方法,如果我进行解锁-锁定-解锁,那么一切都会正常,驱动器可以正常访问!
并且,只需对最新的 BitLocker 卷进行全部操作即可,旧的 BitLocker 卷只需解锁一次即可,之后即可像往常一样使用。
仅新的 BitLocker 卷需要解锁两次(捂脸)