系统极客一直在努力
专注操作系统及软件使用技能

如何使用PowerShell查看Windows Update更新历史记录


Windows 操作系统可以定期更新最新的补丁程序,以提高系统性能、修补安全漏洞和扩展新功能。Microsoft 将服务和修补程序作为(WaaS)免费更新服务的一部分一同发布,以增强 Windows 计算体验。Windows 更新会根据系统设置自动安装,很少需要用户去手动介入。免费更新也是 Windows 维护和支持的一部分,可发布软件以有效修复错误。 为了确保安全计算,Windows Update 会确保系统与最新的安全补丁(Security Patch)、修补程序(Hotfix)和错误修复(Bug Fix)保持同步。

用户除了可以通过「Windows 设置」——「更新和安全」界面中查看更新历史记录外,还可以通过 PowerShell 来查看 Windows Update 更新历史记录。下面我们就介绍如何使用任务自动化和配置管理工具(如 PowerShell)列出 Windows Update 事件的所有历史记录。

此前我们也介绍过如何使用 PowerShell 查看 Windows 10 Build 升级历史记录

使用PowerShell查看Windows Update更新历史记录

1 使用 Windows + X 快捷键打开快捷菜单——选择 Windows PowerShell(管理员)

2 执行如下命令,即可查看到当前计算机中已安装补丁的详细信息,包括:标题、描述、KB 号、安装日期和状态等等。

wmic qfe list

3 也可以键入以下命令以列出修补程序 KB 及其关联的描述。

get-wmiobject -class win32_quickfixengineering

当然,也可以向 Windows PC 更新历史记录写入查询函数,以返回指向 Windows 系统上匹配列表记录的指针。

function Convert-WuaResultCodeToName
{
    param(
        [Parameter(Mandatory=$true)]
        [int] $ResultCode
    )

    $Result = $ResultCode
    switch($ResultCode)
    {
      2 {
        $Result = "成功"
      }
      3 {
        $Result = "成功但包含错误"
      }
      4 {
        $Result = "失败"
      }
    }

    return $Result
}

function Get-WuaHistory
{

  $session = (New-Object -ComObject 'Microsoft.Update.Session')

  $history = $session.QueryHistory("",0,1000) | ForEach-Object {
     $Result = Convert-WuaResultCodeToName -ResultCode $_.ResultCode

     $_ | Add-Member -MemberType NoteProperty -Value $Result -Name Result
     $Product = $_.Categories | Where-Object {$_.Type -eq 'Product'} | Select-Object -First 1 -ExpandProperty Name
     $_ | Add-Member -MemberType NoteProperty -Value $_.UpdateIdentity.UpdateId -Name UpdateId
     $_ | Add-Member -MemberType NoteProperty -Value $_.UpdateIdentity.RevisionNumber -Name RevisionNumber
     $_ | Add-Member -MemberType NoteProperty -Value $Product -Name Product -PassThru

     Write-Output $_
  } 

  $history | 
      Where-Object {![String]::IsNullOrWhiteSpace($_.title)} | 
          Select-Object Result, Date, Title, SupportUrl, Product, UpdateId, RevisionNumber
}

在定义好函数之后,就可以用来获取更新:

Get-WuaHistory | Format-Table

赞(0) 赞赏

评论 抢沙发

微信赞赏