PowerShell查询服务器补丁如何将安装日期为空的输出行标为红色
解决方案
直接遍历查询结果,判断安装日期是否为空,动态修改控制台输出颜色即可实现需求,完整可运行代码如下:
# 替换为你实际的服务器列表变量 $ComputerName = "DC1" # 查询补丁信息,和你原有逻辑保持一致,你也可以换回原来的Get-WmiObject命令 $patchRecords = Get-CimInstance -Class Win32_QuickFixEngineering -ComputerName $ComputerName | Select-Object -Property PSComputerName, @{n='HotFix ID';e={$_.hotfixid}}, @{n='Installation Date';e={$_.installedon}} | Select-Object -Last 5 # 固定输出表头,和你原有输出格式对齐 Write-Host "PSComputerName HotFix ID Installation Date" Write-Host "-------------- --------- -----------------" # 逐行输出内容,空日期标红 foreach ($item in $patchRecords) { $outputLine = [string]::Format("{0,-14} {1,-9} {2}", $item.PSComputerName, $item.'HotFix ID', $item.'Installation Date') if ([string]::IsNullOrEmpty($item.'Installation Date')) { Write-Host $outputLine -ForegroundColor Red } else { Write-Host $outputLine } }
补充说明
- 代码里用
Get-CimInstance替代了老旧的Get-WmiObject,这是微软官方推荐的替代方案,兼容性更好,如果你需要沿用原有命令直接替换对应行即可 - 代码默认保持和你之前的输出格式对齐,不需要额外调整格式
- 如果需要将带颜色的结果导出到文件,需要终端支持ANSI转义码,仅控制台显示直接运行上述代码即可
内容的提问来源于stack exchange,提问作者Laylanie
相关产品推荐
相关产品推荐

