Powershell root/CIMV2/Security/MicrosoftVolumeEncryption与manage-bde.exe的准确性?

Powershell root/CIMV2/Security/MicrosoftVolumeEncryption与manage-bde.exe的准确性?,powershell,encryption,wmi,partition,bitlocker,Powershell,Encryption,Wmi,Partition,Bitlocker,我正在尝试从两个看似不同的来源(在Windows设备上使用powershell)确定报告的准确性: 方法1 manage-bde.exe -computername $hostname -status 返回大约100%加密和分区大小 方法2 if($encryption_check_all = Get-WMIObject -ComputerName $hostname -Namespace "root/CIMV2/Security/MicrosoftVolumeEncryption" -qu

我正在尝试从两个看似不同的来源(在Windows设备上使用powershell)确定报告的准确性:

方法1

manage-bde.exe -computername $hostname -status 
返回大约100%加密和分区大小

方法2

if($encryption_check_all = Get-WMIObject -ComputerName $hostname -Namespace "root/CIMV2/Security/MicrosoftVolumeEncryption" -query "SELECT * FROM Win32_EncryptableVolume WHERE DriveLetter='C:'" | Select-Object *){
    $encryption_check = $encryption_check_all.ProtectionStatus
    if ($encryption_check -eq "1"){$encryption_status = "Encrypted" ; $encryption_value = 200 }
    if ($encryption_check -eq "0"){$encryption_status = "No Encryption Found" ; $encryption_value = 200 }
else{}
返回值“1”或“0”。0表示分区未加密、部分加密或密钥为纯文本。就代码而言,这两个代码段都“工作”,但它们返回的结果相互冲突。是否有人对这两种方法都有经验或验证?我有一个设备返回,方法1为“0”,但bde.exe说它是100%加密的。这确实意味着按键是以纯文本形式出现的,还是有其他我不知道的细微差别?非常感谢您的澄清


此外,如果有人知道bde.exe中的数据源。这只是一个用于反流AD bitlocker密钥恢复的exe吗?我相信WMI名称空间调用实际上检查分区上的设备-更准确?谢谢

这可能更适合ServerFault。方法2应该始终使
If
语句失败,因为您将输出分配给了一个变量,并且不向
If
语句输出任何内容。它应该始终计算为
$false
。您是否考虑过只使用
Get BitLockerVolume
?或者你需要在远程机器上运行它吗?这个逻辑适用于我的用例。返回值是一个非布尔值的值字符串。只要它返回字符串1或0,我就要继续。如果没有(即我的环境中的壁挂式平台),我不想继续这种逻辑。逻辑不是问题,问题是验证或社区经验。这当然是我的理解——我以前就错了必须是远程的和可扩展的。15k+设备,无winRM.:(