Do Untill loop using Powershell RRS feed

  • Question

  • Hi All,

    I have a requirement to

    1.move a Database from one DB to another DB

    2. Wait till the status is completed

    3.REmove the Move request from User

    4.Move to next workflow.

    I have used the Exchange AD IP (MS Orchestrator) to Create a new Moverequest and I have a put a PS script to check the status till its completed.

    The Problem i face it when i run them it quits from the loop and executes the next workflows to remove the Moverequest which fails as the status shows that its still in progress. Can someone please guide where I am going wrong. 

    $Stoploop = $false
    [int]$Retrycount = "0"
    do {
     try {
     $Move = Get-MoveRequest -Identity 'Identity'
     $Request = $Move.Status
     If ($Request -eq 'Completed')
     $Stoploop = $true
     catch {
     if ($Retrycount -gt 10){
     $Stoploop = $true
     else {
     If (($Request -eq 'Inprogress') -or ($Request -eq 'Queued') -or ($Request -eq 'CompletioninProgress'))
     Start-Sleep -Seconds 30
     $Retrycount = $Retrycount + 1
    Until ($Stoploop -eq $false)


    • Edited by JS2206 Thursday, June 21, 2018 8:49 AM Removed
    • Moved by Bill_Stewart Tuesday, July 31, 2018 2:59 PM Abandoned
    Thursday, June 21, 2018 8:49 AM

All replies

  • What is the purpose of Try/Catch here?  It will never be executed.


    Thursday, June 21, 2018 9:06 AM
  • Hi,

    It was intended to catch any error. Could you please suggest a better way.


    Thursday, June 21, 2018 12:11 PM
  • Why are you looping like that.

        sleep 30
    Until((Get-MoveRequest -Identity 'Identity').Status -eq 'Completed')


    Thursday, June 21, 2018 12:14 PM
  • Never knew it could be done this easy. Thank you so much jrv.


    Thursday, June 21, 2018 12:42 PM