问题描述
我正在尝试编写自动解锁多台 PC 上的多个驱动器的脚本。
我使用 Bitlocker 外部密钥解锁,而不是恢复密码。
命令是:
manage-bde -unlock h: -rk "K:\%BITLOCKER-EXTERNAL-KEY%"
BL 的外部密钥存储为 *.BEK 文件。我的所有内容都存储在我加密的 USB 驱动器的根目录中。
我需要一个脚本来循环遍历每个 BEK 文件,在变量中替换它,只有在成功解锁后才会停止。
我相信成功解锁的错误级别为 0。
我有大约 60 个 BEK 文件,如果没有这个脚本,我需要手动处理每个文件。除了将加载的文件循环到变量中之外,我可以编写大部分代码。
谢谢
解决方法
略有延迟但最终想出了以下解决方案: 可能需要一段时间才能执行,因为它循环执行相同的命令,但它可以工作。
:UNLOCKDRIVESAUTOMATICALLY
setlocal enableDelayedExpansion
SET _SECUREUSB_DRIVE_LETTER=E:
CD /D "%~dp0"
CLS
ECHO/Automatic Bitlocker Unlock
ECHO/
ECHO/Unlocking drives...
ECHO/
ATTRIB -h -s "%_SECUREUSB_DRIVE_LETTER%\*.bek"
for %%a in (*.bek) do (manage-bde -unlock c: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock d: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock e: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock f: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock g: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock h: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock i: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock j: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock k: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock l: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock m: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock n: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock o: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock p: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock q: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock r: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock s: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock t: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock u: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock v: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock w: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock x: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock y: -rk %~dp0%%a) > nul 2>&1
for %%a in (*.bek) do (manage-bde -unlock z: -rk %~dp0%%a) > nul 2>&1
ATTRIB +h +s "%_SECUREUSB_DRIVE_LETTER%\*.bek"
ECHO/
ECHO/Complete.
endlocal disableDelayedExpansion
pause
GOTO :END