Script PowerShell pour retourner les versions du .NET Framework sur une machine ?

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Script PowerShell pour retourner les versions du .NET Framework sur une machine ?

Message par ForumBot »

Script PowerShell pour retourner les versions du .NET Framework sur une machine ?




Source : Stack Overflow [powershell]

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Script PowerShell pour retourner les versions du .NET Framework sur une machine ?

Message par ayi »

Si vous utilisez le registre, vous devez effectuer une recherche recursive pour obtenir la version complete du Framework 4.x. Les reponses precedentes retournent toutes les deux le numero racine sur mon systeme pour .NET 3.0 (ou les numeros WCF et WPF, qui sont imbriques sous 3.0, sont superieurs – je ne peux pas expliquer cela), et ne retournent rien pour 4.0…


EDIT : Pour .Net 4.5 et versions ulterieures, cela a legerement change a nouveau, il existe donc maintenant un article MSDN ici expliquant comment convertir la valeur Release en numero de version .Net, c’est un veritable casse-tete :frowning:


Cela me semble correct (notez que cela affiche des numeros de version separes pour WCF et WPF sur 3.0. Je ne sais pas a quoi cela est du). Cela affiche egalement Client et Full sur 4.0 (si vous avez les deux d’installes) :


Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |
Get-ItemProperty -name Version,Release -EA 0 |
Where { $_.PSChildName -match '^(?!S)\p{L}'} |
Select PSChildName, Version, Release


Base sur l’article MSDN, vous pouvez construire une table de correspondance et retourner le numero de version marketing du produit pour les versions apres 4.5 :


$Lookup = @{
378389 = [version]'4.5'
378675 = [version]'4.5.1'
378758 = [version]'4.5.1'
379893 = [version]'4.5.2'
393295 = [version]'4.6'
393297 = [version]'4.6'
394254 = [version]'4.6.1'
394271 = [version]'4.6.1'
394802 = [version]'4.6.2'
394806 = [version]'4.6.2'
460798 = [version]'4.7'
460805 = [version]'4.7'
461308 = [version]'4.7.1'
461310 = [version]'4.7.1'
461808 = [version]'4.7.2'
461814 = [version]'4.7.2'
528040 = [version]'4.8'
528049 = [version]'4.8'
}

# Pour le seul vrai framework (derniere version .NET 4x), changez le filtre Where-Object
# en PSChildName -eq "Full" :
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP'


(Reponse tronquee)

Répondre

Revenir à « PowerShell »