如何在Azure Resource Graph PowerShell查询中获取全部变更记录?
获取Azure Resource Graph全部变更记录的方法
当使用PowerShell的Resource Graph模块查询变更记录时,默认每页最多返回100条数据,你可以通过以下两种方式获取完整的所有记录:
方法1:使用-All参数自动拉取全部数据
如果你的Az.ResourceGraph模块是较新版本(建议更新到最新),可以直接使用-All参数,让cmdlet自动处理分页逻辑,一次性返回符合条件的所有变更记录:
# 替换为你的订阅ID,按需调整时间范围 $subscriptionId = "你的订阅ID" $startTime = (Get-Date).AddDays(-7) # 查询最近7天的变更 $endTime = (Get-Date) $allChanges = Get-AzResourceGraphChange -SubscriptionId $subscriptionId -StartTime $startTime -EndTime $endTime -All
方法2:手动循环分页(兼容旧版本模块)
如果模块版本不支持-All参数,可以通过循环结合-Skip和-First参数手动处理分页:
$subscriptionId = "你的订阅ID" $startTime = (Get-Date).AddDays(-7) $endTime = (Get-Date) $skipCount = 0 $pageSize = 100 $allChanges = @() do { $currentPage = Get-AzResourceGraphChange -SubscriptionId $subscriptionId -StartTime $startTime -EndTime $endTime -Skip $skipCount -First $pageSize if ($currentPage) { $allChanges += $currentPage $skipCount += $pageSize } } while ($currentPage.Count -eq $pageSize)
循环会持续拉取数据,直到某一页返回的记录数小于$pageSize(说明已读取完最后一页)。
额外提示
如果不确定模块版本,可运行Get-Module -Name Az.ResourceGraph查看,若版本较低,使用Update-Module -Name Az.ResourceGraph更新到最新版本,以获得更便捷的参数支持。
内容的提问来源于stack exchange,提问作者Mallikarjuna Reddy
相关产品推荐
相关产品推荐

