Sous Windows, vous pouvez installer et exécuter plusieurs versions du framework .NET en même temps. Lors du développement ou du déploiement d’une nouvelle application basée sur des bibliothèques .NET, vous devez parfois savoir à l’avance quelles versions et service packs du framework .Net sont déjà installés sur l’ordinateur ou le serveur de l’utilisateur. Vous pouvez obtenir une liste des versions de .NET Framework installées sur votre ordinateur de plusieurs manières.
Vérification du.Version du Framework NET via le registre Windows
Lorsque vous installez ou mettez à jour une version du framework .NET, les modifications sont écrites dans le registre Windows.
Exécutez l’éditeur de registre (regedit.exe
) et accédez à la clé de registre HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP. Cette clé reg contient des informations sur toutes les versions de .NET sur l’ordinateur. Développez n’importe quelle sous-clé et faites attention aux paramètres suivants (pour .Net 4.x vous devez développer la sous-clé complète):
- Install – drapeau d’installation (si égal à 1, alors cette version de.Net est installé sur l’ordinateur);
- Chemin d’installation — le répertoire dans lequel cette version .Net est installée;
- Release – Numéro de version .NET;
- Version – le numéro de version complet de .Net Framework.
Dans cet exemple, vous pouvez voir que .NET Framework v2.0.50727, 3.0, 3.5 et 7.0 (version 460805) sont installés.
À l’aide du tableau suivant, vous pouvez mapper le numéro de version à la version du framework .NET (pour .NET 4.5 et versions ultérieures).
Numéro de version | .Version du cadre NET |
378389 | Cadre .NET 4.5 |
378675 | NET Framework 4.5.1 sur Windows 8.1 et Windows Server 2012 R2 |
378758 | .NET Framework 4.5.1 sur Windows 8, Windows 7 SP1, Windows Vista SP2 |
379893 | Cadre .NET 4.5.2 |
393295 | .NET Framework 4.6 sous Windows 10 |
393297 | Cadre .NET 4.6 |
394254 | .NET Framework 4.6.1 sur Windows 10 1511 |
394271 | Cadre .NET 4.6.1 |
394802 | .NET Framework 4.6.2 sous Windows 10 1607 |
394806 | Cadre .NET 4.6.2 |
460798 | .NET Framework 4.7 sous Windows 10 1703 |
460805 | Cadre .NET 4.7 |
461308 | .NET Framework 4.7.1 sous Windows 10 1709 |
461310 | Cadre .NET 4.7.1 |
461808 | .NET Framework 4.7.2 sur Windows 10 1803 |
461814 | Cadre .NET 4.7.2 |
528372 | .NET Framework 4.8 sur Windows 10 2004, 20H2 et 21H1 |
528040 | .NET Framework 4.8 sur Windows 10 1903 et 1909 |
528449 | .NET Framework 4.8 sur Windows Server 2022 et Windows 11 |
528049 | .NET Framework 4.8 (autres versions de fenêtre) |
Comment vérifier le.Version de framework NET avec PowerShell?
Vous pouvez obtenir des informations sur les versions et versions installées du framework NET sur votre ordinateur à l’aide de PowerShell. Le moyen le plus simple d’obtenir ces informations directement à partir du registre consiste à utiliser les applets de commande Get-ChildItem
et Get-ItemProperty
(en savoir plus sur la gestion des entrées de registre avec PowerShell).
Pour afficher une liste de toutes les versions du framework .Net sur un ordinateur, exécutez la commande:
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 versions 2.0, 3.0, 3.5 et 4.7 sont installés sur cet ordinateur.
Vous ne pouvez afficher que le numéro de version de (.Net 4.versions x):
(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release).Release
Selon le tableau, le numéro 528449 correspond au .Net Framework 4.8 sur Windows 11.Liste
Installée.Versions NET sur des ordinateurs distants
Vous pouvez obtenir à distance une liste des versions de .Net Framework installées sur des ordinateurs de votre réseau à l’aide de PowerShell.
Voici un petit script PowerShell qui interroge une liste d’ordinateurs à partir d’un fichier texte et vérifie à distance les versions installées du framework .Net. L’applet de commande Invoke-Command de WinRM est utilisée pour exécuter des commandes sur des ordinateurs distants.
Function GetNetFrameworkVersion {
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |
Get-ItemProperty -name Version,Release -EA 0 |
Where { $_.PSChildName -match '^(?!)\p{L}'} |
Select PSChildName, Version, Release, @{
name="Product"
expression={
switch -regex ($_.Release) {
"378389" { "4.5" }
"378675|378758" { "4.5.1" }
"379893" { "4.5.2" }
"393295|393297" { "4.6" }
"394254|394271" { "4.6.1" }
"394802|394806" { "4.6.2" }
"460798|460805" { "4.7" }
"461308|461310" { "4.7.1" }
"461808|461814" { "4.7.2" }
"528040|528049|528449|528372" { "4.8" }
{$_ -gt 528449} { "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
Le script affiche une table graphique (via Out-GridView) avec une liste des versions de .Net Framework installées sur des ordinateurs distants.
Vous pouvez également définir une liste d’ordinateurs sur lesquels vérifier la version .NET comme suit:
$servers= @("comp1","comp2","comp3","comp4")
Ou vous pouvez obtenir une liste d’ordinateurs de domaine avec l’applet de commande Get-ADComputer (à partir du module Active Directory pour Windows PowerShell). La commande suivante sélectionnera tous les hôtes Windows Server actifs dans le domaine:
$servers= Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"'
Comment trouver la version de .NET Framework avec CMD?
Toutes les versions du.NET Framework sont installés dans les dossiers Windows suivants:
%SystemRoot%\Microsoft.NET\Framework
%SystemRoot%\Microsoft.NET\Framework64
Vous pouvez simplement ouvrir ce dossier et afficher une liste des versions .NET installées. Chaque version a un répertoire séparé avec un v et un numéro de version comme nom de dossier. Vous pouvez lister les versions installées du .NET Framework à partir de l’invite de commande :