In Windows, è possibile installare ed eseguire più versioni di. NET Framework contemporaneamente. Quando si sviluppa o si distribuisce una nuova applicazione basata sulle librerie.NET, a volte è necessario sapere in anticipo quali versioni e service pack di. Net Framework sono già installati sul computer o sul server dell’utente. È possibile ottenere un elenco delle versioni di. NET Framework installate sul computer in diversi modi.
Controllo del .Versione di NET Framework tramite il Registro di Windows
Quando si installa o si aggiorna una qualsiasi versione di. NET Framework, le modifiche vengono scritte nel registro di Windows.
Eseguire l’editor del Registro di sistema (regedit.exe
) e andare alla chiave del registro di sistema HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP. Questa chiave reg contiene informazioni su tutte le versioni di. NET sul computer. Espandere qualsiasi sottochiave e prestare attenzione ai seguenti parametri (per. Net 4.x è necessario espandere la sottochiave completa):
- Install-flag di installazione (se uguale a 1, allora questa versione di .Net è installato sul computer);
- Percorso di installazione — la directory in cui è installata questa versione.Net;
- Release — Numero di rilascio. NET;
- Version — il numero di versione completa di. Net Framework.
In questo esempio, è possibile vedere che.NET Framework v2.0.50727, 3.0, 3.5 e 7.0 (release 460805) sono installati.
Utilizzando la seguente tabella, è possibile mappare il numero di rilascio alla versione di.NET Framework (per. NET 4.5 e versioni successive).
Numero di rilascio | .NET Framework versione |
378389 | .NET Framework 4.5 |
378675 | NET Framework 4.5.1 su Windows 8.1 e Windows Server 2012 R2 |
378758 | .NET Framework 4.5.1 su Windows 8, Windows 7 SP1, Windows Vista SP2 |
379893 | .NET Framework 4.5.2 |
393295 | .NET Framework 4.6 su Windows 10 |
393297 | .NET Framework 4.6 |
394254 | .NET Framework 4.6.1 su Windows 10 1511 |
394271 | .NET Framework 4.6.1 |
394802 | .NET Framework 4.6.2 su Windows 10 1607 |
394806 | .NET Framework 4.6.2 |
460798 | .NET Framework 4.7 su Windows 10 1703 |
460805 | .NET Framework 4.7 |
461308 | .NET Framework 4.7.1 su Windows 10 1709 |
461310 | .NET Framework 4.7.1 |
461808 | .NET Framework 4.7.2 su Windows 10 1803 |
461814 | .NET Framework 4.7.2 |
528372 | .NET Framework 4.8 su Windows 10 2004, 20H2, e 21H1 |
528040 | .NET Framework 4.8 su Windows 10 1903 e 1909 |
528449 | .NET Framework 4.8 su Windows Server 2022 e Windows 11 |
528049 | .NET Framework 4.8 (altra Finestra versioni) |
Come controllare il .Versione NET Framework con PowerShell?
È possibile ottenere informazioni sulle versioni installate e le versioni di NET Framework sul computer utilizzando PowerShell. Il modo più semplice per ottenere queste informazioni direttamente dal registro è utilizzando i cmdlet Get-ChildItem
e Get-ItemProperty
(maggiori informazioni sulla gestione delle voci di registro con PowerShell).
Per visualizzare un elenco di tutte le versioni di. Net Framework su un computer, eseguire il comando:
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 versioni 2.0, 3.0, 3.5 e 4.7 sono installati su questo computer.
È possibile visualizzare solo il numero di rilascio per (. Net 4.versioni x):
(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release).Release
Secondo la tabella, il numero 528449 corrisponde a.Net Framework 4.8 su Windows 11.
Elenco installato .Versioni NET su computer remoti
È possibile ottenere in remoto un elenco delle versioni di. Net Framework installate sui computer della rete utilizzando PowerShell.
Ecco un piccolo script PowerShell che interroga un elenco di computer da un file di testo e controlla in remoto le versioni installate di. Net Framework. Il cmdlet WINRM Invoke-Command viene utilizzato per eseguire comandi su computer remoti.
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
Lo script visualizza una tabella grafica (tramite Out-GridView) con un elenco di versioni di.Net Framework installate su computer remoti.
È anche possibile impostare un elenco di computer per controllare la .NET versione come segue:
$servers= @("comp1","comp2","comp3","comp4")
Oppure si può ottenere un elenco di computer di dominio con il cmdlet Get-ADComputer (da Active Directory module per Windows PowerShell). Il seguente comando selezionerà tutti gli host Windows Server attivi nel dominio:
$servers= Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"'
Come scoprire la versione di. NET Framework con CMD?
Tutte le versioni del .NET Framework sono installati nelle seguenti cartelle di Windows:
%SystemRoot%\Microsoft.NET\Framework
%SystemRoot%\Microsoft.NET\Framework64
Puoi semplicemente aprire quella cartella e vedere un elenco di versioni.NET installate. Ogni versione ha una directory separata con una v e un numero di versione come nome della cartella. È possibile elencare le versioni installate di. NET Framework dal prompt dei comandi: