azure - 尝试使用 Powershell 列出 Azure 虚拟网络并导出到 CSV
问题描述
我正在尝试创建一个可以列出所有 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
}
}
}
我无法以正确的格式检索数据并在检索数据时出错。下面是数据片段
很多值我无法检索,例如子网地址空间、路由表和路由。
解决方案
当我们调用export-csv
命令时,使用 ToString() 方法将属性值转换为字符串。但是Get-AzVirtualNetwork
是对象的结果,我们不能直接将值转换为字符串。有关更多详细信息,请参阅此处和此处
因此,关于这个问题,我建议您使用所需信息创建一个自定义对象,然后将其保存到 csv 中。
例如
$vents =Get-AzVirtualNetwork|
Select-Object SubscriptionName,ResourceGroupName,Name, @{
label='AddressSpace'
expression={$_.AddressSpace.AddressPrefix}}, @{
label='SubnetName'
expression={$_.Subnets.Name}
}, @{
label='SubnetAddressSpace'
expression={$_.Subnets.AddressPrefix}
}
$vents | convertto-csv
推荐阅读
- scala - 带有 Spylon-Kernel 的 Jupyter 中 spark.implicits._ 的问题
- python - 如何从图像中删除相邻的重复像素?
- sql - 对行进行分组,同时排除特定列上的空值并聚合另一个
- typescript - TypeScript:如何初始化依赖于 T 的通用类的成员?
- typo3 - TYPO3 10.4.12 optionSplit in IMAGE srcset
- r - 循环数据框的列
- c - 错误:C + 多线程中通过 TCP 套接字传输文件的 Seg 错误
- reactjs - 如何在 useEffect() 中进行查询以避免 InvalidHookError?
- .net-core - MaxRequestBodySize 不能在带有 Azure 应用服务的网络服务器中工作
- python - 使用 discord.py 的可选输入