2017-01-12 142 views
0

我試圖獲取所有Veeam備份作業中所有虛擬機的列表。我寫這個Foreach邏輯故障

#Add Veeam snapin 
Add-PSSnapin VeeamPSSnapin 

#variables 
$Masterlist = @() 
$jobs = Get-VBRJob 

foreach($job in $jobs) { 

    $backupJobObjects = Get-VBRJobObject -Job $job 

    foreach($backupJobObject in $backupJobObjects) { 
     $MyObject = New-Object PSObject -Property @{ Name = $backupJobObject.Name } 
    } 
    $Masterlist += $MyObject 
} 

$Masterlist | sort-object -Property Name 

但它只從一個工作(有5)吐出數據。我認爲這是因爲foreach循環中的一些邏輯錯誤,但我沒有看到它。誰能幫忙?

+3

舉動'$ Masterlist + = $ MyObject'最後foreach循環內 – 4c74356b41

+0

'$ Masterlist = @( foreach($ job中的$ job){$ backupJobObjects = Get-VBRJobObject -Job $ job; foreach($ backupJobObject in $ backupJobObjects){New-Object PSObject -Property @ {Name = $ backupJobObject.Name}}})' – PetSerAl

+0

做到了,謝謝! – Pickle

回答

0

按照每註釋從4c74356b41

foreach($backupJobObject in $backupJobObjects) { 
     $MyObject = New-Object PSObject -Property @{ Name = $backupJobObject.Name } 
     $Masterlist += $MyObject  
} 

是最後的foreach循環應該如何看