【发布时间】:2020-09-30 17:12:02
【问题描述】:
我想通过 C# 中的 WMI 更改 Microsoft Windows UWF 过滤器 (uwfmgr.exe) 的配置。
现在,由于其性质,某些更改只能对 WMI 类的特定实例进行。
例如:
var scope = new ManagementScope(@"root\standardcimv2\embedded");
using (var uwfClass = new ManagementClass(scope.Path.Path, "UWF_Servicing", null))
{
var instances = uwfClass.GetInstances();
foreach (var instance in instances)
{
Console.WriteLine(instance.ToString());
}
}
此代码打印:
\\COMPUTER\root\standardcimv2\embedded:UWF_Servicing.CurrentSession=true
\\COMPUTER\root\standardcimv2\embedded:UWF_Servicing.CurrentSession=false
只能对 CurrentSession = false 的实例进行更改。
如何以干净的方式获取此实例?
换句话说,我不想做:
instance.ToString().Contains("CurrentSession=false")
我相信有一种“更好”的方法可以做到这一点。提前致谢!
【问题讨论】:
-
你试过类似
foreach (ManagementObject mo in new ManagementObjectSearcher("SELECT * FROM UWF_Servicing WHERE CurrentSession = false").Get()) -
如果您还提供范围路径,@SimonMourier 确实有效。谢谢!