我正在尝试创建一个脚本,该脚本可以列出所有 Azure 虚拟网络并使用 Powershell 将其导出到 Csv。
$day = Get-Date -Format " MMM-yyyy"
$path = "C:\Users\admin-vishal.singh\Desktop\Test\Report\"+ "$day-Vnet-Report.csv"
foreach ($Sub in $Subs) {
Select-AzSubscription -SubscriptionName $Sub.Name | Out-Null
$resource_grps = Get-AzResourceGroup
foreach ($resource_grp in $resource_grps) {
$networks = Get-AzVirtualNetwork
foreach ($vnet in $networks)
{
$null = Get-AzVirtualNetwork |Select-Object SubscriptionName,ResourceGroupName,Name,AddressSpace,Subnets,SubnetAddressSpace,RouteTable | Export-CSV -Path $path -NoTypeInformation -Encoding ASCII -Append
}
}
}
我无法以正确的格式检索数据,并且在检索数据时出现错误。 以下是数据片段
很多值我无法检索,例如子网地址空间、路由表和路由。
最佳答案
基于 Jim Xu 提供的内容,您不需要为每个资源组设置单独的循环。 Get-AzVirtualNetwork 将返回整个订阅的所有虚拟网络。此外,您还需要 Select-Object 中的 SubscriptionName 表达式,因此代码如下所示:
foreach ($Sub in $Subs) {
Select-AzSubscription -SubscriptionName $Sub.Name | Out-Null
Get-AzVirtualNetwork |
Select-Object `
@{label='SubscriptionName'; expression={$Sub.Name}}, `
ResourceGroupName, `
Name, `
@{label='AddressSpace'; expression={$_.AddressSpace.AddressPrefixes}}, `
@{label='SubnetName'; expression={$_.Subnets.Name}}, `
@{label='SubnetAddressSpace'; expression={$_.Subnets.AddressPrefix}} |
Export-CSV -Path $path -NoTypeInformation -Encoding ASCII -Append
}
关于azure - 尝试使用 Powershell 列出 Azure 虚拟网络并导出为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67179808/