如何获得Windows版本?

我需要在PowerShell中创build一个validation操作系统版本(Pro,Enterprise,Home等)的脚本。 我已经find许多关于如何使用操作系统版本(Vista,7,8,8.1等等)的ID号码进行validation的信息,但是我找不到有关版本代码的任何信息。 我的问题是:

  1. 是否有Windows版本的代码?
  2. 如果没有代码,唯一的方法就是Get-WmiObject -Class Win32_OperatingSystem | % Caption Get-WmiObject -Class Win32_OperatingSystem | % Caption ,如何格式化这个在任何Windows操作系统上select版本?
  3. 还有其他方法可以做到吗?

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724833(v=vs.85).aspx

Solutions Collecting From Web of "如何获得Windows版本?"

该信息编码在Win32_OperatingSystem类的OperatingSystemSKU属性中:

 价值意义
 ----- -------
     0未定义
     1终极版
     2家庭基本版
     3家庭高级版
     4企业版
     5家庭基本版N版
     6商业版
     7标准服务器版
     8数据中心服务器版
     9小型企业服务器版
    10企业服务器版
    11入门版
    12数据中心服务器核心版
    13标准服务器核心版
    14企业服务器核心版
    15基于Itanium的系统的企业服务器版
    16商业N版本
    17 Web服务器版
    18群集服务器版
    19家庭服务器版
    20 Storage Express server Edition
    21存储标准服务器版
    22存储工作组服务器版
    23存储企业服务器版
    24小型企业版服务器
    25小型企业服务器高级版
    29 Web服务器,服务器核心
    39数据中心版没有Hyper-V,服务器核心
    40标准版没有Hyper-V,服务器核心
    41企业版没有Hyper-V,服务器核心
    42个Hyper-V服务器 

将上面的列表放在散列表中,用于将整数值映射到描述:

 $editions = @{ 0 = 'Undefined' 1 = 'Ultimate Edition' 2 = 'Home Basic Edition' ... 41 = 'Enterprise Edition without Hyper-V, server Core' 42 = 'Hyper-V server' } $sku = (Get-WmiObject Win32_OperatingSystem).OperatingSystemSKU 'Edition is {0}.' -f $editions[$sku] 

但请注意, OperatingSystemSKU在server 2003及更早版本上不可用。 在这些系统上,您必须检查Caption和/或OSProductSuite属性。