Azure PowerShell脚本无法导出私有端点FQDN及IP问题排查
Azure私有端点信息导出CSV字段为空问题排查
用户尝试通过以下PowerShell脚本导出指定资源组中Azure私有端点的私有FQDN、私有IP地址及端点名称至CSV,但输出文件中私有FQDN和私有IP地址字段为空:
Connect-AzAccount -Tenant 'xxxxx' -SubscriptionId 'xxxx' # Get the Resource Group Name $resourceGroupName = "city-app-rg-xx-uat" # Get all Private Endpoints in the Resource Group $privateEndpoints = Get-AzPrivateEndpoint -ResourceGroupName $resourceGroupName # Create a list to store the data $data = @() # Loop through each Private Endpoint foreach ($privateEndpoint in $privateEndpoints) { $fqdn = $privateEndpoint.PrivateDnsZoneGroup.Name $ipAddresses = $privateEndpoint.PrivateIPAddresses -join "," $name = $privateEndpoint.Name $data += [PSCustomObject]@{ FQDN = $fqdn IPAddress = $ipAddresses Name = $name } } # Export the data to a CSV file $data | Export-Csv -Path "PrivateEndpointDetails.csv" -NoTypeInformation
错误原因分析
- 私有FQDN获取路径错误:原脚本中
$privateEndpoint.PrivateDnsZoneGroup.Name获取的是私有DNS区域组的名称,并非私有端点对应的FQDN。私有FQDN需要从关联的私有DNS区域配置及目标资源信息中提取。 - 私有IP地址属性错误:
$privateEndpoint.PrivateIPAddresses并非Get-AzPrivateEndpoint返回对象的有效属性,正确的私有IP地址存储在IpConfigurations集合的PrivateIpAddress字段中。
修正后的脚本
Connect-AzAccount -Tenant 'xxxxx' -SubscriptionId 'xxxx' # 指定资源组名称 $resourceGroupName = "city-app-rg-xx-uat" # 获取资源组内所有私有端点 $privateEndpoints = Get-AzPrivateEndpoint -ResourceGroupName $resourceGroupName # 初始化数据存储集合 $data = @() foreach ($privateEndpoint in $privateEndpoints) { # 获取私有IP地址,多个IP用逗号分隔 $ipAddresses = $privateEndpoint.IpConfigurations.PrivateIpAddress -join "," # 获取关联的私有FQDN:从私有DNS区域配置中提取,若未关联则显示"未配置" $fqdn = "未配置" if ($privateEndpoint.PrivateDnsZoneGroups) { # 取第一个DNS区域组的第一个配置(多场景可调整循环逻辑) $dnsZoneConfig = $privateEndpoint.PrivateDnsZoneGroups[0].PrivateDnsZoneConfigs[0] if ($dnsZoneConfig) { # 从DNS区域ID解析域名,拼接目标资源名称生成FQDN $dnsZoneName = ($dnsZoneConfig.PrivateDnsZoneId -split "/")[-1] $targetResourceName = ($privateEndpoint.PrivateLinkServiceConnections[0].PrivateLinkServiceId -split "/")[-1] $fqdn = "$targetResourceName.$dnsZoneName" } } $data += [PSCustomObject]@{ FQDN = $fqdn IPAddress = $ipAddresses Name = $privateEndpoint.Name } } # 导出至CSV $data | Export-Csv -Path "PrivateEndpointDetails.csv" -NoTypeInformation
补充说明
- 私有FQDN的生成逻辑需根据实际关联的资源类型调整,部分场景下FQDN可直接从目标资源的属性中提取,可通过
Get-AzResource获取目标资源后补充逻辑。 - 若私有端点关联多个私有DNS区域或多个IP地址,可调整循环逻辑以覆盖所有关联项。
内容的提问来源于stack exchange,提问作者Vaishnavi Vaishu
相关产品推荐
相关产品推荐

