Jak określić, które aktualizacje zabezpieczeń i poprawki programu .NET Framework są zainstalowane
W tym artykule pokazano, jak dowiedzieć się, które aktualizacje zabezpieczeń i poprawki programu .NET Framework są instalowane na komputerze.
Historia aktualizacji
Aby sprawdzić, które aktualizacje programu .NET Framework są zainstalowane na własnym komputerze, w obszarze Ustawienia przejdź do historii usługi Windows Update Update>. Zapoznaj się z sekcją Aktualizacje dotyczące jakości aktualizacji programu .NET Framework. Na przykład może zostać wyświetlona aktualizacja podobna do aktualizacji zbiorczej 2023-11 dla programu .NET Framework 3.5 i 4.8.1 dla systemu Windows 11 w wersji 22H2 dla x64 (KB5032007)".
Rejestr
Możesz wykonywać zapytania dotyczące rejestru przy użyciu Edytora rejestru, kodu lub programu PowerShell.
Uwaga
Wszystkie techniki rejestru wymagają konta z uprawnieniami administracyjnymi.
Używanie Edytora rejestru.
Zainstalowane aktualizacje zabezpieczeń i poprawki dla każdej wersji programu .NET Framework zainstalowanego na komputerze są wymienione w rejestrze systemu Windows. Aby wyświetlić te informacje, możesz użyć edytora rejestru (regedit.exe).
Otwórz regedit.exe programu. W systemie Windows 8 lub nowszym kliknij prawym przyciskiem myszy pozycję Uruchom, a następnie wybierz polecenie Uruchom. W polu Otwórz wprowadź ciąg regedit i wybierz przycisk OK.
W Edytorze rejestru otwórz następujący podklucz:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Updates
Zainstalowane aktualizacje są wymienione w podkluczach identyfikujących wersję programu .NET Framework, do której mają zastosowanie. Każda aktualizacja jest identyfikowana przez numer bazy wiedzy (KB).
W Edytorze rejestru wersje programu .NET Framework i zainstalowane aktualizacje dla każdej wersji są przechowywane w różnych podkluczach. Aby uzyskać informacje na temat wykrywania zainstalowanych numerów wersji, zobacz Instrukcje: określanie, które wersje programu .NET Framework są zainstalowane.
Wykonywanie zapytań przy użyciu kodu
Poniższy przykład programowo określa aktualizacje zabezpieczeń i poprawki programu .NET Framework zainstalowane na komputerze:
using System;
using Microsoft.Win32;
public class GetUpdateHistory
{
public static void Main()
{
using (RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\Updates"))
{
foreach (string baseKeyName in baseKey.GetSubKeyNames())
{
if (baseKeyName.Contains(".NET Framework"))
{
using (RegistryKey updateKey = baseKey.OpenSubKey(baseKeyName))
{
Console.WriteLine(baseKeyName);
foreach (string kbKeyName in updateKey.GetSubKeyNames())
{
using (RegistryKey kbKey = updateKey.OpenSubKey(kbKeyName))
{
Console.WriteLine(" " + kbKeyName);
}
}
}
}
}
}
}
}
Imports Microsoft.Win32
Public Class GetUpdateHistory
Public Shared Sub Main()
Using baseKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey("SOFTWARE\Microsoft\Updates")
For Each baseKeyName As String In baseKey.GetSubKeyNames()
If baseKeyName.Contains(".NET Framework") Then
Using updateKey As RegistryKey = baseKey.OpenSubKey(baseKeyName)
Console.WriteLine(baseKeyName)
For Each kbKeyName As String In updateKey.GetSubKeyNames()
Using kbKey As RegistryKey = updateKey.OpenSubKey(kbKeyName)
Console.WriteLine(" " & kbKeyName)
End Using
Next
End Using
End If
Next
End Using
End Sub
End Class
W przykładzie są generowane dane wyjściowe podobne do następujących:
Microsoft .NET Framework 4 Client Profile
KB2468871
KB2468871v2
KB2478063
KB2533523
KB2544514
KB2600211
KB2600217
Microsoft .NET Framework 4 Extended
KB2468871
KB2468871v2
KB2478063
KB2533523
KB2544514
KB2600211
KB2600217
Wykonywanie zapytań przy użyciu programu PowerShell
W poniższym przykładzie pokazano, jak określić aktualizacje zabezpieczeń i poprawki programu .NET Framework zainstalowane na komputerze przy użyciu programu PowerShell:
$DotNetVersions = Get-ChildItem HKLM:\SOFTWARE\WOW6432Node\Microsoft\Updates | Where-Object {$_.name -like
"*.NET Framework*"}
ForEach($Version in $DotNetVersions){
$Updates = Get-ChildItem $Version.PSPath
$Version.PSChildName
ForEach ($Update in $Updates){
$Update.PSChildName
}
}
W przykładzie są generowane dane wyjściowe podobne do następujących:
Microsoft .NET Framework 4 Client Profile
KB2468871
KB2468871v2
KB2478063
KB2533523
KB2544514
KB2600211
KB2600217
Microsoft .NET Framework 4 Extended
KB2468871
KB2468871v2
KB2478063
KB2533523
KB2544514
KB2600211
KB2600217