我的研究表明,我可以在DISM上使用以下命令找出Windows功能的状态(已启用/已启用):
dism /online /get-features | more
使用此命令我得到一个列表(对不起德语):
我可以使用类Process()
通过C#执行dism-command。我的下一个任务是将此列表解析为KeyValuePairs列表,并比较我所需功能的状态。但这似乎很不方便且容易出错。
是否有任何稳定的方法可以检查特定的Windows功能是否已激活?
(我使用的是.NET Framework 4.5)
我想激活以下功能: - Windows Server 2008 - Windows Server 2008 R2 - Windows 7的 - Windows 8 - Windows 8.1 - Windows Server 2012
答案 0 :(得分:0)
这是我使用过的一个类,我从某个地方得到了一个例子(最有可能是这样):
ManagementClass objMC = new ManagementClass("Win32_ServerFeature");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
string featureName = (string)objMO.Properties["Name"].Value;
//add to my list
InstalledFeatures.Add(featureName);
if (BadRoles.Contains(featureName))
DetectedBadRoles.Add(featureName);
}