Archive

Archives pour la catégorie ‘Exchange 2007’

Tracer un message sur tous les HUB.

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 }

Categories: Exchange 2007 Tags: ,

Nettoyer les adresses e-mail des boites.

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

Supprimer les boites déconnectées.

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 }

Categories: Exchange 2007 Tags:

Enlever les petites boites d’un groupe.

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

Categories: Exchange 2007 Tags: , ,

Configurer un garde fou sur les boites.

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
}

Marquer les boites dont le compte est désactivé.

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

Exporter une boite aux lettres en PST.

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

Importer une adresses secondaire sur des boites.

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
}

Rechercher un dossier dans toutes les boites.

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

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

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 }