Элегантный способ программно проверить, доступен ли BitLocker в системе? - PullRequest
0 голосов
/ 25 октября 2019

В настоящее время я работаю над программой-установщиком. Он имеет страницу проверки системы, где я проверяю, выполнены ли все требования или нет. Одним из требований является наличие BitLocker.

В настоящее время я проверяю BitLocker, пытаясь создать экземпляр Win32_EncryptableVolume, а затем проверяю, было ли выброшено исключение. Но мне интересно, есть ли более элегантный способ.

Мой метод в настоящее время выглядит примерно так:

public static bool IsBitlockerAvaliable()
{
    try
    {
        var path = new ManagementPath
        {
            NamespacePath = @"\ROOT\CIMV2\Security\MicrosoftVolumeEncryption",
            ClassName = "Win32_EncryptableVolume"
        };
        using (var wmi_class = new ManagementClass(path))
        {
            foreach (var o in wmi_class.GetInstances())
            {
                var vol = (ManagementObject) o;
                if (vol == null)
                    throw new Exception("Vol is null");
                Debug.WriteLine(vol);
            }
        }

        return true;
    }
    catch (ManagementException e)
    {
        // No Admin rights is a different issue
        if (e.ErrorCode == ManagementStatus.AccessDenied)
        {
            throw new AccessViolationException();
        }

        return false;
    }
    catch (Exception e)
    {
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...