You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 14:05:14