Posts tagged: Exchange 2007

Filter les MailContacts sur un nom de domaine.



Je souhaite filter les MailContacts qui transferent les messages vers un domaine spécifique.
En cette période de grand ménage, je cherche a exporter la liste des MailContacts obsolètes.

Get-MailContact -ResultSize unlimited | Where-Object { $_.ExternalEmailAddress -like "*@sc.domain.com" } | Select-Object DisplayName,Alias,ExternalEmailAddress | Export-Csv -Path .\Export\Old_MailContacts.csv



Lundi janvier 31st, 2011 in , , , | No Comments »

Extraire l’espace d’adressage d’un connecteur.



Voici comment extraire rapidement l’espace d’adressage d’un connecteur d’envoi SMTP Exchange 2007.

$conn = Get-SendConnector -Identity "ToExtRouters"
$conn.AddressSpaces | Select-Object Domain



Lundi novembre 15th, 2010 in , , , , | No Comments »

Lister les utilisateurs absents de groupes



Si vérifier qu’un utilisateur n’est pas membre d’un groupe est rapide

Get-QADUser -Identity "louis.defunes" -NotMemberOf "Gendarmerie"

ou si lister les utilisateurs d’un OU qui ne sont pas membres d’un groupe est facile,

Get-QADUser -SearchRoot "domain.local/StTropez" -SizeLimit 0 -NotMemberOf "Gendarmerie"

faire la même chose pour tous les utilisateurs d’une OU pour plusieurs groupes est plus compliquée.
Voici donc comment lister les utilisateurs d’un OU absents de deux groupes.

$ou = Read-Host "Enter the OU name"
$fullou = "domain.local/" + $ou
$group1 = "Gendarmerie"
$group2 = "Port"
Get-Mailbox -ResultSize Unlimited -OrganizationalUnit $ou | where {Get-QADUser $_.alias -NotMemberOf $group1 } | where {Get-QADUser $_.alias -NotMemberOf $group2 }



Vendredi novembre 5th, 2010 in , , , | 2 Comments »

Vérifier et activer la politique d’adresses e-mail.



Utiliser cette méthode pour vérifier qui n’applique la politique d’adresses e-mail.

Get-Mailbox -ResultSize unlimited -OrganizationalUnit "domain.local/Paris" | Where-Object { $_.EmailAddressPolicyEnabled -eq $false } | ft displayname,alias,PrimarySmtpAddress

Dans mon cas, j’applique ce script pour savoir si la politique peut être appliquée sans qu’elle modifie l’adresse SMTP principale.
Si c’est le cas, je l’applique.

Get-Mailbox -ResultSize unlimited -OrganizationalUnit "domain.local/Paris" | Where-Object { $_.EmailAddressPolicyEnabled -eq $false } | foreach {
$normalsmtp = $_.alias + "@domain.com"
$prismtp = $_.PrimarySmtpAddress
if ( $normalsmtp -ne $prismtp) {
$_.displayname
}
Else{
Set-Mailbox -Identity $_.alias -EmailAddressPolicyEnabled $true
}
}



Vendredi octobre 22nd, 2010 in , , , | No Comments »

Modification des droits sur les Databases.



Certaines applications connectées aux serveurs Exchange nécessite des droits pour intéragir avec les boites aux lettres.
C’est le cas d’applications type messagerie unifiées Astraa, Cisco… qui utilisent le connecteur IMAP pour déposer des messages et vérifier si le message vocal a été lu.

Get-MailboxDatabase -Server CCR004 | Where-Object { $_.name -match "IDF"} | foreach {
$dn = $_.DistinguishedName
Add-ADPermission -Identity $dn -User "messucp.idf" -ExtendedRights Send-As
Add-ADPermission -Identity $dn -User "messucp.idf" -ExtendedRights Receive-As
}



Modifier les adresses de MailContacts.



Modifier le domaine de l’adresse externe sur tous les MailContacts d’un OU.

$nldomcontact = Get-MailContact -OrganizationalUnit "domain.local/NL" -ResultSize unlimited | Where-Object { $_.ExternalEmailAddress -match "@domino.domain.com" }
foreach ($contact in $nldomcontact){
$extsmtp = "SMTP:" + $contact.alias + "@nl.domain.com"
Set-MailContact -Identity $contact -ExternalEmailAddress $extsmtp
}



Jeudi octobre 21st, 2010 in , , | No Comments »

Identifier les clients qui utilisent un connecteur de réception.



Permet de visualiser les IP des clients qui utilisent un connecteur de réception d’un serveur de transport.

Get-MessageTrackingLog -ResultSize Unlimited -Server HUB001 -Start "20/10/2010 15:50:00" | Where-Object { $_.ConnectorId -match "open" } | Select-Object ClientIP -Unique | Sort-Object ClientIP }



Mercredi octobre 20th, 2010 in , , , | No Comments »

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 }



Mercredi octobre 20th, 2010 in , , , | No Comments »

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



Mardi octobre 19th, 2010 in , , , | No Comments »

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 }



Mercredi octobre 13th, 2010 in , , | 2 Comments »