0

当我尝试使用 wmic 访问 BcdStore 类的 EnumerateObjects 方法时出现错误。

我最初运行 GetSystemDisk 方法是为了查看我可以访问 BcdStore(见下文)。这工作得很好。

__ _ __ _ __ _ __ _ __cmd窗口输出开始__ _ __ _ __ _ __ _ __ _ ___

C:>wmic /namespace:\root\wmi 类 BcdStore 调用 GetSystemDisk

执行 (BcdStore)->GetSystemDisk()

方法执行成功。

输出参数:

__PARAMETERS 的实例

{

    Disk = "\\Device\\Harddisk0\\DR0";

    ReturnValue = TRUE;

};

__ _ __ _ __ _ __ _ __cmd窗口输出结束__ _ __ _ __ _ __ _ __ _ ___

然后我运行了 EnumerateObjects 方法,但是失败了,请看下面。不同的版本只是如何将参数传递给方法的不同变体,但这不起作用。

__ _ __ _ __ _ __ _ __cmd窗口输出开始__ _ __ _ __ _ __ _ __ _ ___

C:>wmic /namespace:\root\wmi 类 BcdStore 调用 EnumerateObjects 10200003

执行 (BcdStore)->EnumerateObjects()

错误:

说明 = 方法参数无效

C:>wmic /namespace:\root\wmi class BcdStore call EnumerateObjects Type=10200003

执行 (BcdStore)->EnumerateObjects()

错误:

说明 = 方法参数无效

C:>wmic /namespace:\root\wmi 类 BcdStore 调用 EnumerateObjects Type="H10200003"

错误:

描述 = 类型不匹配。

C:>wmic /namespace:\root\wmi 类 BcdStore 调用 EnumerateObjects 0x10200003

错误:

描述 = 类型不匹配。

__ _ __ _ __ _ __ _ __cmd窗口输出结束__ _ __ _ __ _ __ _ __ _ ___

任何帮助,将不胜感激。

4

1 回答 1

0

这不是一个答案,因为我不确定是否真的了解您想要做什么,但它可以解释为什么您所做的事情不起作用。

以下是有效的,因为GetSystemDisk是类的静态方法BcdStore

wmic /namespace:\root\wmi class BcdStore call GetSystemDisk

正如您在WMI Cim studio的方法限定符中看到的那样:

在此处输入图像描述

但是 EnumerateObjects是类的实例方法BcdStore,所以不能从类本身调用,必须从实例调用。WMI 对象浏览器在我的 W2K8R2 上没有显示任何实例BcdStore

在此处输入图像描述

于 2012-06-04T20:40:16.777 回答