c# - WMI 关闭磁盘

标签 c# windows wmi

我想关闭磁盘 (WMI)。到目前为止,我有以下代码:

    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"});
    }

但是,磁盘事件不断发生。任何关于正在发生的事情的想法都将不胜感激。

最佳答案

SetPowerState 不是由 WMI 实现的:

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

检查 CompletedEventArgs.Status 也会返回 MethodNotImplemented 告诉我们情况就是这样。如果您想使用该方法,则必须实现您自己的提供程序。

关于c# - WMI 关闭磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7398179/

相关文章:

c++ - 如何在 C++ 中使用 WMI 或其他 WMI 检测安装在 Windows 2003 服务器和 2008 服务器 2003 服务器 R2 和 2008 服务器 R2 上的防病毒软件

c# - 如何使用 C# 禁用 Alt + Shift + Tab?

c# - EntityFramework 抛出 NullReferenceException

c++ - 如何在使用keybd_event后停止按键?

c - SetWindowsHookEx - 取消Winkey + L(电脑锁定)

c++ - QProgressBar随着函数的进展而更新

c# - LINQ Group by 两个语句

c# - Windows Phone 7 - iCal 生成器 - C#

powershell - 递归函数中属性值的缩短输出

wmi - 有没有办法通过 WMI RSOP_XXX 类读取密码策略?