Windowsにインストールされている.NET Frameworkのバージョンを確認する方法
Windowsでは、複数のバージョンの.NET Frameworkを同時にインストールして実行できます。.NETライブラリを利用した新しいアプリケーションを開発・展開する際には、ユーザーのPCやサーバーに事前にどのバージョンの.NET Frameworkがインストールされているかを把握しておく必要がある場合があります。この記事では、コンピューターにインストールされている.NET Frameworkのバージョン一覧を取得するさまざまな方法を紹介します。
レジストリから.NET Frameworkのバージョンを確認する
.NET Frameworkのいずれかのバージョンをインストールまたは更新すると、その変更内容はWindowsレジストリに書き込まれます。
レジストリエディター(regedit.exe)を起動し、次のレジストリキーに移動します:HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP。このキーには、コンピューター上のすべての.NETバージョンの情報が格納されています。各サブキーを展開し、以下のパラメータを確認してください(.NET 4.xの場合はFullサブキーを展開します)。
- Install — インストールフラグ(値が1であれば、該当するバージョンの.NETがインストール済み)
- Install Path — その.NETバージョンがインストールされているディレクトリ
- Release — .NETのリリース番号
- Version — .NET Frameworkの完全なバージョン番号

ヒント: .NET 4.0以降において、Fullサブキーが存在しない場合は、そのバージョンのFrameworkがコンピューターにインストールされていないことを意味します。
この例では、.NET Framework v2.0.50727、3.0、3.5、および4.7(リリース番号460805)がインストールされていることがわかります。
なお、Windows Server 2012以降のサーバーOSでは、主要な.NETバージョン(3.5および4.5)はWindowsの機能としてインストールされ、マイナーバージョン(4.5.1、4.5.2など)はWindows UpdateやWSUS経由で個別の更新プログラムとして適用される点に注意してください。
以下の対応表を使用すると、.NET 4.5以降のリリース番号から.NET Frameworkのバージョンを特定できます。
| リリース番号 | .NET Frameworkのバージョン |
|---|---|
| 378389 | .NET Framework 4.5 |
| 378675 | .NET Framework 4.5.1(Windows 8.1 / Windows Server 2012 R2) |
| 378758 | .NET Framework 4.5.1(Windows 8 / Windows 7 SP1 / Windows Vista SP2) |
| 379893 | .NET Framework 4.5.2 |
| 393295 | .NET Framework 4.6(Windows 10) |
| 393297 | .NET Framework 4.6 |
| 394254 | .NET Framework 4.6.1(Windows 10 1511) |
| 394271 | .NET Framework 4.6.1 |
| 394802 | .NET Framework 4.6.2(Windows 10 1607) |
| 394806 | .NET Framework 4.6.2 |
| 460798 | .NET Framework 4.7(Windows 10 1703) |
| 460805 | .NET Framework 4.7 |
| 461308 | .NET Framework 4.7.1(Windows 10 1709) |
| 461310 | .NET Framework 4.7.1 |
| 461808 | .NET Framework 4.7.2(Windows 10 1803) |
| 461814 | .NET Framework 4.7.2 |
| 528372 | .NET Framework 4.8(Windows 10 2004 / 20H2 / 21H1) |
| 528040 | .NET Framework 4.8(Windows 10 1903 / 1909) |
| 528449 | .NET Framework 4.8(Windows Server 2022 / Windows 11) |
| 528049 | .NET Framework 4.8(その他のWindowsバージョン) |
.NET Framework 4.8は、現時点で提供されている最新の.NET Frameworkバージョンです。
PowerShellで.NET Frameworkのバージョンを確認する方法
PowerShellを使用すると、コンピューターにインストールされている.NET Frameworkのバージョンやリリース情報を取得できます。最も簡単なのは、Get-ChildItemコマンドレットとGet-ItemPropertyコマンドレットを使って、レジストリから直接情報を読み取る方法です。
コンピューター上のすべての.NET Frameworkバージョンの一覧を表示するには、次のコマンドを実行します。
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name version -EA 0 | Where { $_.PSChildName -Match '^(?!S)\p{L}'} | Select PSChildName, version

この例では、.NET 2.0、3.0、3.5、4.7がインストールされています。
なお、.NET 4.0以降では、新しいFrameworkバージョンは古いバージョンを上書き(置き換え)します。つまり、.NET Framework 4.7がインストールされたコンピューターに.NET Framework 4.8をインストールすると、旧バージョンは置き換えられます。
.NET 4.xのリリース番号のみを表示することもできます。
(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release).Release

先ほどの対応表によると、この数値「528449」はWindows 11上の.NET Framework 4.8に相当します。
リモートコンピューターの.NETバージョン一覧を取得する
PowerShellを活用すれば、ネットワーク上の複数のコンピューターにインストールされている.NET Frameworkのバージョン一覧をリモートで取得できます。
以下は、テキストファイルからコンピューター名の一覧を読み込み、各マシンの.NET Frameworkのインストール状況をリモートで確認するPowerShellスクリプトの例です。リモートコンピューターでのコマンド実行には、WinRMのInvoke-Commandコマンドレットを使用します。
Function GetNetFrameworkVersion {
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |
Get-ItemProperty -name Version,Release -EA 0 |
Where { $_.PSChildName -match '^(?![SW])\p{L}'} |
Select PSChildName, Version, Release, @{
name="Product"
expression={
switch -regex ($_.Release) {
"378389" { [Version]"4.5" }
"378675|378758" { [Version]"4.5.1" }
"379893" { [Version]"4.5.2" }
"393295|393297" { [Version]"4.6" }
"394254|394271" { [Version]"4.6.1" }
"394802|394806" { [Version]"4.6.2" }
"460798|460805" { [Version]"4.7" }
"461308|461310" { [Version]"4.7.1" }
"461808|461814" { [Version]"4.7.2" }
"528040|528049|528449|528372" { [Version]"4.8" }
{$_ -gt 528449} { [Version]"unidentified version (> 4.8)" }
}
}
}
}
$result=@()
$servers= Get-Content C:\Scripts\my_servers.txt
foreach ($server in $servers)
{
$result+=Invoke-Command -ComputerName $server -ScriptBlock $function:GetNetFrameworkVersion
}
$result| select PSComputerName,@{name = ".NET Framework"; expression = {$_.PSChildName}},Product,Version,Release| Out-GridView
このスクリプトを実行すると、リモートコンピューターにインストールされている.NET Frameworkのバージョン一覧が、Out-GridViewによるグラフィカルな表形式で表示されます。

確認対象のコンピューターリストは、次のように配列で直接指定することもできます。
$servers= @("comp1","comp2","comp3","comp4")
さらに、Active Directory用Windows PowerShellモジュールのGet-ADComputerコマンドレットを使えば、ドメイン内のコンピューターリストを自動的に取得できます。次のコマンドは、ドメイン内の有効なWindows Serverホストをすべて抽出します。
$servers= Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"'
CMD(コマンドプロンプト)で.NET Frameworkのバージョンを調べる方法
.NET Frameworkのすべてのバージョンは、次のWindowsフォルダーにインストールされます。
%SystemRoot%\Microsoft.NET\Framework%SystemRoot%\Microsoft.NET\Framework64
これらのフォルダーを開けば、インストールされている.NETのバージョン一覧を目視で確認できます。各バージョンには、「v」+バージョン番号という名前の個別のディレクトリが割り当てられています。コマンドプロンプトからインストール済みの.NET Frameworkバージョンを一覧表示するには、次のコマンドを使用します。
dir %WINDIR%\Microsoft.Net\Framework\v* /O:-N /B

ただし、このコマンドでは.NET 4.5以降のバージョンは表示されない点に注意してください。Framework 4.5以降はv4.0.xxxxxサブディレクトリにインストールされるためです。4.5以降の正確なバージョンを確認するには、前述のレジストリやPowerShellの方法を併用することをおすすめします。
-
Windows 10 で PowerShell のバージョンを確認する4つの方法【初心者向け完全ガイド】
多くのユーザーは、コマンドプロンプトよりも強力な機能を持つ PowerShell を好んで使っています。Windows Server の操作に加えて、Exchange、Lync、SQL ベースのサーバーも制御できる点が大きな魅力です。 Windows 10 には標準で PowerShell 5.0 が搭載されていますが、最新の Windows Update コンポーネントを適用すると、より新しいバージョンの Windows PowerShell 5.1 が自動的にインストールされます。そのため、自分の PC にどのバージョンの PowerShell が入っているのかを確認する方法を知っておくと
-
Windows 11でPowerShellのバージョンを素早く確認する方法
PowerShellは、Windows 10やWindows 11に標準搭載された強力で便利なツールです。しかし、「PowerShellをアップデートしたいけれど、今使っているバージョンがわからない」と困ったことはありませんか?この記事では、Windows 11にインストールされているPowerShellのバージョンを簡単に確認する方法を詳しく解説します。 なお、Windows Package Manager(通称 winget)は、コマンドプロンプトやPowerShellから利用できるコマンドラインツールで、アプリのインストール・管理・設定・アンインストールまで行えます。Windows 11