Winform读取操作系统提要

Winform读取操作系统摘要
我想读取部分Windows操作系统摘要信息,在网上找的些代码感觉不是很快,但是这个系统信息文件打开却很快,想问下有没有相关代码或类可参考?
Winform读取操作系统提要
------解决思路----------------------
系统版本都在Environment.OSVersion里面
详细的在WMI查询


/// <summary>
        /// 通过WMI查询系统相关类的信息
        /// </summary>
        /// <param name="win32ClassName">组件类名</param>
        /// <param name="propertyNames">要查询的属性列表,为null时将列出所有</param>
        /// <param name="predicate">属性值的筛选条件(空值已排除)</param>
        /// <param name="tips">提示信息</param>
        static void QuerySystemInfoByWmi(string win32ClassName, List<string> propertyNames, Predicate<string> predicate, string tips)
        {
            WriteLine();
            WriteLine("===================={0}====================", win32ClassName);
            if (!string.IsNullOrEmpty(tips)) WriteLine(tips);
            ManagementClass mc = null;
            DateTime start = DateTime.Now;
            try
            {
                mc = new ManagementClass(win32ClassName);
                using (ManagementObjectCollection moc = mc.GetInstances())
                {
                    int i = 0, instanceCount = moc.Count;
                    if (instanceCount > 1)
                        WriteLine("该对象共有 {0} 个实例,方括号中是其编号!", instanceCount);
                    foreach (ManagementObject mo in moc)
                    {
                        i++;
                        IEnumerable<PropertyData> properties = mo.Properties.Cast<PropertyData>();
                        //通过属性名筛选
                        if (propertyNames != null && propertyNames.Count > 0)
                            properties = properties.Where(
                                pd => propertyNames.Exists(
                                    pn => pn.Equals(pd.Name, StringComparison.OrdinalIgnoreCase)
                        ));
                        //通过属性值筛选
                        if (predicate != null)
                            properties = properties.Where(pd => pd.Value != null && predicate(pd.Value.ToString()));
                        properties = properties.ToList();
                        //输出属性字典                                            
                        if (properties.Count() > 0)
                        {
                            string prefix = instanceCount > 1 ? string.Format("{0}[{1}].", win32ClassName, i) : string.Empty;
                            foreach (PropertyData pd in properties)
                                WriteLine("{0}{1}: {2}", prefix, pd.Name, pd.Value);
                            WriteLine("查询耗时:{0} 毫秒", (DateTime.Now - start).TotalMilliseconds);
                        }
                    }
                }
            }
            catch (Exception exp)
            {
                WriteLine("查询{0}出错!\r\n异常:{1}\r\n堆栈:{2}", win32ClassName, exp.Message, exp.StackTrace);
            }
            finally
            {
                if (mc != null) mc.Dispose();
            }
        }

查询所有属性
QuerySystemInfoByWmi("Win32_ComputerSystem", null, null, null);

查询指定属性
var propertyNames = new List<string> { "Caption", "Name", "CSDVersion", "Version" };
QuerySystemInfoByWmi("Win32_OperatingSystem", propertyNames, null, null);