You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本获取Windows更新信息异常:判断更新是否超30天排查

问题分析与修复

你编写的脚本存在几个关键错误,导致组合后无法正常工作:

  • 日期比较逻辑错误:$WUpdateResult是日期对象,直接和数字30比较毫无意义,需要先计算当前日期与该日期的天数差。
  • 布尔值判断错误:PowerShell的布尔值是$false/$true,不是字符串"False";且你用了赋值运算符=,而非比较运算符-eq。
  • 逻辑倒置:原脚本的判断逻辑和需求不符,需调整为正确的过期判断逻辑。

修复后的脚本

# 获取最近一次更新的安装日期
$latestHotfix = Get-Hotfix | Sort-Object -Property InstalledOn -Descending | Select-Object -First 1
$WUpdateResult = $latestHotfix.InstalledOn

# 计算当前日期与安装日期的天数差
$daysSinceLastUpdate = (Get-Date) - $WUpdateResult
$isOver30Days = $daysSinceLastUpdate.Days -gt 30

# 赋值逻辑:超过30天显示"N/A",否则显示安装日期
$info.WUpdateResult = if ($isOver30Days) { "N/A" } else { $WUpdateResult }

关键修复点说明

  • 日期差计算:通过(Get-Date) - $WUpdateResult得到时间跨度对象,再取Days属性获取天数差,才能正确和30做比较。
  • 布尔值正确使用:直接通过$daysSinceLastUpdate.Days -gt 30得到布尔值$true/$false,无需转换为字符串。
  • 逻辑修正:按照需求,最近更新超过30天则标记"N/A",否则保留安装日期;若需求相反,只需将if ($isOver30Days)改为if (-not $isOver30Days)即可。

内容的提问来源于stack exchange,提问作者DigiCoinzTrader

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:57:20