Поиск по сайту:

Как проверить версию .NET Framework, установленную в Windows


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

Проверка версии .NET Framework через реестр Windows

Когда вы устанавливаете или обновляете любую версию .NET Framework, изменения записываются в реестр Windows.

Запустите редактор реестра (

regedit.exe

) и перейдите к разделу реестра HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP. Этот ключ регистрации содержит информацию обо всех версиях .NET на компьютере. Разверните любой подраздел и обратите внимание на следующие параметры (для .Net 4.x необходимо раскрыть подраздел Полный):

  • Install — флаг установки (если равен 1, то на компьютере установлена данная версия .Net);

  • Путь установки — каталог, в который установлена данная версия .Net;

  • Выпуск — номер выпуска .NET;

  • Версия — полный номер версии .Net Framework.

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

В этом примере вы можете видеть, что установлены .NET Framework v2.0.50727, 3.0, 3.5 и 7.0 (выпуск 460805).

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

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

Release Number

Версия .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.

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

Вы можете получить информацию об установленных версиях и выпусках NET Framework на вашем компьютере с помощью PowerShell. Самый простой способ получить эту информацию непосредственно из реестра — использовать команду

Get-ChildItem

и

Get-ItemProperty

командлеты (подробнее об управлении записями реестра с помощью PowerShell).

Чтобы отобразить список всех версий .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 v4.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 соответствует .Net Framework 4.8 на Windows 11.

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

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

Вот небольшой скрипт PowerShell, который запрашивает список компьютеров из текстового файла и удаленно проверяет наличие установленных версий .Net Framework. Командлет 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

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

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

$servers= @("comp1","comp2","comp3","comp4")

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

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

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

Все версии .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.

Статьи по данной тематике