我正在编写一个需要启用UWF的程序。不幸的是,我没有WMI界面经验,而UWF文档也没有C#或.NET示例。
启用UWF时,出现异常:“无效的方法参数”。但是,根据文档-https://docs.microsoft.com/en-us/windows-hardware/customize/enterprise/uwf-filter-启用没有输入参数。传递null也不起作用:
var scope = new ManagementScope(@"root\standardcimv2\embedded");
var uwfClass = new ManagementClass(scope.Path.Path, "UWF_Filter", null);
var inputParameters = uwfClass.GetMethodParameters("Enable");
var result = uwfClass.InvokeMethod("Enable", inputParameters, null);
答案 0 :(得分:1)
好吧,经过很多头痛之后,我终于知道为什么它不起作用了。 ManagementClass仅代表一个类,而不代表对象(实例)。为了使其工作,我需要在实例上调用该方法:
var instances = uwfClass.GetInstances();
foreach (ManagementObject instance in instances)
{
var result = instance.InvokeMethod("Enable", null);
break; //There should only be one instance, but to be sure, exit after first instance
}
这可能是合乎逻辑的,但如果您不习惯WMI,则不是很明显。