Как использовать SplitPipeline с командлетами o365 - PullRequest
1 голос
/ 05 июля 2019

Я пытался проверить почтовые ящики на предмет определенного списка пользователей (около 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.

У вас есть идеи?

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