首页 > 解决方案 > 在 Azure 中,使用 powershell 脚本将负载均衡器详细信息保存到 csv 文件中

问题描述

我在 Azure DevOps 管道中编写了一个 powershell 脚本,以将负载均衡器的详细信息(如 FrontendIPConfigurationsName、FrontendIPAddress)保存到 csv 文件中。我正在获取这些详细信息,但以“ers-A1,ers-B1,ers-C1,ers-D1”等相同名称开头的 FrontendIPConfigurationsNames 出现在同一行。但我想把它们放在不同的行中。请建议

$excel = @()
LBlist = Get-AZLoadBalancer | Where-Oject {$_.ResourceGroupName -clike '$(grp-wildcard)'} | Select-Object
foreach ($LB in LBlist)
$Array =""| Select-Object ResourceGroupName, FrontendIPConfigurationsName,FrontendIPAddress
$Array.ResourceGroupName =$LB.ResourcegroupName
$Array.FrontendIPConfigurationsName = ($LB.FrontendIpConfigurationsName.name -join ',')
$Array.FrontendIPAddress =($LB.FrontendIpConfigurations.PrivateIpAddress -join ',')
}
$excel +=$Array
$excel |Format-Table ResourceGroupName, FrontendIPConfigurationsName,FrontendIPAddress
$excel | Export-Csv -NTI -Path "($Build.ArtifactStagingDirectory)/LBlist.csv

标签: azurepowershellazure-powershell

解决方案


您可以执行与此类似的操作来获取不同行上的对象。

$LBlist = Get-AZLoadBalancer | Where-Object { $_.ResourceGroupName -clike '$(grp-wildcard)' }

$LBlist | Export-Csv -NTI -Path "$(Build.ArtifactStagingDirectory)/LBlist.csv"

模拟Get-AZLoadBalancer(不确定它是否完全准确,因为我从未使用过 Az Powershell)

function Get-AZLoadBalancer() {
    $obj = @(
        [PSCustomObject] @{
            ResourceGroupName = '$(grp-wildcard)'
            FrontendIPConfigurationsName = 'ers-A1'
            FrontEndIPAddress = '1.2.3.4'
        },
        [PSCustomObject] @{
            ResourceGroupName = '$(grp-wildcard)'
            FrontendIPConfigurationsName = 'ers-B1'
            FrontEndIPAddress = '1.2.3.5'
        }
    )
    return $obj
}

推荐阅读