2017-01-15 14 views
0

VEEAMレプリケーションジョブを作成する必要があります。ジョブを作成するときは、SourceNetworksとTargetNetworksのリストを提供する必要があります。私は、テキストで一致するリストを持っているCSVファイルを持っているし、次に、一致するネットワークオブジェクトを取得するためのコマンドレットを実行します。オブジェクトまたはアレイへのオブジェクトの格納と読み取り

CSV:

SourcePortGroup, TargetPortGroup 
VLAN 103,LAN0_DMZ 
VLAN 120,LAN0_JDE 
VLAN 121,LAN0_IT-BDC

私は私が使用してネットワークオブジェクトを取得するforeachのを書いた:

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 
    } 
} 

デバッグ、私はオブジェクトであり、正しい結果を取得すると、この作品。しかし、新しいオブジェクトや配列にそれぞれを格納する必要があります。後でジョブを作成するときに、ソースとターゲットのマッピングを簡単に使用することができます。

私は結果を保存し、必要なときに呼び出すのが最善の方法であるということには何の手がかりもありません。

Get-VBRServer文はあなたが例えばネットワークをターゲットにマッピングソースのハッシュテーブルを使用することができ、反復ごとに1つだけのアイテム生成すると仮定すると
+0

'$ VAR =は、Get-VBRServerを...' –

+0

[OK]を、これはループです。だから私はget-vbrserverを100回呼びます。そして私はそれらの結果を保存する必要があります。 – Gabrie

答えて

0

$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 } 
    } 
} 
関連する問題