Udostępnij za pośrednictwem


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).

  1. Otwórz regedit.exe programu. W systemie Windows 8 lub nowszym kliknij prawym przyciskiem myszy pozycję UruchomZrzut ekranu przedstawiający logo klucza systemu Windows., a następnie wybierz polecenie Uruchom. W polu Otwórz wprowadź ciąg regedit i wybierz przycisk OK.

  2. 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

Zobacz też