Продолжить сценарий, как только поиск будет выполнен - PullRequest
0 голосов
/ 21 октября 2019

У меня есть команда в скрипте, чтобы выполнить поиск соответствия (Microsoft Exchange), и это занимает ~ 20 минут, и мне нужно ждать, пока это будет сделано для использования powershell. Мне нужно продолжить сценарий автоматически, как только поиск будет завершен. Вот пример:

    ShowSearchResults 
    Write-Host "You can find search results under the following path: C:\ExportResults" -ForegroundColor Green
    Write-Host "Do you want to delete found mails? (y/n)" -ForegroundColor Green
    New-ComplianceSearchAction -SearchName $FinalSearchName  -PurgeType softdelete -Purge

И когда я запускаю «ShowSearchResults», мне нужно подождать, как только это будет сделано. Мне нужно показать «Write-Host ...», как только поиск будет завершен, пока мне не понадобится моя сессия.

Я пробовал с помощью Start-Job, но я не нашел решения таким образом

1 Ответ

0 голосов
/ 21 октября 2019

Ваш код кажется мне хорошим, за исключением одного искаженного утверждения.

PowerShell, как и большинство языков сценариев, по умолчанию будет выполнять команды / операторы в вашем сценарии сверху вниз.

Таким образом, ваш Write-Host будет выполнен только после завершения предыдущей команды.

Что касается оператора "искаженного представления", вы, возможно, хотели использовать Read-Host, чтобы пользователь выбрал мягкое удаление вашей последнейпоиск. Поэтому после небольших исправлений ваш код выглядит следующим образом:

#1
$ComplianceSearchJob = Start-Job -ScriptBlock {

    ShowSearchResults

    Write-Host "You can find search results under the following path: C:\ExportResults" -ForegroundColor Green

    # Invoke-Item "C:\ExportResults\SearchResults.csv"

}

#2
Receive-Job $ComplianceSearchJob -Keep

#3
$DeleteChoice = Read-Host "Do you want to delete found mails? (y/n): " -ForegroundColor Green
if($DeleteChoice -eq "Y"){ # case insensitive
    New-ComplianceSearchAction -SearchName $FinalSearchName  -PurgeType softdelete -Purge
}

РЕДАКТИРОВАТЬ 1: Добавлено Invoke-Item, чтобы открыть файл C:\ExportResults\SearchResults.csv в комментарии.

РЕДАКТИРОВАНИЕ 2: Используется Start-Job, чтобы разрешить запуск в качестве фонового процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...