Permet de tracer un messages en vérifiant tous les serveurs de transport en une commande.
Get-ExchangeServer | Where-Object { $_.ServerRole -eq "HubTRansport" } | foreach { Get-MessageTrackingLog -Server $_.name -Sender testdemessage@gmail.com -Start "20/10/2010 12:50:00" | ft Timestamp,EventId,ClientIp,ServerIp,Sender,Recipients -AutoSize } |
Au fil du temps, des migrations et des changements du nom de domaine, les boites aux lettres de votre organisation ont accumulées les adresses e-mail secondaires.
Ce script permet de faire le nettoyage dans ces adresses e-mail secondaires.
Get-Mailbox -ResultSize Unlimited | Foreach {
$a = $_.emailaddresses;
$b = $_.emailaddresses;
foreach ($e in $a)
{
if ($e.tostring() -match "@levieuxdomaine.com" -or $e.tostring() -match "@leplusvieuxdomaine.com" )
{
$_.Displayname
$b -= $e;
set-mailbox -Identity $_.alias -EmailAddresses $b
}
}
} |
Permet de supprimer les boites déconnectées sur le serveur de boites aux lettres.
Après suppression, les boites sont conservées pendant un certain temps sur le serveur en mode déconnecté.
Cette procédure permet de les supprimer définitivement.
Afficher les boites déconnectées d’une Database.
Get-MailboxStatistics -Database "CCR004\is_Paris_5" | where-object { $_.DisconnectDate -ne $null } | Select DisplayName,MailboxGuid |
Les supprimer automatiquement:
Get-MailboxStatistics -Database "CCR004\is_Paris_5" | where-object { $_.DisconnectDate -ne $null } | ForEach { Remove-Mailbox -Database "CCR004\is_Paris_5" -StoreMailboxIdentity $_.MailboxGuid } |
L’objectif est d’enlever les boites aux lettres de moins de 400MB d’un groupe qui sert à mettre en place des exclusions de quotas.
La suite de Ajoute de boites aux lettres dans un groupe.
$group = "GR_EXCEPTION_QUOTA"
Get-QADGroupMember -Identity $group | foreach {
$user = $_.UserPrincipalName
$userlt400 = Get-MailboxStatistics -Identity $user -ErrorAction silentlycontinue
if ( $userlt400.totalitemsize -lt 400MB ) {
Remove-QADGroupMember -Identity $group -Member $userlt400.LegacyDN
}
} |
Si vos boites n’ont pas de quotas, il est tout de même préférable de configurer un garde fou.
Ce script va configurer un quota automatiquement par rapport à la taille actuelle de la boite.
Get-Mailbox -Server CCR001 -ResultSize unlimited | where-Object { $_.database -match "paris" -and $_.UseDatabaseQuotaDefaults -eq $false -and $_.CustomAttribute6 -ne "NoQuota"} | foreach {
$user = $_.identity
$userstats = Get-MailboxStatistics -Identity $user
$mbsize = $userstats.TotalItemSize
$sendquota = $userstats.TotalItemSize + 500MB
$warquota = $userstats.TotalItemSize + 400MB
Write-Host $user.displayname $mbsize $sendquota $warquota -Separator ","
Set-Mailbox -Identity $user -ProhibitSendQuota $sendquota -IssueWarningQuota $warquota
} |
Ce script permet de d’appliquer un marquage sur les attributs personnalisés des boites dont le compte AD est désactivé.
Il est ensuite possible d’appliquer plus facilement un filtre afin de déplacer toutes ces boites aux lettres.
Get-Mailbox -Database ccr03\is_paris_10 | foreach {
$user = Get-QADUser -Identity $_.alias
if ($user.AccountIsDisabled -eq "true"){
$user
Set-Mailbox -Identity $user.UserPrincipalName -CustomAttribute4 "Disabled_on_Paris_10"
}
} |
Ce Script automatise l’exportation d’une boite aux lettres dans un fichier PST.
Pour rappel, il y a des pré-requis pour faire des exportations de boites aux lettres.
1- OS 32bits (XP ou Windows Server) (Pas testé sur Seven)
2- Client Outlook. (Outlook 2003 SP2 Minimum)
3- Exchange 2007 Management Tools
$mbal = Read-Host "Please enter the mailbox"
$musr = [Environment]::UserName
Add-MailboxPermission -Identity $mbal -AccessRights FullAccess -InheritanceType All -User $musr
$pst = "I:\PSTDATA\" + $mbal +".pst"
Export-Mailbox -Identity $mbal -PSTFolderPath $pst -Confirm:$false
Remove-MailboxPermission -Identity $mbal -AccessRights FullAccess -InheritanceType All -User $musr -Confirm:$false |
Permet d’importer une adresse SMTP secondaire sur une liste de boites aux lettres.
Import-Csv -Path .\import_secondary_smtp.csv | foreach {
$mailbox = $_.identity
$secsmtp = $_.sec_smtp
$temp = Get-Mailbox -Identity $mailbox
$temp.emailaddresses.add($secsmtp)
Set-Mailbox -Instance $temp
} |
Cette commande permet de retrouver les boites qui contiennent un dossier spécifique.
Get-Mailbox -resultsize unlimited -Server CCREX003 | Get-MailboxFolderStatistics | where-object {$_.Name -eq "Private" } | ft Identity |
Exporter toutes les boites aux lettres où a accès un utilisateur.
Get-Mailbox -Server CCR002 -Resultsize Unlimited | where-object { $_.database -match "SCO" } | Get-MailboxPermission | Where-Object { $_.AccessRights -eq "FullAccess" -and $_.IsInherited -match "false" -and $_.user -match "bluteau" } | Select-Object Identity,User| Export-Csv -Path rightsonmb.csv |
Ensuite supprimer ces délégations.
Import-Csv -Path .\rightsonmb.csv | foreach { Remove-MailboxPermission -Identity $_.identity -AccessRights FullAccess -User $_.user } |