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

如何通过C#桌面应用获取系统信息窗口中的Platform Role值?

嘿,这个需求其实挺容易实现的,我给你分享两种在C#桌面应用里获取系统信息窗口中Platform Role值的常用方案,你可以根据自己的项目情况选择:

方法1:使用System.Windows.Forms.SystemInformation(最简便)

这是.NET框架提供的现成API,直接就能拿到对应的值,不过需要你的项目引用System.Windows.Forms程序集。

代码示例:

using System;
using System.Windows.Forms;

class PlatformRoleGetter
{
    static void Main()
    {
        // 获取系统的Platform Role
        ComputerRole platformRole = SystemInformation.ComputerRole;
        
        // 输出结果,对应系统信息窗口里的显示值
        Console.WriteLine($"Platform Role: {platformRole}");
    }
}

说明:ComputerRole是一个枚举,包含三个核心成员,完全对应系统信息窗口里的Platform Role选项:

  • Workstation:普通工作站(绝大多数个人电脑属于这类)
  • DomainController:域控制器
  • Server:独立服务器(非域控的服务器)
方法2:使用WMI查询(无WinForms依赖)

如果你的项目没有引用WinForms,或者想更底层地获取系统信息,可以用WMI查询Win32_ComputerSystem类的Role属性,需要引用System.Management程序集。

代码示例:

using System;
using System.Management;

class PlatformRoleWmiGetter
{
    static void Main()
    {
        try
        {
            // 构造WMI查询语句,只获取Role属性
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT Role FROM Win32_ComputerSystem");
            
            foreach (ManagementObject systemObj in searcher.Get())
            {
                string platformRole = systemObj["Role"].ToString();
                Console.WriteLine($"Platform Role: {platformRole}");
            }
        }
        catch (ManagementException ex)
        {
            Console.WriteLine($"获取信息时出错: {ex.Message}");
        }
    }
}

说明:WMI返回的Role值和系统信息窗口的显示完全一致,除了上面三个常见值,还可能返回StandaloneWorkstation这类细分值,不过系统信息窗口会统一归类到对应的角色里。

注意事项

  • 两种方法都需要你在项目中添加对应的引用:方法1加System.Windows.Forms,方法2加System.Management(右键项目→添加引用→在程序集列表里找到对应项勾选即可)
  • 普通用户权限就能正常获取这些信息,不需要管理员权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:35:12