使用批处理自动化管理

使用批处理自动化管理

我们想加密 C(全盘),指定启动密码(我们可以用纯文本形式,它是临时的),然后简单地将恢复密钥备份到桌面。到目前为止,有效的是确定是否需要执行加密:

    set "sENCRYPTION_METHOD=NONE"
    for /F "tokens=1*" %%G in ('MANAGE-BDE -STATUS ^| FIND /I "ENCRYPTION_METHOD:"') do set "sENCRYPTION_METHOD=%%~H"
    IF "%sENCRYPTION_METHOD%"=="NONE" (
        GOTO :NotEncrypted
    ) ELSE (
        GOTO :Encrypted
    )

    :Encrypted
    cls
    echo You are Encrypted.

    goto :Verify365

    :NotEncrypted
    cls
    echo You are not Encrypted.

我遇到的困难是定义加密 C 盘的方法。我尝试阅读https://technet.microsoft.com/en-us/library/ff829848.aspx并尝试了不同的变体,但到目前为止我还没有得到预期的结果。我们的笔记本电脑没有 TPM,所以我们需要在 gpedit.msc 中手动启用 bitlocker(我们稍后会为此编写一个脚本),然后我们尝试运行如下程序:

    manage-bde -on C: -Recoverypassword > %USERPROFILE%\Desktop\PRINT_AND_DELETE.txt -SkipHardwareTest -password

但是,.txt 文件中输出的是输入我们想要的密码的请求,而不是我们想要指定的默认密码。如果我尝试在 -password 后指定密码,则会收到语法错误。但阅读完文章后,我看不到其他地方可以指定。

这里有谁熟悉 manage-bde 并能将我们要做的事情转化为代码吗?我们大多数人对 Windows Batch 都很陌生。

答案1

您提到您想设置一个启动密码,但您的代码让您尝试设置并保存/存储恢复密码。如果要设置启动密钥,请使用 -startupkey 参数。

对于恢复密码,您可以让它为您随机选择一个密码,然后导出它:

manage-bde -on C: -recoverypassword -skiphardwaretest
manage-bde -protectors -get C: > "\\path\to\folder"

或者选择您自己的密码并简单地在其他地方跟踪它,无需导出(麻烦较少,但可能不太安全?改天再讨论这个话题...):

manage-bde -on C: -recoverypassword 'XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX' -skiphardwaretest

如果您选择自己的密钥,则需要满足一些要求:

密码必须正好包含 48 位数字,可分为 8 组,每组 6 位数字。在命令行上使用连字符 (-) 分隔 6 位数字组。48 位数字密码中的每一组 6 位数字必须是:

  1. 能被 11 整除
  2. 小于 720896

例如,“000000”是有效的 6 位数字组。无效的组包括“123456”、“720896”和“888888”。

相关内容