如何将输出格式化为Manage-bde?

时间:2015-12-31 19:17:53

标签: powershell encryption

我最近负责跟踪使用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笔记本电脑上

1 个答案:

答案 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。