我们使用WSUS进行Windows更新,现在我想检查是否安装了更新,当我打算这样做时。我结合了其他人的一些想法,最后得到了这个PowerShell脚本:
Param(
[Parameter(Position =1, Mandatory = $true)]$ComputerName,
$NumberOfUpdates = 20,
[switch]$all
)
foreach($computer in $ComputerName){
$Session = [Activator]::CreateInstance([type]::GetTypeFromProgID("Microsoft.Update.Session",$computer))
$Searcher = $Session.CreateUpdateSearcher()
if($all)
{
$HistoryCount = $Searcher.GetTotalHistoryCount()
$updates = $Searcher.QueryHistory(1,$HistoryCount)
}
Else { $updates = $Searcher.QueryHistory(1,$NumberOfUpdates) }
$computer
$updates | Select Date, Title | Format-Table
}
它完成了它的工作,除了它没有显示最近安装的更新。
我昨天正在监控更新的状态。
首先,我的脚本没有在远程计算机上显示任何更改,所以我每隔10分钟启动一个运行脚本的计时器,并在我上床睡觉前记录输出。
今天早上我发现02:17,超过5小时后,更新现在显示在Microsoft.Update.Session