Arrays 在对象或数组中存储和读取对象

Arrays 在对象或数组中存储和读取对象,arrays,powershell,object,Arrays,Powershell,Object,我需要创建VEEAM复制作业。创建作业时,我需要提供SourceNetworks和匹配TargetNetworks的列表。我有一个CSV文件,其中包含文本形式的匹配列表,然后运行cmdlet检索匹配的网络对象 CSV: 这在调试时起作用,我得到了正确的结果,这是一个对象。但现在我需要将它们存储在一个新对象或数组中,以便以后创建作业时可以轻松使用源和目标映射 我不知道最好的方法是存储结果,然后在需要时调用它们 假设每个Get VBRServer语句每次迭代只生成一个项目,例如,您可以使用哈希表将源

我需要创建VEEAM复制作业。创建作业时,我需要提供SourceNetworks和匹配TargetNetworks的列表。我有一个CSV文件,其中包含文本形式的匹配列表,然后运行cmdlet检索匹配的网络对象

CSV:

这在调试时起作用,我得到了正确的结果,这是一个对象。但现在我需要将它们存储在一个新对象或数组中,以便以后创建作业时可以轻松使用源和目标映射


我不知道最好的方法是存储结果,然后在需要时调用它们

假设每个
Get VBRServer
语句每次迭代只生成一个项目,例如,您可以使用哈希表将源网络映射到目标网络:

$networks = @{}
foreach ($item in $csvlist) {
  $key = '{0}/{1}' -f 
  $networks[$key] = @{
    'Source' = Get-VBRServer -Name $SourceESXi |
               Get-VBRViServerNetworkInfo |
               Where-Object { $_.NetworkName -eq $Mapping.SourcePortGroup }
    'Target' = Get-VBRServer -Name $TargetESXi |
               Get-VBRViServerNetworkInfo |
               Where-Object { $_.NetworkName -eq $Mapping.TargetPortGroup }
  }
}

$var=Get VBRServer…
可以,但这是一个循环。因此,我将调用get vbrserver 100次。我需要存储这些结果。
foreach ($item in $csvlist) {
  Get-VBRServer -Name $SourceESXi | Get-VBRViServerNetworkInfo | Where-Object {
    $_.NetworkName -eq $Mapping.SourcePortGroup
  }
  Get-VBRServer -Name $TargetESXi | Get-VBRViServerNetworkInfo | Where-Object {
    $_.NetworkName -eq $Mapping.TargetPortGroup
  }
}
$networks = @{}
foreach ($item in $csvlist) {
  $key = '{0}/{1}' -f 
  $networks[$key] = @{
    'Source' = Get-VBRServer -Name $SourceESXi |
               Get-VBRViServerNetworkInfo |
               Where-Object { $_.NetworkName -eq $Mapping.SourcePortGroup }
    'Target' = Get-VBRServer -Name $TargetESXi |
               Get-VBRViServerNetworkInfo |
               Where-Object { $_.NetworkName -eq $Mapping.TargetPortGroup }
  }
}