WMI et Win32_LogicalDisk

Résolu
cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007 - 27 janv. 2007 à 17:51
cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007 - 28 janv. 2007 à 09:42
Salut la communauté,

Voilà, j'ai un légé problème sur l'utilisation de la Win32_LogicalDisk et la méthode ScheduleAutoChk

Ci joint le bout de code qui utilise WMI, la classe Win32_LogicalDisk et la méthode ScheduleAutoChk...

ManagementScope aManagementScope = new ManagementScope("\\\\localhost\\root\\cimv2");
ObjectQuery aObjectQuery = new System.Management.ObjectQuery("select * from Win32_LogicalDisk where DriveType=3");

ManagementObjectSearcher aManagementObjectSearcher = new ManagementObjectSearcher(aManagementScope, aObjectQuery);
ManagementObjectCollection aManagementObjectCollection = aManagementObjectSearcher.Get();

foreach (ManagementObject aManagementObject in aManagementObjectCollection)
{
    long FreeSpace = long.Parse(aManagementObject["FreeSpace"].ToString());
    long Size = long.Parse(aManagementObject["Size"].ToString());
    long UseSpace = Size - FreeSpace;

    FreeSpace = FreeSpace / (1<<20);    // On veut   
    UseSpace = UseSpace / (1<<20);      // le résultat
    Size = Size / (1 << 20);            // en Méga Octets

    Console.WriteLine("Name : " + aManagementObject["name"].ToString());
    Console.WriteLine(String.Format("Taille du disque: {0} MO, Espace libre: {1} MO, Espace utilisée: {2} MO \n" , Size, FreeSpace, UseSpace));

    try
    {
        object[] parameters = new object[1];
        string[] sLogicalDisk = { aManagementObject["name"].ToString() };

        parameters[0] = sLogicalDisk;
        
        // EXCEPTION DECLENCHEE: METHODE INVALIDE, pourquoi ?
        if ((int)aManagementObject.InvokeMethod("ScheduleAutoChk", parameters) == 0)
            Console.WriteLine("SUCCES");
    }
    catch (ManagementException Ex)
    {
        Console.WriteLine(Ex.Message);
    }    
}

Ce qui pose problème:

if ((int)aManagementObject.InvokeMethod("ScheduleAutoChk", parameters) == 0)
     Console.WriteLine("SUCCES");

Une exception est déclenchée: Méthode non valide.

Si quelqu'un à la moindre idée, qu'il n'hésite surtout pas ;)

2 réponses

cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007
28 janv. 2007 à 09:18
Problème résolu

Je posterai sûrement un bout de code, pour ceux qui seront interessé dans le future
3
cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007
28 janv. 2007 à 09:42
Voilà un bout de code, qui vous permettra d'utiliser WMI en C#

Amusez-vous
0
Rejoignez-nous