我正在尝试创建一个bat文件来运行cmd代码以将bitlockers数字id保存到广告中 我到目前为止得到的代码是
@echo off
title bitlocker to AD.
echo Bitlocker to ActiveDirectory
pause
powershell -Command manage-bde -protectors -get c:
powershell -Command manage-bde -protectors c: -id {<numericalpassword>}
echo 1)Exit
set input=
set /p input= Choice
if %input%==2 goto Exit if NOT goto Start 2```
`
But what I got when I run it is:
[![what really happened][1]][1]
[1]: https://i.sstatic.net/uM3b9.png
basically it cannot recognize the "<numericalpassword>"
How to I get the numerical password id as a string that I can push to the second line?
我已经在我的环境中测试过
如何获取我可以推送到的字符串形式的数字密码 id 第二行?
您可以使用以下命令获取字符串变量形式的数字密码 id :
$key = ((manage-bde -protectors -get c:) | Select-String -SimpleMatch "ID: ")[1] -replace "ID:","" -replace " ",""
现在您可以在第二行中使用此变量,如下所示:
manage-bde -protectors -adbackup c: -id $key
此外,您还可以为这两个powershell命令编写powershell脚本,并在bat文件中运行该脚本。
使用下面的powershell脚本:
$key = ((manage-bde -protectors -get c:) | Select-String -SimpleMatch "ID: ")[1] -replace "ID:","" -replace " ",""
manage-bde -protectors -adbackup c: -id $key
将此脚本保存在本地并在 bat 文件中使用此行:
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'path-to-your-powershell-script'"
而不是
powershell -Command manage-bde -protectors -get c:
powershell -Command manage-bde -protectors c: -id {<numericalpassword>}
当我尝试运行时,我得到了这个:
PowerShell -NoProfile -ExecutionPolicy 绕过 -Command“&‘您的 powershell 脚本的路径’”
输出:
C:\Users>$key = ((manage-bde -protectors -get c:) | Select-String -SimpleMatch "ID:")[1] -replace "ID:","" -replace " "," ” '$key' 不被识别为内部或外部命令, 可运行的程序或批处理文件。
为什么要绕道通过Powershell? manage-bde 是一个 cmd 命令(.exe 文件)。 位于此处 C:\Windows\System32\manage-bde.exe