The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

徹底釐清 Windows 10 與 Windows Server 的版本編號

這些年一直對 Windows 10 與 Windows Server 的版本編號困擾著,經常會聽到什麼 Windows 10 周年更新Windows 10 創作者更新 之類的名稱,完全摸不著頭緒,你也至少給個年份或數字之類的吧。從 Windows Server 2016 開始,又開始區分 LTSC 與 SAC 通道,又是一場眼花撩亂了版號大戰。今天我就用這篇文章來好好釐清背後的邏輯吧!

認識 Windows 10 版本

第一版的 Windows 10 從 2015 年七月推出,可以說是末日的 Windows 版本,今後所有的 Windows 通通都叫做 Windows 10 版。這樣的決定是好是壞很難說,對一般使用者來說可能不礙事,但對開發人員就會很困擾。因為不同版本之間造成的差異,就會有一定程度的相容性問題,就以 Windows Containers 來說,不同的 Windows 10 版本,其可以使用的 Base Image 就是不一樣的,所以我們必須非常清楚的區分不同 Windows 10 版本的細部差異!

正常人都會認為 Windows 10 的版本就是 10 不是嗎?錯!

就以我現在用的這台筆電為例,目前安裝的 Windows 10 版本為 10.0.17763.379,你可以從命令提示字元輸入 ver 命令查詢得知,預設進入命令提示字元也會直接在第一行看到版本號:

Microsoft Windows [版本 10.0.17763.379]
(c) 2018 Microsoft Corporation. 著作權所有,並保留一切權利。

C:\>ver

Microsoft Windows [版本 10.0.17763.379]

如果你執行 winver 命令的話,還會看到視窗版本的版本資訊,此時你又會多看到另一個版本資訊:

這裡所顯示的版本,將區分為:

  1. 版本: 1809
  2. OS 組建: 17763.379

寫到這裡,各位已經可以看到以下 4 種版本資訊:

  1. 10
  2. 10.0.17763.379
  3. 1809
  4. 17763.379

但這還不是最困擾的,因為 Microsoft 還對不同的 Windows 10 版本設定不同的「行銷名稱」,你可能多多少少會聽到以下版本名稱:

  • Windows 10 十一月更新
  • Windows 10 周年更新
  • Windows 10 創作者更新
  • Windows 10 秋季創作者更新
  • Windows 10 四月更新
  • Windows 10 十月更新

其相對應的英文名稱為:

  • Windows 10 November Update (version 1511)
  • Windows 10 Anniversary Update (version 1607)
  • Windows 10 Creators Update (version 1703)
  • Windows 10 Fall Creators Update (version 1709)
  • Windows 10 April 2018 Update (version 1803)
  • Windows 10 October 2018 Update (version 1809)
  • Windows 10 May 2019 Update (version 1903)

國外的網站,大多數網站都會在這些行銷名稱後面加上 version 版本號。但是在國內,許多媒體並沒有特別標示版本或年份,真的會讓人無從判斷這些版本的新舊。

重新認識 Windows 10 版本編號

身為一位開發人員,需要能夠區分的版本,主要就是 10.0.17763.379 這項。不過這個編號比較難記,記得另一個 1809 版號可能會簡單需多。

所謂的 1809 其實是 2018 年 09 月釋出的意思,但是又不一定是這樣,因為最近一版的 Windows 10 雖然版本為 1809,但行銷名稱卻是 October 2018 Update (十月更新),是不是非常 OOXX 啊!

接著,我們來拆解 10.0.17763.379 版本的細節,這 4 個數字分別代表的意義是:

  • 作業系統的主要版本 (Major Version Number)
  • 作業系統的次要版本 (Minor Version Number)
  • 作業系統的核心組建版本 (OS Build Version)
  • 作業系統的更新組建版本 (Update Build Revision) (UBR)

你也可以透過以下 PowerShell 取得相關版本資訊:

Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion" | Select ProductName,ReleaseId,InstallationType,CurrentMajorVersionNumber,CurrentMinorVersionNumber,CurrentBuild,UBR
ProductName               : Windows 10 Pro
ReleaseId                 : 1809
InstallationType          : Client
CurrentMajorVersionNumber : 10
CurrentMinorVersionNumber : 0
CurrentBuild              : 17763
UBR                       : 379

從上述命令的輸出可以看見,原來 1809 不能稱為 版本,叫做 ReleaseId (發行代號) 應該比較合理些,走我們軟體這行真的很可憐,我們的工作需要清晰明瞭的邏輯,但卻經常被這些似是而非的名詞荼毒。

主要版本次要版本就不用說了,因為這幾年的 Windows 10 這兩版都沒有動過,但核心組建版本更新組建版本就相對重要許多。

  • 核心組建版本

    • 基本上不同的核心組建版本對我們帶來最大的影響,就是 Windows Containers 基底映像 (Base Image) 的相容性。不同的作業系統核心組建版本,只能執行特定核心組建版本的基底映像,所以選錯版本就無法正確執行容器。
  • 更新組建版本

    • 更新組建版本不同,不影響 Windows Containers 執行,只差在安全性與功能修正而已,不牽涉核心調整。

以下我列出目前已知的所有 Windows 10 版本資訊:

  • Windows 10 (initial version released July 2015) (Build 10240) (version 1507)
  • Windows 10 version 1511 (Build 10586)
    • Windows 10 November Update (version 1511)
    • Windows 10 十一月更新
  • Windows 10 version 1607 and Windows Server 2016 (LTSC) (Build 14393)
    • Windows 10 Anniversary Update (version 1607)
    • Windows 10 周年更新
  • Windows 10 version 1703 (Build 15063)
    • Windows 10 Creators Update (version 1703)
    • Windows 10 創作者更新
  • Windows 10 version 1709 (Build 16299)
    • Windows 10 Fall Creators Update (version 1709)
    • Windows 10 秋季創作者更新
  • Windows 10 version 1803 (Build 17134)
    • Windows 10 April 2018 Update (version 1803)
    • Windows 10 四月更新
  • Windows 10 version 1809 and Windows Server 2019 (LTSC) (Build 17763)
    • Windows 10 October 2018 Update (version 1809)
    • Windows 10 十月更新
  • Windows 10 version 1903 (Build 18362) (Code name: 19H1)

認識 Windows Server 版本

從 Windows Server 2016 開始,伺服器作業系統將再區分兩種發行通道 (Channel),分別是 長期維護通道 (Long-Term Servicing Channel) (LTSC),與 半年通道 (Semi-Annual Channel) (SAC)。

簡單來說,所謂 發行通道 講的就是不同的 產品線,有著不同的技術支援週期功能差異。如果要類比之前所有的 Windows Server 版本,我們可以說:「以前的 Windows Server 只有 LTSC 版本,從 Windows Server 2016 開始才額外推出 SAC 版本」。

  • 長期維護通道 (LTSC)

    • 每 2 ~ 3 年推出一個 LTSC 版本
    • 享有 5 年主流技術支援與另外 5 年延伸技術支援
    • 系統更新只會包含安全性更新,不會包含新功能更新
    • LTSC 版本可以透過既有的微軟銷售通路取得授權
  • 半年通道 (SAC)

    • 每半年推出一個 SAC 版本
    • 僅享有 18 個月的技術支援
    • 系統更新會包含安全性更新與新功能更新
    • 通常下一代的 LTSC 版本會包含曾經在 SAC 推出的新功能
    • SAC 版本只有搭配軟體保證的大量授權客戶與透過 Azure Marketplace 才能取得

請注意:SAC 不是 LTSC 的加強版,也不是 LTSC 的升級版,所以不能直接從 LTSC 升級到 SAC 版本,他們兩個就是完全獨立且不同的伺服器作業系統產品。

我們到目前為止已經聽到過幾種「版本」了?不知道各位亂了沒?我之前是被困擾很久啦!XD

  • Windows 10
  • 1809
  • 17763
  • 379
  • LTSC
  • SAC

目前為止,從 Windows Server 2016 開始的 LTSC 通道推出了以下兩個版本:

  • Windows Server 2016 (LTSC) (Build 14393.0)
  • Windows Server 2019 (LTSC) (Build 17763.379)

我以 Windows Server 2019 (LTSC) 為例,在主機上執行以下 PowerShell 命令:

Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion" | Select ProductName,ReleaseId,InstallationType,CurrentMajorVersionNumber,CurrentMinorVersionNumber,CurrentBuild,UBR

你會得到以下資訊:

ProductName               : Windows Server 2019 Datacenter
ReleaseId                 : 1809
InstallationType          : Server
CurrentMajorVersionNumber : 10
CurrentMinorVersionNumber : 0
CurrentBuild              : 17763
UBR                       : 379

此時你會發現到,Windows Server 2019 (LTSC) 的版本資訊幾乎跟 Windows 10 (version 1809) 一模一樣,只有 ProductNameInstallationType 不同而已。沒錯,這兩個作業系統共用完全相同的核心組建版本!這同時也意味著 Windows Containers 也可以共用完全相同的基底映像(Base Image)。

上述資訊中的 InstallationType 則代表安裝的類型,因為 LTSC 版本支援 桌面體驗版本 (Desktop Experience) 與 伺服器核心 (Server Core) 版本。但 SAC 版本就僅支援 伺服器核心 (Server Core) 版本而已,完全沒有 GUI 介面,只能用命令提示字元與 PowerShell 管理伺服器。

目前為止,Windows Server 的 SAC 通道推出了以下 3 個版本:

  • Windows Server, version 1709 (SAC) (Build 16299.15)
  • Windows Server, version 1803 (SAC) (Build 17134.648)
  • Windows Server, version 1809 (SAC) (Build 17763.379)

從上述版本編號來看,你會發現 Microsoft 從 SAC 通道的版本中,完全從產品名稱中移除了 20162019 字樣,取而代之的就是 17091809 之類的 ReleaseId

我以 Windows Server, version 1809 (SAC) 為例,在主機上執行以下 PowerShell 命令:

Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion" | Select ProductName,ReleaseId,InstallationType,CurrentMajorVersionNumber,CurrentMinorVersionNumber,CurrentBuild,UBR

你會得到以下資訊:

ProductName               : Windows Server Datacenter
ReleaseId                 : 1809
InstallationType          : Server Core
CurrentMajorVersionNumber : 10
CurrentMinorVersionNumber : 0
CurrentBuild              : 17763
UBR                       : 379

你可以比較一下跟本文稍早列出的 Windows Server 2019 (LTSC) 版本資訊相比,你會發現從 Productname 中已經看不見 2019 字樣,而是只寫 Windows Server Datacenter 而已,但是其他版本資訊卻又完全一樣,這件事就困擾我一段時間,我曾經一度認為 Windows Server 2019 是不是就完全等於 Windows Server, version 1809 呢?後來我的理解是,沒錯,只要核心建置版本完全一樣,就可以視為完全相同的作業系統,只是「產品名稱」不同而已!

所以 Windows 10, version 1809 完全等於 Windows Server 2019,也完全等於 Windows Server, version 1809,只是產品名稱與內建的功能不同而已,這三套共用完全相同的作業系統核心 (10.0.17763.379)!

最後,我們可以從 Windows Server 執行以下命令,取得更細部的版本資訊:

Get-ComputerInfo | Select WindowsProductName, WindowsVersion, WindowsInstallationType, OsServerLevel, OsVersion, OsHardwareAbstractionLayer

Windows Server 2019 (LTSC) 得到的結果是:

WindowsProductName         : Windows Server 2019 Datacenter
WindowsVersion             : 1809
WindowsInstallationType    : Server
OsServerLevel              : FullServer
OsVersion                  : 10.0.17763
OsHardwareAbstractionLayer : 10.0.17763.194

Windows Server, version 1809 (SAC) 得到的結果是:

WindowsProductName         : Windows Server Datacenter
WindowsVersion             : 1809
WindowsInstallationType    : Server Core
OsServerLevel              : ServerCore
OsVersion                  : 10.0.17763
OsHardwareAbstractionLayer : 10.0.17763.194

這裡我們多看到一個新的 OsHardwareAbstractionLayer 版本編號 (10.0.17763.194),跟同一台的 Update Build Revision (UBR) (10.0.17763.379) 所列的不太一樣,但因為我這裡的 Windows Server 是跑在 Azure 的 VM 中,這台 VM 的 Host 主機也是一台 Windows Server,感覺這個版本應該是 Host 主機的作業系統版本才是,但我找不到佐證資訊證明這個推測。

相關連結

留言評論