2013-03-20 97 views
0

我试图使用批处理文件自动将特定密钥发送到AD。不幸的是,我无法使用任何其他语言。我使用的是从结果:使用批次从“manage-bde -get”获取ID

manage-bde -protectors c: -get 

,并使用从该数字密码ID在这下面的代码:

manage-bde -protectors -adbackup c: -id {numerical password ID} 

这里是我到目前为止(只是想获得正确的键) :

BitLocker驱动器加密:

@echo off 
manage-bde -protectors c: -get 
echo+ 
echo+ 
echo+ 
for /f "tokens=1,*" %%a in (' "manage-bde -protectors c: -get" ^| findstr ID') do set npi=%%b 
echo+ 
echo+ 
echo My Numerical Password ID: 
echo %npi% 
echo+ 
pause 

我得到这个是Co配置工具版本6.1.7601
版权所有(C)Microsoft Corporation。版权所有。

卷C:[]
所有密钥保护

数字密码:
ID:{DEDAF9BC-C42A-45A4-BB5D-609ED1898923} - 我想这one--
密码:
648712-106084-513103-486041-654894-310619-687401-654068

TPM:
ID:{DEDAF9BC-C42A-45A4-BB5D-609ED1898923}


我的数字密码ID:
{DEDAF9BC-C42A-45A4-BB5D-609ED1898923}

按任意键继续。 。 。

我觉得它只是抓住了第一个“ID”,但它一直指向TPM下的第二个“ID”。

任何想法我做错了什么?

感谢您的帮助,

Ĵ

回答

1

在您的set之前加上if not defined。如上面你的脚本,set被调用两次,因为有两条线匹配findstr "ID"。你最后得到的是第二个,因为这是最后被解析的。 if not defined捕获第一个,然后忽略其他。

在一个小问题上,当所有你想要的是第二个标记时,没有理由捕获token=1,*

@echo off 
manage-bde -protectors c: -get 
echo+ 
echo+ 
echo+ 
set npi= 
for /f "tokens=2" %%a in ('manage-bde -protectors c: -get ^| findstr "ID:"') do if not defined npi set "npi=%%a" 
echo+ 
echo+ 
echo My Numerical Password ID: 
echo %npi% 
echo+ 
pause 

要去掉括号,而你在吗?将for行替换为以下内容。

for /f "tokens=2 delims={}" %%a in ('manage-bde -protectors c: -get ^| findstr "ID:"') do if not defined npi set "npi=%%a" 
+0

我不能够感谢你。不错的工作。我认为我从你的帮助中获得了更多的信息,而不是在过去的一周里自己尝试。再次感谢您的帮助!! – 2013-03-20 19:38:13

+0

@JStarr - 非常好!我很高兴能够提供帮助。如果您同意这是适当的,请考虑[正式接受我的回答](http://meta.stackexchange.com/a/5235/187716)。 – rojo 2013-03-20 19:41:04

+0

刚刚做到了。再次感谢! – 2013-03-20 20:07:45

1
... 
echo+ 
(set npi=) 
for /f "tokens=1,*" %%a in (
' "manage-bde -protectors c: -get" ^| findstr ID' 
) do IF NOT DEFINED npi set npi=%%b 
... 

额外的组力NPI被取消设置它是否有一个现有的值。将语句括起来确保npi不被设置为行上的任何尾随空格。

FOR/F处理每一行输入,因此npi首先设置为第一个值,然后设置为第二个值。如果npi是er,那么添加IF NOT DEFINED可确保SET发生,因为它尚未定义,因此它保留遇到的FIRST值。

+0

顺便说一句 - 完全合法的明智地打破所示的FOR - 在布局上更容易... – Magoo 2013-03-20 00:54:41

+0

我喜欢这种方式的布局。感谢所有的帮助。我也没有期待如此快速的回应。 :) – 2013-03-20 19:43:23

+0

顺便说一句,我用括号的想法。非常深思熟虑。再次感谢。 – 2013-03-20 20:14:10