Como posso paralelizar este script O365 do powershell?

0

O script abre uma conexão com o O365 e depois percorre todas as caixas de correio procurando regras da caixa de entrada que provavelmente são mal-intencionadas.

Na nossa organização de caixas de correio de 12K, esse script requer mais de 24 horas para ser executado.

$CloudCredentials = import-clixml C:\tools\CloudCreds.xml
Write-Host "Connecting To Exchange Online..." -foregroundcolor white
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell '
                        -Credential $CloudCredentials -Authentication Basic -AllowRedirection -WarningAction SilentlyContinue
Import-PSSession $Session -Prefix Cloud -DisableNameChecking -AllowClobber | Out-Null
Connect-MsolService -Credential $CloudCredentials
$MBs = Get-CloudMailbox -ResultSize Unlimited
foreach ($MB in $MBs) {    
    $Rules=@()
    $Rules += Get-CloudInboxRule -Mailbox $MB.UserPrincipalName -WarningAction SilentlyContinue
    if ($Rules.Length -gt 0) {
        foreach ($R in $Rules) {
            if (($R.Name -eq "postmaster") -or
                ($R.Name -eq ".net") -or
                ($R.Name -eq ".com") -or
                ($R.Name -eq ".org") -or
                ($R.Name -eq ".")
            )
            {
                write-host $MB.UserPrincipalName
                #Remove-CloudInboxRule -Mailbox $MB.UserPrincipalName -Id $R.Name -Confirm:$false
            }
        }
    }
}
    
por Brian Hampson 12.10.2017 / 16:58

0 respostas