c # - WMI slukke for diske

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil slukke diske (WMI). Indtil videre har jeg følgende kode:


    ManagementScope scope = new ManagementScope("\\.\ROOT\cimv2");
    ObjectQuery query = new ObjectQuery("SELECT * FROM CIM\_DiskDrive");

    //create object searcher
    ManagementObjectSearcher searcher =
                            new ManagementObjectSearcher(scope, query);
    ManagementObjectCollection queryCollection = searcher.Get();

    //enumerate the collection.
    foreach (ManagementObject m in queryCollection)
    {
        Console.WriteLine("in set power state for: " + m.Path);
        ManagementOperationObserver obs = new ManagementOperationObserver();
        obs.Progress += new ProgressEventHandler(obs\_Progress);
        obs.Completed += new CompletedEventHandler(obs\_Completed);
        m.InvokeMethod(obs, "SetPowerState", new object[]{"7"});
    }


diskaktivitet sker dog stadig. Eventuelle ideer om hvad der foregår vil blive værdsat.

Bedste reference


SetPowerState implementeres ikke af WMI:


http://msdn.microsoft.com/en-us/library/aa387254(v=VS.85).aspx[2]


kontrol af CompletedEventArgs.Status vil også returnere MethodNotImplemented fortæller os, at dette er tilfældet. Hvis du vil bruge den metode, skal du implementere din egen udbyder.