Je souhaite créer une classe wrapper pour des fonctions WMI spécifiques affectant la fonctionnalité BitLocker. La première étape consiste à obtenir tous les volumes Bitlocker d'une machine, donc je créé une application console et fait cela:WMI + Bitlocker + C# Obtenir des volumes cryptés produit un délai
private static ManagementClass management;
private static ManagementObjectCollection Volumes = null;
static void Main(string[] args)
{
ManagementPath path = new ManagementPath();
path.Server = "";
path.NamespacePath = "\\ROOT\\CIMV2\\Security\\MicrosoftVolumeEncryption";
path.ClassName = "Win32_EncryptableVolume";
ConnectionOptions options = new ConnectionOptions();
options.Authentication = AuthenticationLevel.PacketPrivacy;
options.Impersonation = ImpersonationLevel.Impersonate;
ManagementScope scope = new ManagementScope(path, options);
ObjectGetOptions getOptions = new ObjectGetOptions();
management = new ManagementClass(scope, path, getOptions);
management.Get();
Volumes = management.GetInstances();
}
Quand j'exécuter sur une machine non-Bitlocker la collection Volumes obtient initialisés OK, seulement qu'il a un nombre de 0 bien sûr. Maintenant, j'ai copié le code sur une application WinForms et quand je clique sur un bouton pour exécuter ce code, il passe par OK, mais quand j'essaye d'étendre la collection pendant le débogage, l'application se bloque et j'obtiens une "évaluation de fonction expirée". C'est le même code juste dans une autre application. Quelle pourrait en être la raison?
Chose étrange, les valeurs sont là et je peux travailler avec eux Je ne peux pas les voir en mode débogage. – hoetz