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
}
}
}
}