Значения BitLocker - PullRequest
       23

Значения BitLocker

0 голосов
/ 29 мая 2019

Я пытаюсь получить информацию BitLocker с удаленного хоста.Я делал это с помощью PowerShell (Get-BitLockerVolume), который предоставлял много полезной информации.Когда я пытаюсь использовать C #, я не получаю столько информации обратно.Просматривая веб-сайт Microsoft и дальнейшие исследования , я не могу найти ничего, чтобы помочь мне.

Кто-нибудь знает, как получить тот же вывод, что и Get-BitLockerVolumeв C #?

Кстати, это то, что я тестировал в C #:

CimSession session = CimSession.Create(computerHostName);

IEnumerable<CimInstance> GI1 = session.QueryInstances(@"root\cimv2\Security\MicrosoftVolumeEncryption", "WQL", "SELECT * FROM Win32_EncryptableVolume");

foreach(CimInstance i in GI1)
{
    Console.WriteLine("MountPoint: {0}, Protection: {1}",
        i.CimInstanceProperties["DriveLetter"].Value,
        i.CimInstanceProperties["ProtectionStatus"].Value);
}

1 Ответ

0 голосов
/ 29 мая 2019

Как вспоминает Джероен, вы сможете получать эту информацию, вызывая методы в ваших экземплярах WMI. Что касается документов, Win32_EncryptableVolume предоставляет только следующие свойства:

class Win32_EncryptableVolume
{
  string DeviceID;
  string PersistentVolumeID;
  string DriveLetter;
  uint32 ProtectionStatus;
};

Чтобы легко получить необходимую информацию с помощью WMI и доступа к методам, вы можете использовать библиотеку ORMi :

Например, вы можете определить свой класс следующим образом:

public class Win32_EncryptableVolume : WMIInstance
{
  public string DeviceID {get; set;}
  public string PersistentVolumeID {get; set;}
  public string DriveLetter {get; set;}
  public int ProtectionStatus {get; set;}

  [WMIIgnore]
  public int Version {get; set;}

  public int GetVersion()
  {
     return WMIMethod.ExecuteMethod<int>(this)
  }
}

Тогда вы могли бы сделать что-то вроде:

WmiHelper _helper = new WmiHelper("root\\Cimv2"); //Define the correct scope

List<Win32_EncryptableVolume> volumes = _helper.Query<Win32_EncryptableVolume>().ToList();

foreach(Win32_EncryptableVolume v in volumes)
{
    v.Version = v.GetVersion();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...