我正在编写查询以捕获Azure虚拟机磁盘详细信息并将其保存在阵列中。此虚拟机有两个磁盘。遗憾的是,我的阵列被第二个磁盘覆盖。即,第二个磁盘的详细信息出现两次,而不是每个磁盘的每一行。
$t = @()
$array =@()
foreach ($disk in $r.storageProfile.DataDisks.Name) {
$t= Get-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $disk
$ReportDetails.VMName = $r.Name
$ReportDetails.DiskName = $t.Name
$ReportDetails.DiskSizeGB= $t.DiskSizeGB
$ReportDetails.sku= $t.Sku.Name
$ReportDetails.Lun= ($r.storageProfile.DataDisks | Where-Object -filterscript {$_.Name -eq $disk}).lun
$ReportDetails.Caching= ($r.storageProfile.DataDisks | Where-Object -filterscript {$_.Name -eq $disk}).Caching
$ReportDetails.DiskIOPSReadWrite= $t.DiskIOPSReadWrite
$ReportDetails.DiskMBpsReadWrite = $t.DiskMBpsReadWrite
$ReportDetails
$array += $ReportDetails
}
$array | Out-GridView
当我打印$ReportDetails
的值时,它在两次迭代中正确地显示了正确的数据。
但是,array()
两次显示第二个磁盘。
1条答案
按热度按时间zbdgwd5y1#
根本不确定变量
$ReportDetails
是什么样的,但我认为您的意思是获得一个对象数组,这些对象具有关于每个磁盘的选定属性。大概是这样的