如何使用 powershell 将 Azure 虚拟网络子网输出到 csv 以进行单个或多个订阅

问题描述 投票:0回答:2

我是 powershell 新手,并尝试在单个或多个订阅中输出 Azure 虚拟网络的子网信息。

我可以输出到控制台并获得我正在寻找的结果,但很难将相同的输出输出到 csv 文件。

我知道我需要创建新对象等,但无法获得正确的语法来工作。

有人可以帮忙吗。

下面的工作代码......

$subs = Get-AzSubscription -SubscriptionID xxxxxxxxxxxxxxxx
foreach ($Sub in $Subs) { 
    $SelectSub = Select-AzSubscription -SubscriptionName $Sub.Name 
    $VNETs = Get-AzVirtualNetwork 
    foreach ($VNET in $VNETs) { 
        $Sub.Name 
        $VNET.Name 
        ($VNET).AddressSpace.AddressPrefixes 
        ($VNET).Subnets.Name
    Write-Host " "
    } 
} 
azure powershell export-to-csv azure-virtual-network
2个回答
2
投票

我认为这样的事情可以解决问题:

$subs = Get-AzSubscription -SubscriptionID xxxxxxxxxxxxxxxx
foreach ($Sub in $Subs) { 
    Select-AzSubscription -SubscriptionName $Sub.Name | Out-Null
    $networks = Get-AzVirtualNetwork | ForEach-Object {
        New-Object PSObject -Property @{
            name         = $_.name
            subnets      = $_.subnets.name -join ';'
            addressSpace = $_.AddressSpace.AddressPrefixes -join ';'
        }
    }
    $networks | Export-Csv -NoTypeInformation file.csv
}

编辑:以前的版本并没有真正起作用,我猜导出 csv 有点奇怪。


0
投票

我的变体

$subs = (Get-AzSubscription | Sort-Object Name)
$subs | select Name,SubscriptionId
$networks = @()
foreach ($Sub in $Subs) { 
    Write-Output "Processing sub: $($Sub.Name)"
    Select-AzSubscription -SubscriptionName $Sub.Name | Out-Null
    $AzNetworks = Get-AzVirtualNetwork 
    ForEach ($AzNet in $AzNetworks) {
        ForEach ($Subnet in $AzNet.Subnets) {
            $networks += New-Object PSObject -Property @{
                SubsName      = $Sub.Name
                SubsId        = $Sub.SubscriptionId
                VNetName      = $AzNet.name
                VNetSpace     = $AzNet.AddressSpace.AddressPrefixes -join ';'
                SubnetName    = $Subnet.name
                SubnetAddress = $Subnet.AddressPrefix -join ';'
            }
        }
    }
}
$networks |
    Sort-Object SubsName,VNetName,SubnetName |
        Select SubsName,SubsId,VNetName,VNetSpace,SubnetName,SubnetAddress |
            Export-Csv -NoTypeInformation AzureNetworks.csv
© www.soinside.com 2019 - 2024. All rights reserved.