客户在 Azure 中拥有多个资源组,其中包含多个虚拟网络和许多专用 DNS 区域以启用专用终结点。某些私有(private) DNS 区域位于不同的资源组中,但具有相同的域名(例如 privatelink.azurewebsites.net)。 我有一些虚拟网络,我想知道哪些私有(private) DNS 区域通过虚拟网络链接连接到它们。
我有一个连接到特定私有(private) DNS 区域的虚拟网络列表,但我在虚拟网络上没有看到相应的列表。门户内是否有一个列表,我可以在其中查看虚拟网络链接?
最佳答案
这并不完全是您所要求的,也不是来自门户,而是如果您愿意使用 PowerShell 尝试的话,这是一种替代方案。您可以尝试使用 PowerShell 提取私有(private) DNS 区域及其关联记录和 Vnet 链接,然后发送到 csv 文件。通过这种方式,您可以轻松识别哪些 Vnet 连接到您的私有(private) DNS 区域,只需过滤 VnetLinkId 列即可。
这是您可以使用的代码片段:
注意: 在运行此代码段之前,您需要先使用 Connect-AzAccount
$subscriptionId = your subscription ID"
Set-AzContext -SubscriptionId $subscriptionId
$subName = "your Subscription Name"
$reportName1 = "PrivateDNSZone.csv"
Select-AzSubscription $subscriptionId
$report = @()
$Zones = Get-AzPrivateDnsZone
foreach ($zone in $Zones){
$vnet_link = Get-AzPrivateDnsVirtualNetworkLink -ResourceGroupName $zone.ResourceGroupName -ZoneName $zone.Name
$record_set = Get-AzPrivateDnsRecordSet -ResourceGroupName $zone.ResourceGroupName -ZoneName $zone.Name
foreach ($record in $record_set){
foreach ($link in $vnet_link){
$info = "" | Select Subscription, ResourceGroupName, PrivateDNSZoneName, RecordSet, RecordType, Records, Ttl, IsAutoRegistered, VnetLinkName, VnetLinkId, RegistrationEnabled, VirtualNetworkLinkState, ProvisioningState
$info.Subscription = $subName
$info.ResourceGroupName = $zone.ResourceGroupName
#$info.Location = $zone.Location
$info.PrivateDNSZoneName = $zone.Name
$info.RecordSet = $record.Name
$info.RecordType = $record.RecordType
if ($record.RecordType -eq 'A'){
$info.Records = $record.Records.Ipv4Address -join ","
}
elseif ($record.RecordType -eq 'CNAME'){
$info.Records = $record.Records.Cname -join ","
}
elseif ($record.RecordType -eq 'SOA') {
$info.Records = $record.Records.Host -join ","
}
else{
$info.Records = $record.Records
}
$info.Ttl = $record.Ttl
$info.IsAutoRegistered = $record.IsAutoRegistered
$info.VnetLinkName = $link.Name
$info.VnetLinkId = $link.VirtualNetworkId
$info.RegistrationEnabled = $link.RegistrationEnabled
$info.VirtualNetworkLinkState = $link.VirtualNetworkLinkState
$info.ProvisioningState = $link.ProvisioningState
$report += $info
}
}
}
$report | ft Subscription, ResourceGroupName, PrivateDNSZoneName, RecordSet, RecordType, Records, Ttl, IsAutoRegistered, VnetLinkName, VnetLinkId, RegistrationEnabled, VirtualNetworkLinkState, ProvisioningState
$report | Export-CSV "$reportName1" -Encoding Default
这是 csv 文件的快照,其中提取了详细信息
关于azure - 如何查看哪些 Azure 私有(private) DNS 区域连接到我的 Azure 虚拟网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74577769/