如何获得Windows版本?

时间:2015-06-08 07:40:22

标签: windows powershell

我需要在PowerShell中创建一个脚本来验证操作系统版本(Pro,Enterprise,Home等)。我发现了许多关于如何使用ID号验证操作系统版本(Vista,7,8,8.1等)的信息,但我找不到有关版本代码的任何信息。我的问题是:

  1. 是否有Windows版本的代码?
  2. 如果没有代码,唯一的方法是JPanel,如何格式化以在任何Windows操作系统上选择版本?
  3. 还有其他方法吗?
  4. https://msdn.microsoft.com/en-us/library/windows/desktop/ms724833(v=vs.85).aspx

2 个答案:

答案 0 :(得分:7)

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

Value  Meaning
-----  -------
    0  Undefined
    1  Ultimate Edition
    2  Home Basic Edition
    3  Home Premium Edition
    4  Enterprise Edition
    5  Home Basic N Edition
    6  Business Edition
    7  Standard Server Edition
    8  Datacenter Server Edition
    9  Small Business Server Edition
   10  Enterprise Server Edition
   11  Starter Edition
   12  Datacenter Server Core Edition
   13  Standard Server Core Edition
   14  Enterprise Server Core Edition
   15  Enterprise Server Edition for Itanium-Based Systems
   16  Business N Edition
   17  Web Server Edition
   18  Cluster Server Edition
   19  Home Server Edition
   20  Storage Express Server Edition
   21  Storage Standard Server Edition
   22  Storage Workgroup Server Edition
   23  Storage Enterprise Server Edition
   24  Server For Small Business Edition
   25  Small Business Server Premium Edition
   29  Web Server, Server Core
   39  Datacenter Edition without Hyper-V, Server Core
   40  Standard Edition without Hyper-V, Server Core
   41  Enterprise Edition without Hyper-V, Server Core
   42  Hyper-V Server

将上面的列表放在hashtable中,以便将整数值映射到描述:

$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]

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

答案 1 :(得分:1)

您还可以使用“ Get-WindowsEdition -online”。

参考:https://docs.microsoft.com/en-us/powershell/module/dism/get-windowsedition