2017-09-15 2 views
1

ich folgend in einem Do-bis-Block Schleife bin mit bis ein bestimmte Exchange Online Migrationsstatus vorhanden ist:Powershell-Where-Object wie mehrere Stringwerte

(Get-Migrationbatch -Identity $MigrationBatchName | Where {$_.Status -like "Completed" -or "CompletedWithErrors" -or "Corrupted" -or "Failed" -or "Stopped"}) 

Allerdings gibt die oben noch einen Job mit dem Status "Syncing" und setzt das Script also trotzdem fort.

Ich habe versucht -match, -eq aber immer noch das Gleiche.

Was fehlt mir?

+0

können Sie nach, was 'Get-Migration -Identity $ MigrationBatchName' Sie bekommt? Sie verwenden auch 'oder' falsch, möglicherweise, warum Sie das Problem bekommen. Funktioniert auch mit nur 'Where {$ _. Status-like" Completed "} – ShanayL

+0

" Get-Migrationbatch -Identity $ MigrationBatchName "gab den in der Variablen angegebenen Job mit dem Status" Synchronisierung "zurück. Ich benutze einfach "Where {$ _. Status-like" Completed "}" hat funktioniert, dachte aber, ich hätte das vorher richtig gemacht. Wie soll ich - oder dann? – jshizzle

Antwort

5

Sie haben es zu schreiben wie folgt aus:

(Get-Migrationbatch -Identity $MigrationBatchName | Where {($_.Status -like "Completed") -or ($_.Status -like "CompletedWithErrors") -or ($_.Status -like "Corrupted") -or ($_.Status -like "Failed") -or ($_.Status -like "Stopped")}) 

eine andere Art und Weise hier, es zu tun:

$valuesToLookFor = @(
    'Completed', 
    'CompletedWithErrors', 
    'Corrupted', 
    'Failed', 
    'Stopped') 

(Get-Migrationbatch -Identity $MigrationBatchName | 
    Where-Object { $valuesToLookFor -contains $_.Status }) 
+1

Sie haben mich dazu geschlagen. – ShanayL

+1

Ah netter Dank. Ich hatte diese Methode schon ausprobiert, benutzte aber -eq statt -like .... doh! Ich habe angefangen, mit einem Array herumzuspielen, aber es hat wieder vergessen, den -contains-Schalter anstelle von -like zu verwenden. Ich habe gerade die obige Array-Methode versucht, aber überhaupt kein Ergebnis erhalten! – jshizzle

+0

Welche Version von PowerShell verwenden Sie? – JamesQMurphy