【发布时间】:2015-11-30 12:50:40
【问题描述】:
我正在将安装程序从 VBS 转换为 C# 程序。 在此安装中,我必须使用 DISM 激活一些 Windows 功能。
"cmd.exe", "/C Dism /Online /Enable-Feature /FeatureName:WAS-ProcessModel"
我以这种方式激活了它们。当我用
手动检查它们时dism /online /get-featureinfo /featurename:WAS-ProcessModel
在命令提示符下,我会得到功能的信息,包括状态。 (状态:激活)
但是当我尝试通过我的程序获取它时,状态返回只是空的。
这里是我程序的相关部分:
ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\cimv2");
//create object query
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OptionalFeature Where Name=\"WAS-ProcessModel\"");
//create object searcher
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
//get a collection of WMI objects
ManagementObjectCollection queryCollection = searcher.Get();
//enumerate the collection.
foreach (ManagementObject m in queryCollection)
{
// access properties of the WMI object
Console.WriteLine("Caption : {0}" + Environment.NewLine + "Status : {1}", m["Caption"], m["Status"]);
}
返回的是:
Caption : Prozessmodell
Status :
如何获取功能的状态? 我做错了什么吗?我是这个 DISM/WMI 的新手,所以也许这只是我做错了一些基本的事情。
【问题讨论】:
标签: c# windows windows-services wmi wmi-query