看来微软在 Server 2016 中删除了此注册表项。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\自动更新\结果\安装
是否有人知道具有上次 Windows Update 安装成功日期/时间的等效注册表项?或者可能是查询此值的其他方法?
我花了几个小时在谷歌上搜索,但一无所获。我能找到的最接近的注册表项是:
HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
但是,它没有上次成功安装日期/时间的密钥。
答案1
经过测试,这个家伙的发现确实有效:
Get-WmiObject -Class win32_reliabilityRecords -filter "sourcename = 'Microsoft-
Windows-WindowsUpdateClient'" -ErrorAction SilentlyContinue |
select @{LABEL = "date";EXPRESSION = {$_.ConvertToDateTime($_.timegenerated)}},
@{LABEL = 'Update';EXPRESSION = {$_.message}} |
FT -AutoSize -Wrap
给你一个很好的总结:
date Update
---- ------
8/18/2017 8:39:51 AM Installation Successful: Windows successfully installed
the following update: 2017-08 Cumulative Update for Windows Server 2016 for
x64-based Systems (KB4034658)
...
当然,如果您只想要日期本身,您可以只删除描述和标题。
答案2
我用:
Invoke-Command -ComputerName $ComputerName -ScriptBlock { (New-Object -com "Microsoft.Update.AutoUpdate").Results.LastInstallationSuccessDate} -ErrorAction SilentlyContinue
请注意,时间是 UTC。
答案3
您可以使用设置事件日志。类似这样的吗?
Get-WinEvent -LogName Setup | where{$_.message -match "success"} | select -First 1
我通常会检查最近安装的事件,如下所示:
Get-WinEvent -LogName Setup -MaxEvents 5 | Format-Table Machinename,Timecreated,Message -A -Wr
我确实测试过了并且它在 2016 年也有效。
答案4
Windows 2016 和 2019 中的 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\LastDownloadsPurgeTime
这将允许您了解上次安装的日期,这是唯一具有这些新版本的东西