我最近负责跟踪使用BitLocker加密的笔记本电脑。我们有超过300台笔记本电脑,而不是同时在网络上。我接手的人使用流动的命令行脚本为每台计算机创建一个txt。
FOR /F %%A IN (c:\Temp\BitLock\BitLock.txt) DO c:\temp\BitLock\PsExec.exe \\%%A -e cmd /c (hostname ^& Date /T ^& manage-bde.exe -status ^& manage-bde -protectors c: -get) >> \\server\Bitlocker\Recovery_Key\2015\%%A.log pause
我想将这些信息放在一个csv中,这样我就可以快速查看未加密的内容。一次打开一个文件似乎需要做很多额外的工作。下面的代码是我在PowerShell中提出的。我在获取数据显示在单元格中时遇到问题。我认为我没有使用正确的对象类名。
$computers= get-content c:\temp\computerlist.txt
$txtfile = "c:\temp\test\Computer4.txt"
foreach ($computer in $computers){
manage-bde -cn $compute -status |
Select "Conversion Status",Password |
export-csv c:\temp\test\Computer4.csv
}
我的最终目标是让它显示如下。
计算机名恢复密钥转换状态保护状态计算机描述
名称XXXXXXXXXX完全加密保护在John,Smith笔记本电脑上
答案 0 :(得分:0)
我知道这是一篇非常古老的帖子,但我认为我仍然会为遇到此问题的其他人提供答案。
以下是我提出的涉及一些自定义格式的内容,因为PowerShell没有将manage-bde输出视为PSObject:
$computers= get-content c:\temp\computerlist.txt
$txtfile = "c:\temp\test\Computer4.txt"
$bdeObject = @()
foreach ($computer in $computers) {
$bde = manage-bde -cn $computer -status
$ComputerName = $bde | Select-String "Computer Name:"
$ComputerName = ($ComputerName -split ": ")[1]
$ConversionStatus = $bde | Select-String "Conversion Status:"
$ConversionStatus = ($ConversionStatus -split ": ")[1]
$ConversionStatus = $ConversionStatus -replace '\s','' #removes the white space in this field
$PercentageEncrypted = $bde | Select-String "Percentage Encrypted:"
$PercentageEncrypted = ($PercentageEncrypted -split ": ")[1]
#Add all fields to an array that contains custom formatted objects with desired fields
$bdeObject += New-Object psobject -Property @{'Computer Name'=$ComputerName; 'Conversion Status'=$ConversionStatus; 'Percentage Encrypted'=$PercentageEncrypted;}
}
$bdeObject | Export-Csv c:\temp\test.csv -NoTypeInformation
另外,我在manage-bde中没有看到恢复密钥或计算机描述字段。但是这会让你获得一个带有计算机名称,转换状态和百分比加密字段的csv。