我尝试使用 System.Environment.OSVersion 获取 Windows 名称,但它给出的名称类似于 Microsoft Windows NT 6.2.9200.0 但我想要 Microsoft Windows 8 Enterprise 之类的名称。请建议如何使用我得到的“环境”回答
user266752
问问题
1213 次
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 回答