You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编程判断Windows功能是否已启用?(含代码疑问)

判断Windows可选功能是否启用的解决方案

你遗漏了Win32_OptionalFeature类中的InstallState属性,这个属性的数值对应功能的启用状态,常见取值如下:

  • 1:功能已启用
  • 2:功能已禁用
  • 3:功能已移除
  • 4:功能正在安装
  • 5:功能正在卸载

修改后的代码可以获取并判断状态:

ManagementClass objMC = new ManagementClass("Win32_OptionalFeature");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
    string featureName = (string)objMO.Properties["Caption"].Value;

    if (featureName.ToLower().Contains("websocket"))
    {
        // 获取安装状态
        uint installState = (uint)objMO.Properties["InstallState"].Value;
        string status = installState switch
        {
            1 => "已启用",
            2 => "已禁用",
            3 => "已移除",
            4 => "安装中",
            5 => "卸载中",
            _ => "未知状态"
        };
        
        Console.WriteLine($"Feature Name: {featureName} | 状态: {status}");
    }
}

注意:需要确保程序有足够权限访问WMI,否则可能触发权限不足的异常。

内容的提问来源于stack exchange,提问作者Kixoka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:30:55