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