0

我创建了用于检查 bitlocker 是否在机器中启用或未启用的代码块,遵循此主题:Detect BitLocker programmatically from c# without admin 我几乎在机器上运行良好,但从现在开始有一台机器返回空值:

IShellProperty prop = ShellObject.FromParsingName(rootDrive).Properties.GetProperty("System.Volume.BitLockerProtection");
int? bitLockerProtectionStatus = (prop as ShellProperty<int?>).Value; // bitLockerProtectionStatus return null

这台机器已经安装了bitlocker。我已经使用命令“manage-bde -status C:”检查并返回状态“完全加密”。

上面的主题只提到如果该属性的值为 1、3 或 5,则驱动器上启用了 BitLocker。任何其他值都被视为关闭。这个值如何返回 null,我在哪里可以检查机器中这个(“System.Volume.BitLockerProtection”)的值?

4

1 回答 1

0

我检测 bitlocker 驱动器的代码:

if (!new DriveInfo(DriveName).IsReady)
{
    Process p = Process.Start(new ProcessStartInfo()
    {
        FileName = "cmd.exe",
        Arguments = " /C " + DriveName,
        Verb = "runas",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        RedirectStandardError = true
    });
    string error = p.StandardError.ReadToEnd();
    string console = p.StandardOutput.ReadToEnd();
    bool IsBitLockerDrive = (error + console).Contains("BitLocker");//pw protected drive
}
于 2020-05-15T19:06:06.520 回答