如何判斷安裝的 .NET Framework 安全性更新與 Hotfix
本文說明如何找出安裝在電腦上的 .NET Framework 安全性更新與 Hotfix。
更新歷程記錄
若要查看哪些 .NET Framework 更新已安裝在您自己的電腦上,請在 [設定] 中,瀏覽至 [Windows Update]>[更新歷程記錄]。 請查看品質更新區段以取得 .NET Framework 更新。 例如,您可能會看到類似 "2023-11 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Windows 11, version 22H2 for x64 (KB5032007)" 的更新。
登錄
您可以使用登錄編輯程式、程式碼或 PowerShell 查詢登錄。
注意
所有登錄技術都需要具有系統管理權限的帳戶。
使用登錄編輯程式
已為電腦上安裝之各版 .NET Framework 所安裝之安全性更新與 Hotfix,都列於 Windows 登錄中。 您可使用登錄編輯程式 (regedit.exe) 程式,檢視此資訊。
開啟 regedit.exe 程式。 在 Windows 8 和更新版本中,以滑鼠右鍵按一下 [開始] ,然後選取 [執行]。 在 [開啟]方塊中,輸入 regedit,然後選取 [確定]。
在 [登錄編輯程式] 中,開啟下列子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Updates
已安裝的更新會列於子機碼下,這些子機碼可識別套用更新的 .NET Framework 版本。 每個更新都是透過知識庫 (KB) 號碼加以識別。
在登錄編輯程式中,.NET Framework 版本和每一版已安裝的更新會儲存在不同的子機碼中。 如需偵測已安裝之版本號碼的相關資訊,請參閱如何:判斷安裝的 .NET Framework 版本。
使用程式碼查詢
下列範例以程式設計方式判斷電腦上安裝的 .NET Framework 安全性更新與 Hotfix:
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
該範例會產生類似如下的輸出:
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
使用 PowerShell 查詢
下列範例示範如何使用 PowerShell 判斷電腦上安裝的 .NET Framework 安全性更新與 Hotfix:
$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
}
}
該範例會產生類似如下的輸出:
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