0

我尝试使用 System.Environment.OSVersion 获取 Windows 名称,但它给出的名称类似于 Microsoft Windows NT 6.2.9200.0 但我想要 Microsoft Windows 8 Enterprise 之类的名称。请建议如何使用我得到的“环境”回答

4

3 回答 3

1

根据链接的 SO 问题,您可以Get-WmiObject在 PowerShell 中使用Win32_OperatingSystem该类。

前任:

PS C:\Users\Louis> (Get-WmiObject Win32_OperatingSystem).Caption
Microsoft Windows 8.1 Pro with Media Center

您还可以在 C# 中使用 WMI:

using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class MyWMIQuery
    {
        public static void Main()
        {
            try
            {
                ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher("root\\CIMV2", 
                    "SELECT * FROM Win32_OperatingSystem"); 

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("Win32_OperatingSystem instance");
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("Caption: {0}", queryObj["Caption"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }
        }
    }
}
于 2013-10-30T05:17:15.727 回答
1

作为 ac# 人,我咬紧牙关,参考 Microsoft.VisualBasic dll 并...

string os = new Microsoft.VisualBasic.Devices.ComputerInfo().OSFullName.ToString();

我们的日志应用程序中的几个示例(带有 System.Environment.OSVersion 返回的内容)

Microsoft Windows 8.1 Pro(与 Microsoft Windows NT 6.2.9200.0 相比)

Microsoft Windows 7 企业版
(与 Microsoft Windows NT 6.1.7600.0 相比)

Microsoft Windows 7 Professional(与 Microsoft Windows NT 6.1.7601 Service Pack 1 相比)

Microsoft Windows XP Professional(与 Microsoft Windows NT 5.1.2600 Service Pack 3 相比)

于 2014-01-23T14:40:35.003 回答
0

没有内置的方式。您必须使用GetProductInfo查看您使用的 SKU 并手动编写字符串。

于 2013-10-30T04:54:41.897 回答