Как узнать установленные версии .NET Framework в Windows?

В Windows одновременно можно одновременно установить и запустить несколько версий .NET Framework. При разработке или развертывания нового приложения, основанного на библиотеках .NET, иногда нужно предварительно узнать какие версии и пакеты обновления .Net Framework уже установлены на компьютере пользователя или на сервере. Вы можете получить список версий .NET Framework, установленных на компьютере, несколькими способами.

Информация об установленных версиях .NET Framework в реестре

При установке или обновлении любой версии .NET Framework, изменения записываются в реестр Windows.

Откройте редактор реестра (regedit.exe) и перейдите в раздел HKLM SOFTWAREMicrosoftNET Framework SetupNDP. В этой ветке хранится информация обо всех версиях .NET на компьютере. Разверните любой раздел и обратите внимание на следующие параметры (для .Net 4.x нужно развернуть ветку Full):

  • Install — флаг установки (если равен 1, значит данная версия .Net установлена на компьютере);
  • Install Path — каталог, в который установлена данная версия .Net;
  • Release — номер релиза .Net;
  • Version — полный номер версии .Net Framework.

версии .Net Framework в реестре

Примечание . Для .NET 4.0 и выше, если подраздел Full отсутствует, это значит, что данная версия Framework на компьютере не установлена.

К примеру, в данном примере видно, что на компьютере установлены .NET Framework v2.0.50727, 3.0, 3.5 и 4.7 (релиз 460805).

Обратите внимание, что в серверных ОС начиная с Windows Server 2012, все базовые версии .Net (3.5 и 4.5) является частью системы и устанавливаются в виде отдельного компонента ( Установка .NET Framework 3.5 в Windows Server 2016 , в Windows Server 2012 R2 ), а минорные (4.5.1, 4.5.2 и т.д.) устанавливаются уже в виде обновлений через Windows Update или WSUS .

С помощью следующей таблицы вы можете установить соответствие между номером релиза и версией .NET Framework (применимо к .NET 4.5 и выше).

Значение DWORD параметра Release Версия .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 (остальные версии Window)
.NET Framework 4.8 сегодня — самая последняя доступная версия .NET Framework.

Как узнать версию .NET Framework с помощью PowerShell?

Можно получить информацию об установленных версиях и релизах NET Framework на компьютере с помощью PowerShell. Проще всего получить эти данные напрямую из реестра с помощью командлетов Get-ChildItem и Get-ItemProperty (подробнее о работе с записями реестра из PowerShell ).

Чтобы вывести таблицу по всем версиям .Net Framework на компьютере, выполните команду:

Get-ChildItem ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDP’ -Recurse | Get-ItemProperty -Name version -EA 0 | Where { $_.PSChildName -Match ‘^(?!S)p{L}’} | Select PSChildName, version

вывести список установленных версий .net framework с помощью powershell

На этом компьютере установлены версии .Net 2.0, 3.0, 3.5 и 4.7.

Начиная с версии .Net v4.0 более новая версия Framework перезаписывает (заменяет) старую версию. Т.е. если на компьютере был установлен .NET Framework 4.7, то при установке .NET Framework 4.8, старая версия пропадет.

Можно вывести только номер релиза (для версий .Net 4.x):

(Get-ItemProperty ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full’  -Name Release).Release

получить номер релиза net framework из консоли powershell

Согласно таблице, номер 528449 соответствует версии .Net Framework 4.8 в Windows 11.

Проверить версию .Net Framework на удаленных компьютерах

Вы можете удаленно получить список версий .Net Framework, установленных на компьютерах в вашей сети помощью PowerShell.

Ниже представлен небольшой PowerShell скрипт, который получает список компьютеров из текстового файла и проверяет на всех версию .Net Framework. Для запуска команд на удаленных компьютерах используется WinRM командлет Invoke-Command .

Function GetNetFramework {
Get-ChildItem 'HKLM:SOFTWAREMicrosoftNET Framework SetupNDP' -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]"Undocumented version (> 4.8)" }
}
}
}
}
$result=@()
$servers= Get-Content C:PSservers.txt
foreach ($server in $servers)
{
$result+=Invoke-Command -ComputerName $server -ScriptBlock $function:GetNetFramework
}
$result|  select PSComputerName,@{name = ".NET Framework"; expression = {$_.PSChildName}},Product,Version,Release| Out-GridView

Скрипт выводит табличку ( через Out-GridView ) со списком версий .Net Framework, установленных на удаленных компьютерах.

poweshell скрипт для получения версий net framework на удаленных компьютерах

Также вы можете задать список компьютеров, на которых нужно проверить .NET так:

$servers= @("pc1","pc2","pc3","pc4","pc5")

Или выбрать список компьютеров из домена с помощью командлета Get-ADComputer из модуля AD PowerShell . Следующая команда выберет все активные хосты Windows Server в домене:

$servers= Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"'

Вывести версии .NET Framework в командной строке

Все версии.NET Framework устанавливаются в следующие каталоги Windows:

  • %SystemRoot%Microsoft.NETFramework
  • %SystemRoot%Microsoft.NETFramework64

Вы можете просто открыть этот каталог и увидеть список установленных версий .NET. Каждой версии соответствует отдельный каталог с символом v и номером версии в качестве имени папки. Можно вывести список установленных версий .NET Framework из команды строки:

dir %WINDIR%Microsoft.NetFrameworkv* /O:-N /B

узнать версию net framework из командной строки windows

Команда выведет все установленные версии кроме 4.5, т.к. .NET Framework 4.5 устанавливается в подкаталог v4.0.xxxxx.

EnglishRussianUkrainian