Я пытался проверить почтовые ящики на предмет определенного списка пользователей (около 14 тыс. Пользователей), поскольку возможно, что было создано вредоносное правило.
Я создал очень простой скрипт PowerShell, чтобы достичь этого, но, очевидно, для его завершения потребовалось более 12 часов. Я нашел многопоточную опцию для обработки всех этих данных: SplitPipeline, но я даже не знаю, как начать.
После установки и импорта модуля и входа в O365 я пытаюсь это сделать (пожалуйста, не надо, я только начинаю в этом мире PowerShell, я не эксперт):
$file = Get-Content userlist.txt
$outputFile = "outputFile.txt"
$data = @{
Count = $file.Count
Done = 0
}
$file | Split-Pipeline -Count 10 -Variable data {process{
[System.Threading.Monitor]::Enter($data)
try
{
$done = ++$data.Done
}
finally
{
[System.Threading.Monitor]::Exit($data)
}
Write-Progress -Activity "Done $done" -Status Processing -PercentComplete (100*$done/$data.Count)
$User2Check = $_
Write-Host "Checking $User2Check"
get-mailbox $User2Check | Select identity
}} | Set-Content $outputFile
Результатом является типичное сообщение: термин «get-mailbox» не распознается как имя командлета, похоже, что SplitPipeline не знает, что я вошел в систему с O365.
У вас есть идеи?