Windows 10のビルド/バージョンを見つける方法


19

Windows 10のベータ版では、デスクトップに投稿しない限り、実行しているバージョンを把握することは困難でした。一度それがなかったら-実行しているバージョン/ビルドをどのように見分けますか?

これは、Microsoftが新しい更新メカニズムを使用してより多くのビルドをリリースし始めるにつれて、より大きな問題になります。


更新によってビルド番号が変わるとは思わない。
joeqwerty

回答:


19

GUI:設定、システム、概要

これが「適切な」方法であるかどうかはわかりませんが、このコマンドを使用して、Win10の音声化/話された「バージョン」(1511、1607など)を取得できます。

Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId

これは、ビルド番号をWin10の「バージョン」に関連付けるMicrosoftのページです念のためバックアップリンク[wiki])。リモートPCからビルド番号を取得するのに役立ちました:wmic /node:HOSTNAME os get BuildNumber


6
ありがとう-それは私を大いに助けた。念のために-あなたのコマンドのPowerShellのバージョンは次のようになります(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId
アントンKrouglov

これは、Windows 10 Enterprise LTSBでは機能しません。私のためのPowerShellから直接仕事をバージョンを読み取り専用のソリューション
phuclv

私は自分でLTSBを実行していますが、私にとってはうまくいきますか?
グレッグ

私の最新のWindows 10 Proでも動作しません。10.0.17730.1000(つまり、ビルド17730)でReleaseId REG_SZ 1803これこれが機能する
-phuclv

@AntonKrouglovはリリースIDであり、現在のビルドではありません。あなたは使用する必要がある(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name CurrentBuildNumber).CurrentBuildNumberか、(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name CurrentBuild).CurrentBuildビルド番号のために
phuclv

9

Windows 10のバージョンまたはビルド番号を確認することは、時間が経っても変わらないため、あまり役に立ちません。

最初の文が間違っていることがわかりました。これは以前のすべてのバージョンのWindowsに当てはまりましたが、現在は新しいWindows 10の世界にいます。最新のインサイダービルドのビルド番号は10525、「RTM」と比較されます10240

コマンドラインでビルド番号を取得するには、いくつかの方法があります。

systeminfo.exe
(Get-CimInstance -ClassName Win32_OperatingSystem -Namespace root/cimv2).BuildNumber
(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name CurrentBuild).CurrentBuild

3つのうちの最後が最速です。

GUIを使用する場合は、winver.exeまたはほとんどのWindowsデスクトップアプリケーションのメニューのAboutエントリを使用できHelpます。

サービスパックがなくなると、OSのパッチレベルはインストールされたアップデートに依存します。これらを見つけるには、GUI、systeminfo.exe、wmiなどいくつかの方法があります。

このようなことを行うための推奨される最も強力な方法は、PowerShellを使用することです。

Get-HotFix

のようなものを示しています:

Source        Description      HotFixID      InstalledBy          InstalledOn
------        -----------      --------      -----------          -----------
WIN10         Security Update  KB3074663     NT AUTHORITY\SYSTEM  7/17/2015 12:00:00 AM
WIN10         Security Update  KB3074667     NT AUTHORITY\SYSTEM  7/21/2015 12:00:00 AM
WIN10         Security Update  KB3074674     NT AUTHORITY\SYSTEM  7/24/2015 12:00:00 AM
WIN10         Update           KB3074678     NT AUTHORITY\SYSTEM  7/31/2015 12:00:00 AM

過去10日間の更新をフィルタリングできます。

Get-Hotfix | Where {$_.InstalledOn -gt $(Get-Date).AddDays(-10) -and $_.Description -eq "Update"}

または、最後にインストールされた3つの更新を表示します。

Get-Hotfix | Sort-object InstalledOn -Descending | Select -First 3

特定の更新プログラムがインストールされているかどうかを確認できます。

if ((get-hotfix -id kb3087916) -ne $null) {"patched..."}

最初に、次のような最新のパッチKB番号をオンラインで見つけることができます。

(New-Object Net.WebClient).DownloadString('https://microsoft.com/...')

そして、マシン上に存在するかどうかを確認します。

注:これは単なる例です。現在これらをリストしているページは知りませんが、それでも解析する必要があります。

問題は、時間の経過とともに、MicrosoftがWindows 10の機能を大幅に変更して、アプリやスクリプトを機能させるためにWindows 10の機能を確認する必要があることです。

バージョン番号を探すのではなく、必要な特定の機能がシステムに存在するかどうかを確認する方が良いでしょう。


「これは以前のすべてのバージョンのWindowsで真実でした」実際、少なくともWindows 95以降では真実ではありません。Windows 95とWindows 95 OSR2には異なるビルド番号がありました。Windows 98およびWindows 98seと同様。Windows XP、Windows XP SP1、Windows XP SP2などがそうでした。
クリフアームストロング

8

WMIには現在、Windows 10バージョン(1607など)または完全なビルド番号(10.0.14393.577など)を完全に識別するために使用できるプロパティがありません。他のコメントで述べたように、この情報レジストリのこのキーの下に表示されます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

そのキーの次の値は、winver.exeプログラムによって表示される情報に対応しています。

ReleaseID = Version (name based on year/month of release: 1507, 1511, 1607, 1703, etc.)
CurrentBuild or CurrentBuildNumber = OS Build (part before period)
UBR = OS Build (part after period)

さらに、バージョン番号は、そのレジストリキーの次の2つの値に含まれています。

CurrentMajorVersionNumber = 10
CurrentMinorVersionNumber = 0

バージョン(1607など)が変更されるか、Insiderビルドがインストールされると、ビルドが変更されます。ただし、Microsoftのリリースリストに示されているように、UBR(Update Build Revision)は特定の更新で変更されます。

PowerShellでは、

[System.Environment]::OSVersion.Version

Major、Minor、Buildをレジストリキーと同じように返しますが、Revisionを常に0として報告するようです。Redditユーザーからの少しのコードは、Revision番号としてレジストリからのUBRを含む適切な置換を提供します。

$WinVer = New-Object -TypeName PSObject
$WinVer | Add-Member -MemberType NoteProperty -Name Major -Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' CurrentMajorVersionNumber).CurrentMajorVersionNumber
$WinVer | Add-Member -MemberType NoteProperty -Name Minor -Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' CurrentMinorVersionNumber).CurrentMinorVersionNumber
$WinVer | Add-Member -MemberType NoteProperty -Name Build -Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' CurrentBuild).CurrentBuild
$WinVer | Add-Member -MemberType NoteProperty -Name Revision -Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' UBR).UBR
$WinVer

@Ramhoundつまり彼の答えは全部?
oldmud0 16

@ oldmud0はもちろんそうではありません。そこに許容できるものがあります
ラムハウンド

@RamHoundフィードバックをありがとう。私はいくつかの生ゴミを切った。それでも冗長すぎる場合は、お知らせください。
セムサージェント

これは正解です。これには、ReleaseID(1607など)、ビルド(14393など)、およびUBR(毎月のリリースごとに変わる数)が含まれます。ReleaseIDとビルドは、2つの間に1対1のマッピングがあるため冗長です。これらの数字の両方が存在する理由についてマイクロソフトから何かを読みたいです。
-aggieNick02

5

私はこれを数回尋ねられたので、私はそれを投稿すると思いました。3つの方法があります。

  1. winver.exeを実行する
  2. ver.exeを実行する
  3. レジストリを確認する

詳細については、こちらをご覧くださいhttp : //mythoughtsonit.com/2015/07/what-build-version-of-windows-10-am-i-running/


2
残念ながら、Microsoftは累積的な更新バージョンを決定するメカニズムを提供していません。彼らはもはやオペレーティングシステムのサービスパックを実際に提供しないので、それは有用な情報になるでしょう。別の方法は、WMICコマンドを使用して特定のロールアップバージョンを照会することです。たとえばWMIC QFE GET HotfixID, InstalledOn, Description | FINDSTR /I "KB3081438"、2015年8月15日のCUがインストールされているかどうかを判断します。空白のInstalledOn日付は、システムがインストールを完了するために再起動していないことを示します。
グレッグアスキュー

1
ビルド番号10240は、更新しても変わりません。カーネルが更新を取得すると、最後の番号16xxxが変わります。
magicandre1981

2
私の本では、これが唯一の正解です。それが実際に「累積更新バージョン」を表示しないという主張にもかかわらず、現在のビルドが実際に何であるかを知る必要があると認められています。
ラムハウンド

コマンドラインでwinverを実行すると、魔法のように機能します。ありがとう!
アンドレアス

これはWindows 10 LTSBでは機能しません
phuclv

2

それはで表示される以前に掲載方法の作業のいずれも、それらのどれもがOSのビルドを与えない設定についてセクション。累積的な更新情報がありません。

このようなことができます

$OSmBuild = (Get-WmiObject Win32_OperatingSystem).Version

if($OSmBuild -eq '10.0.10586')
{
    # Windows 10.0.10586.0
    $164 = Get-HotFix | where { $_.HotFixID -eq 'KB3140768' }
    $122 = Get-HotFix | where { $_.HotFixID -eq 'KB3140743' }
    $104 = Get-Hotfix | where { $_.HotfixID -eq 'KB3135173' }

    if($104 -and (!($122)) -and (!($164)))
    {
        Write-Host '104 installed'
    }
    elseif($104 -and $122 -and (!($164)))
    {
        Write-Host '122 installed'
    }
    elseif($104 -and $122 -and $164)
    {
        Write-Host '164 installed'
    }
}

PowerShellスクリプトで使用しますが、常に1ライナーであったものを使用するため、監視が難しくなります。ここで更新を見ることができます:

Windows 10の更新履歴

マイクロソフトがパッチを更新してBuildNumberの変更を開始することを願っています。


「Microsoftがパッチを更新してBuildNumberの変更を開始することを願っています。2015年7月29日以降に発生しました...
Ramhound

@Ramhoundそれは2015年7月29日から起こったのですか?私はWin32_OperatingSystem.Versionを呼び出すたびに設定におけるOSのビルドは、>システム>が約10.0.10586.164あるとき私が10.0.10586.0取得するOSのビルド番号を取得いけない
d4rkcell

ビルドは、しきい値2まで変更されませんでした。しきい値2以降、ビルド番号は累積パッチとともに変更されました。私はWin32_OperatingSystem.Versionあなたが説明した方法で動くべきだとは言いませんでしたが、ビルドごとに変化しwinverています(言い換えれば、スクリプトに問題があると言います)。
ラムハウンド

いいえ、UIにはありますが、WMIでは特にWin32_OperatingSystemを照会する場合、ここのバージョン番号は10.0.10586のままで、BuildNumberは10586のままです。[設定]> [システムのOSビルドについて]にOSBuild 10586.164があるセクションですが、WMIではそうではありません。入力した内容を読んでみませんか?
d4rkcell

1

msinfo32.exeはまだありますか(8.1の時点で)?シリアル番号やモデル番号など、ラップトップで大いに役立つ多くの便利な情報を提供します。


(ある場合は、最上部の[OS名]の下のシステム概要領域にあります。)
radiks32

ただし、コマンドラインソリューションではなくGUIを起動するだけです
-phuclv

1

レジストリからバージョンを取得できます。これを行うPowerShellスニピットを次に示します。

function Get-RegistryValue($key, $value) {
(Get-ItemProperty $key $value).$value
}
$a1 = Get-RegistryValue "HKLM:\software\microsoft\windows nt\currentversion" CurrentBuild
$a2 = Get-RegistryValue "HKLM:\software\microsoft\windows nt\currentversion" UBR
Write-Host Version $a1'.'$a2

1

PowerShellは常に答えです。

Get-CimInstance win32_operatingsystem

詳しくは:

Get-CimInstance Win32_OperatingSystem | Select-Object buildnumber,version

戻り値:

ビルド番号バージョン
----------- -------
10240 10.0.10240

これを使用してその情報を非常に迅速に取得できます。さらに、必要に応じて機能に組み込み、フリート全体からその情報を取得するために使用できます。


2
この答えはもう少し説明を使用できます。
カスペルド

0

ADドメインでは、PowerShellのGet-ADComputerコマンドレットを使用できます

Get-ADComputer -Filter {OperatingSystem -eq "Windows 10 Pro"} -Property * | Format-Table Name,OperatingSystem,OperatingSystemVersion -Wrap -Auto


0

単一のリモートコンピューターのWindows 10バージョンとそのリビジョンを表示する方法を見つけようとして、PowerShellのバージョンリビジョンがWindowsリビジョンに続いていることに気付きました。

次のスクリプトを作成することになりました。更新を完了するためにリモートコンピューターを再起動する必要があるかどうかを確認するテストを追加しました。

$OSChecked = (Read-Host "Computer Name?")
if (Test-Connection -ComputerName $OSChecked -Count 1 -ErrorAction SilentlyContinue)
{
    if ($((Get-Service WinRM -ComputerName $OSChecked).Status) -eq "stopped")
    {
        (Get-Service WinRM -ComputerName $OSChecked).Start()
    }
    Write-Host "`n$((Get-WmiObject win32_computersystem -ComputerName $OSChecked).Name) " -NoNewline ; Invoke-Command -ComputerName $OSChecked -ScriptBlock{if (Get-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -ErrorAction SilentlyContinue) {Write-Host "Restart Required!" -BackgroundColor DarkYellow -ForegroundColor White}}
    Invoke-Command -ComputerName $OSChecked -ScriptBlock{Write-Host "Version $((Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ProductName) $((Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId), revision $(($PSVersionTable).PSVersion.Revision)"}
}

これにより、このタイプの結果が得られます。

Computer_Name Version Windows 10 Enterprise 1703, revision 296

ADドメインは、OUの全コンピュータが含まれている変数で、あなたの単一<コンピュータ名>を置き換えることができます。


なぜそんなに複雑なスクリプトを書くのですか?ドメインに参加していないローカルPCでは動作しません。また、ユーザーにコンピューター名を入力するよう求めることは、フレンドリーではありません。ここでの唯一の重要なコマンドはのようですがWrite-Host "Version $((Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ProductName) $((Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId), revision $(($PSVersionTable).PSVersion.Revision)"Windows 10 Pro 1803, revision 100010.0.17730.1000で間違っています。ビルドバージョンは17730
phuclv

どうやら2つのスーパーユーザーアカウントがあります:Frantz KopanickiFrantz Kopanicki。これは、コメント、自分の投稿の編集、および回答の受け入れに干渉します。時間をかけてこのヘルプセンターのチュートリアルを利用し、スーパーユーザーのスタッフにアカウントの統合を依頼してください。
robinCTS

-1

コンプライアンスのためにどの累積パッチがインストールされているかを確認する必要があります。get-hotfixの使用は機能しますが、それ以降の累積パッチがインストールされると問題が発生します。最善の解決策は、修正プログラム部分を含むビルド番号を比較することです。コマンドラインでそれを取得する唯一の方法は、PowerShellで直接動作しないコマンドプロンプトverコマンドを使用することです。

$verstring = cmd.exe /c ver
[version]$Winbuild = [regex]::Match($verstring,"(\d+\.\d+\.\d+\.\d+)").value
if ($verstring -ge [version]"10.0.16299.755") {write-host "Compliant"}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.