Azure Resource Graph Query Private DNS zones - 获取所有 DNS 记录

Azure Resource Graph Query Private DNS zones - get all DNS records

有没有人设法使用 Azure Resource Graph Query (Search-AzGraph PowerShell) 来检索每个私有 DNS 区域的所有 DNS 记录?

我相信一定有办法获取与对象相关的 DNS 记录:“microsoft.network/privatednszones”

Resource Graph Query 比常规的 az cli/azure powershell 模块更快,但我一直在努力在网上找到任何东西来编写这个查询。一定可以!

我们在本地环境中对此进行了测试,以下陈述基于我们的分析。

使用 Search-AzGraph 查询,我们只能提取特定私有 DNS 区域下的 numberofRecordsSets 的计数,并且相应的 DNS 记录不会填充在任何列中,因为如下图所示。

这是我们用过的Search-AzGraph查询 :

Search-AzGraph "project id, name, type,properties | where type =~ 'microsoft.network/privatednszones' "    

或者,您可以使用下面的 REST API 或 PowerShell 脚本来拉取 特定私有 DNS 区域的 DNS 记录集。

REST API:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/privateDnsZones/{privateZoneName}/ALL?api-version=2018-09-01

这里是 Powershell 脚本:

$zonelist=Get-AzPrivateDnsZone
foreach ( $item in $zonelist)
{
    Get-AzPrivateDnsRecordSet -ResourceGroupName $item.ResourceGroupName -ZoneName $item.Name| select -property Name,RecordType,Records,ZoneName
}

这里是示例输出供参考: