2016/10/14

Windows Server 2016 の詳細なビルド番号をコマンドラインから確認したい

Windows Server 2016 は Windows 10 と同じように、累積的な更新プログラムでビルド番号が少しづつ上がっていきます。Windows Server 2016 のインストールメディアからインストールした直後は 10.0.14393.0 ですが、リリース直後の更新で 10.0.14393.321 になっています。

Windows Server 2016 の場合、フルインストール (デスクトップ エクスペリエンス) だと winver.exe コマンドや[設定]の[システム > バージョン情報]から確認できますが、Server Coreインストールや Nano Server では使えません。systeminfo.exe コマンドや WMIC OS コマンドは 10.0.14393 (ビルド 144393) までしか教えてくれません。

何か、簡単に確認できる方法がないものかとあれこれ考えまして、たどり着いたのがシステム ファイルのバージョン情報から取得する方法。PowerShell で次のコマンドラインを実行してみてください。インストール オプションに関係なく、共通で使える手です。

PS C:\> ((Get-ItemProperty C:\Windows\System32\ntoskrnl.exe).VersionInfo).ProductVersion

追記:こっちが正統派
PS C:\> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name "CurrentBuild","UBR"


こちらは Server Core インストール...



こちらは、Nano Server (英語版) ...

Nano Server 日本語版は Windows Update がエラーで失敗するので(私の環境では)、10.0.14393.0 だと思います。

追記)
Sysinternals の Procmon で調べてみたところ、winver.exe はレジストリ キー HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion にある ReleaseID(1607)、CurrentBuild(14393)UBR(0x141(321)) の値を見ていました。

PS C:\> Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name "CurrentBuild","UBR"

さらに追記)
Windows コンテナーの OS 環境のバージョンを知りたくて、いろいろ考えていたのですが、


docker inspect microsoft/windowsservercore -f="{{.OsVersion}}" 

docker inspect microsoft/nanoserver -f="{{.OsVersion}}" 

これで解決しました。


さらに、さらに追記)
Windows PowerShell 5.1 ? からは Get-ComputerInfo でも分かる。

PS C:\> Get-WindowsInfo WindowsBuildLabEx


2 件のコメント:

山市 良 さんのコメント...

レジストリ値を見るという方法を紹介されました。

http://www.vwnet.jp/Windows/w10/Check/BuildNo.htm

REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildLabEx

とかでも。

ot22 さんのコメント...

直接関連はないのですがServer 2016なので, コメントさせてください.
WIMが4GiB超えていますが
dism /export-image .... /compress:recovery
でesdファイルを作ってしまえば, esdファイルは4GiB未満になってfat32でも納まります.

また,
dism /image: .... /Set-LayeredDriver:6
で106キーボードに対応したものになります.

余計なおせっかいでした.