设置中的 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
};