如何查询计算机的 Windows 更新“上次检查”信息?

如何查询计算机的 Windows 更新“上次检查”信息?

设置中的 Windows 更新页面包含一个Last Checked时间戳,我正在尝试确定是否可以以某种方式查询机器以获取此信息(通过命令提示符、PowerShell、注册表查询等)

我搜索了Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate我的注册表部分,没有发现与我的值相匹配的存储日期Last Checked

有什么方法可以查询这个吗?目标是能够查询远程计算机的信息,以避免必须远程访问它。

在此处输入图片描述

运行 PowerShell 命令$(New-Object -ComObject Microsoft.Update.AutoUpdate).Results.LastSearchSuccessDate返回日期匹配但时间不匹配的时间戳

在此处输入图片描述

答案1

LastSearchSuccessDate根据建议,使用 (.NET) 函数将返回的 UTC 时间转换为您的本地时间:

Function Get-LocalTime($UTCTime) {
    $strCurrentTimeZone = (Get-WmiObject win32_timezone).StandardName
    $TZ = [System.TimeZoneInfo]::FindSystemTimeZoneById($strCurrentTimeZone)
    Return [System.TimeZoneInfo]::ConvertTimeFromUtc($UTCTime, $TZ)
}

Get-LocalTime $(New-Object -ComObject Microsoft.Update.AutoUpdate).Results.LastSearchSuccessDate

给出的结果与“检查更新”用户界面中显示的结果相同。

远程执行

Invoke-Command -ComputerName $server -ScriptBlock { 
    Function Get-LocalTime($UTCTime) {
    $strCurrentTimeZone = (Get-WmiObject win32_timezone).StandardName
    $TZ = [System.TimeZoneInfo]::FindSystemTimeZoneById($strCurrentTimeZone)
    Return [System.TimeZoneInfo]::ConvertTimeFromUtc($UTCTime, $TZ)
    }
    
    Get-LocalTime $(New-Object -ComObject Microsoft.Update.AutoUpdate).Results.LastSearchSuccessDate
}; 

相关内容