问题描述
想要使用Kusto查询语言(KQL)获取一个虚拟机列表,该列表显示自上个月以来未进行过补丁的虚拟机。他已经提供了一个查询示例,并希望在此基础上添加筛选条件以满足需求。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
最佳解决方案
以下是一个基于用户提供的示例查询的改进版本,用于获取自上个月以来未进行过补丁的虚拟机列表:
Update
| where Classification in ("Security Updates", "Critical Updates")
| where UpdateState == 'Needed' and Optional == false and Approved == true
| where PublishedDate <= ago(30d) // 添加筛选条件以限制到自上个月
| summarize count() by Classification, Computer, _ResourceId
这个查询在用户提供的基础上,添加了一个额外的筛选条件,即PublishedDate <= ago(30d)
,用于仅显示自上个月以来未进行过补丁的虚拟机。
其他解决方案
除了以上最佳解决方案外,还可以使用以下查询来获取相同的结果,这里使用了稍微不同的逻辑:
Update
| where Classification in ("Security Updates", "Critical Updates")
| where UpdateState == 'Needed' and Optional == false and Approved == true
| extend DaysSincePublished = todouble(now() - PublishedDate) / 1d
| where DaysSincePublished <= 30 // 限制结果显示自上个月以来未进行过补丁的虚拟机
| summarize count() by Classification, Computer, _ResourceId
这个查询使用了extend
语句来计算每个更新距离发布的天数,并通过where DaysSincePublished <= 30
筛选出自上个月以来未进行过补丁的虚拟机。
总结
使用KQL查询语言可以很方便地从Azure中获取虚拟机列表,并根据用户需求进行筛选和排序。在查询中添加适当的条件,如PublishedDate <= ago(30d)
或DaysSincePublished <= 30
,可以帮助用户获取所需的未补丁虚拟机列表。通过理解和灵活运用KQL,用户可以更好地管理和监控其虚拟机环境。
正文完