2017-01-12 2 views
0

J'essaie d'obtenir une liste de toutes les machines virtuelles dans toutes mes tâches de sauvegarde Veeam. J'ai écrit ceciProblème avec la logique 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 

mais il ne recrache que les données d'un travail (il y en a 5). Je suppose que c'est à cause d'une erreur de logique dans la boucle foreach mais je ne le vois pas. Quelqu'un peut-il aider?

+3

mouvement '$ MasterList + = $ MyObject' intérieur dernière boucle foreach – 4c74356b41

+0

' $ MasterList = @ (foreach ($ job dans $ jobs) {$ backupJobObjects = Obtenir-VBRJobObject -Job $ job; foreach ($ backupJobObject dans $ backupJobObjects) {Nouvel objet PSObject -Property @ {Name = $ backupJobObject.Name}}}) ' – PetSerAl

+0

l'a fait, merci! – Pickle

Répondre

0

Comme par le par le commentaire de 4c74356b41

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

est comment la dernière boucle foreach devrait ressembler