none
Помогите написать цикл RRS feed

  • Вопрос

  • # Перенос в PST

    try {

        New-MailboxExportRequest -Mailbox $User -FilePath \\dfs\PST_Arhive\$mail.pst # перенос pst в архив

        Write-Host "Перенос в PST в архив запущен" -ForegroundColor GREEN

    }

    catch {

        Write-Host "Произошла ошибка переноса в PST в архив" -ForegroundColor Red

    }

    while ($request = Get-MailboxExportRequest -Mailbox $User){

        if ($request.status -eq 'Completed'){

                Write-Host "Перенос PST в архив завершен" -ForegroundColor GREEN

               

                break

                }

      

    }

    Здравствуйте. Пишу скрипт по автоматизации увольнения сотрудников. Одна из итераций сохранение почты в архив на сервер. Задача в том чтобы написать цикл который будет проверять статус экпорта. И если он не ‘Completed’ или ‘Failed’ уходить обратно на проверку.  С одним условием вроде разобрался. А вот как сделать 2 и более условия не разобрался.

    1. Добавить ещё один if  

    if ($request.status -eq 'Failed'){

                Write-Host "Перенос PST в архив завершен c ошибкой" -ForegroundColor Red

               

                break

                }

    и тогда он будет сначала проверять статус  Completed’, если true то прерывать цикл и не проверять следующий if, если false, то проверять следующий if, и там по аналогии с первым if?

       2. Куда воткнуть sleep?

    17 октября 2022 г. 19:02

Ответы

  • Разобрался. Получилось так.

    # Перенос в PST
    try {
        New-MailboxExportRequest -Mailbox $User -FilePath \\dfs\PST_Arhive\$mail.pst # перенос pst в архив
        Write-Host "Перенос в PST в архив запущен" -ForegroundColor Blue
    }

    catch {
        Write-Host "Произошла ошибка переноса в PST в архив" -ForegroundColor Red
    }

    $request = Get-MailboxExportRequest -Mailbox $User

    while ($request = Get-MailboxExportRequest -Mailbox $User){
        if ($request.status -eq 'Completed'){
                Write-Host "Перенос в PST в архив завершен" -ForegroundColor GREEN
                
                break
                }
    if ($request.status -eq 'Failed'){
                Write-Host "Перенос в PST в архив завершен ошибкой" -ForegroundColor RED
                
                break
                }
    else 
                {
                sleep 120
                Write-Host  "Перенос в архив всё еще продолжается" -ForegroundColor Blue
                }   
    }

    27 октября 2022 г. 6:19