Archive

Articles taggués ‘Boite aux lettres’

Rechercher un dossier dans toutes les boites.

Cette commande permet de retrouver les boites qui contiennent un dossier spécifique.

?View Code POWERSHELL
Get-Mailbox -resultsize unlimited -Server CCREX003 | Get-MailboxFolderStatistics | where-object {$_.Name -eq "Private" } | ft Identity

Lister les boites où a accès un utilisateur.

Exporter toutes les boites aux lettres où a accès un utilisateur.

?View Code POWERSHELL
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.

?View Code POWERSHELL
Import-Csv -Path .\rightsonmb.csv | foreach { Remove-MailboxPermission -Identity $_.identity -AccessRights FullAccess -User $_.user }

Marquer les boites présentent dans une liste.

Permet de marquer garce aux « Custom Attributes » un liste de boites aux lettres présentent dans un fichier texte.
Cela me permet ensuite de faire des filtres pour des opérations de maintenance.

?View Code POWERSHELL
Import-Csv -Path .\movefromidf_9.txt | foreach {Set-Mailbox -Identity $_.displayname -CustomAttribute4 "movefromidf_9"}

Déplacement de boites aux lettres en masse.

J’ai beaucoup de boites aux lettres à déplacer ce soir.
L’opération consiste à déplacer des boites aux lettres de différentes Databases sources vers différentes Databases cibles, je me suis donc prévu un petit plan.
Un fois que j’ai préparé un beau p’tit fichier d’import qui définit qui va où, je positionne un « CustomAttribute » pour définir la Database cible sur les boites aux lettres à traiter.

?View Code POWERSHELL
Import-Csv -Path .\Move_Lundi.txt | Foreach { Set-Mailbox -Identity $_.displayname -CustomAttribute4 $_.target }

Je vérifie que tout est OK.

?View Code POWERSHELL
Import-Csv -Path .\Move_Lundi.txt | Foreach { Get-Mailbox -Identity $_.displayname | ft DisplayName,Database,CustomAttribute4 }

Pour pouvoir lancer plus déplacement en parallèle, je vais traiter les databases sources une par une.

?View Code POWERSHELL
Get-Mailbox -Database SRV001\DB_IDF_2 | Where-Object { $_.CustomAttribute4 -eq "Target_Monday_IDF_7" } | Move-Mailbox -TargetDatabase SRV001\DB_IDF_7

J’en lance plusieurs à la fois.

?View Code POWERSHELL
Get-Mailbox -Database SRV001\DB_IDF_3 | Where-Object { $_.CustomAttribute4 -eq "Target_Monday_IDF_7" } | Move-Mailbox -TargetDatabase SRV001\DB_IDF_5

Voila, c’est parti, j’attends la fin en gardant un oeuil sur les disques de logs.

Sécuriser une liste de distribution par un groupe.

Il est possible de sécuriser les listes de distribution par un groupe.
Les membres de ce groupe pourront utiliser les liste de distribution pour émettre des messages à la différence des autres boites aux lettres.

Il faut créer un groupe:

?View Code POWERSHELL
New-DistributionGroup -name "ACL_BAL_GROUP-Compta-Paris" -OrganizationalUnit "domain.local/Compta-Paris" -SamAccountName "ACL_BAL_GROUP-Compta-Paris" -Type Security

et positionner le groupe sur la liste de distribution:

?View Code POWERSHELL
Set-DistributionGroup -AcceptMessagesOnlyFromDLMembers "ACL_BAL_GROUP-Compta-Paris"

Copier les listes de distribution d’une boite.

Permet d’ajouter une boite dans les listes de distribution dont est membre un autre boite.

?View Code POWERSHELL
$srcuser = "goldorak"
$trgtuser = "albator"
Get-DistributionGroup -ResultSize unlimited -OrganizationalUnit "domain.local" | foreach {
$groupname = $_.name
Get-DistributionGroupMember -Identity $groupname | Where-Object { $_.Alias -eq $srcuser } | foreach {
$groupname
Add-DistributionGroupMember -Identity $groupname -Member $trgtuser 
#Remove-DistributionGroupMember -Identity $groupname -Member $srcuser
}
}

Filtrer les boites dans une fourchette de tailles.

Ce filtre affiche les boites de plus de 650MB et moins de 900MB d’une database et qui n’ont pas le CustomAttribute4 renseigné.

Ce filtre me permet ensuite de lancer un move-mailbox afin d’alléger des databases trop chargées.

?View Code POWERSHELL
Get-Mailbox -Database ccr001\DB_SG_Paris_5 | Where-Object { $_.CustomAttribute4 -ne "mailboxwithblackberry" } | foreach { Get-MailboxStatistics -Identity $_.alias | Where-Object { $_.totalitemsize -gt 650mb -and $_.totalitemsize -lt 900Mb }} | ft displayname, database, @{ expression={$_.TotalItemSize.Value.ToMB() } ;label="TotalItemSize (MB)" }

Afficher les boites restreintes par un quota.

Affiche les boites de plus de 500MB qui ont l’héritage de configuration des quotas actif.
J’ai ajouté un filtre sur le serveur et les databases d’une filiale.

?View Code POWERSHELL
Get-MailboxStatistics -Server CCR004| Where {$_.Database -match "paris" -and $_.TotalItemSize -gt 500MB} | ForEach-Object { $size = $_.TotalItemSize ; Get-mailbox -Identity $_.displayname | where-object { $_.UseDatabaseQuotaDefaults -eq "true" }}| Select-Object displayname,alias,database, @{ expression={$size.Value.ToMB() } ;label="TotalItemSize (MB)" }

Affiche la taille des boites d’une OU.

Permet d’afficher les taille des boites se trouvant dans une OU.

?View Code POWERSHELL
Get-Mailbox -OrganizationalUnit "domain.local/OU_FI00/OU_Compta" | Get-MailboxStatistics | Sort-Object -Property TotalItemSize -Descending | ft displayname, database, @{ expression={$_.TotalItemSize.Value.ToMB() } ;label="TotalItemSize (MB)" }

Exchange User Monitor.

Exmon est un outil permetant de visualiser en temps réelle l’utilisation du serveur de boites aux lettres par les utilisateurs.

exmon02

A télécharger ici.

Il m’est arrivé d’avoir des problème pour le lancer.

Message: Unknown StartTrace Error (183)

En passant les commandes suivantes, j’ai réussi à resoudre le problème.

Tracelog -l
Tracelog -stop "Exchange Event Trace"

Tracelog à télécharger ici.