這些年一直對 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
命令的話,還會看到視窗版本的版本資訊,此時你又會多看到另一個版本資訊:
這裡所顯示的版本,將區分為:
- 版本:
1809
- OS 組建:
17763.379
寫到這裡,各位已經可以看到以下 4 種版本資訊:
10
10.0.17763.379
1809
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
) 一模一樣,只有 ProductName
與 InstallationType
不同而已。沒錯,這兩個作業系統共用完全相同的核心組建版本!這同時也意味著 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
通道的版本中,完全從產品名稱中移除了 2016
或 2019
字樣,取而代之的就是 1709
或 1809
之類的 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 主機的作業系統版本才是,但我找不到佐證資訊證明這個推測。
相關連結