Exchange pour de vrai
https://sourcedaddy.com/windows-7/troubleshooting-exchange-server.html
Introduction
Cette page est destinée à contenir de vraies informations pratiques concernant les serveurs Exchange et comment les administrer, notamment en PowerShell.
Microsoft Exchange Server est un groupware (logiciel de groupe de travail) pour serveur de messagerie électronique créé par Microsoft. Il existe aussi en SaaS avec Office365.
Console ECP
La console ecp est accessible via https://<adresse>/ecp.
Elle permet de gérer la messagerie depuis une GUI.
Calendriers
Les calendriers (collectifs) sont liés à une adresse de type *utilisateur* (et non pas ressource, ce serait si logique). Un calendrier donne une adresse, à laquelle les gens sont sensés pouvoir accéder par OWA > ouvrir une autre boîte mail.
Ci-dessous, une commande pour donner des droits sur ce genre de calendrier à quelqu'un (testé mais pas validé...):
<syntaxhighlight lang="pshell"> PS Z:\> Add-MailboxFolderPermission -Identity "calendrier" -User "autre.user" -AccessRights "Contributor" FolderName User AccessRights
---- ------------
Haut de la banque... Anaise Leroy {Contributor}
PS Z:\> Get-MailboxFolderPermission -identity orientation-calendrier | fl
</syntaxhighlight>
Commandes PowerShell
Sources :
<pdf>Fichier:Exch.pdf</pdf>
Use the following commands to add or remove an email alias using Powershell commands:
To check current exchange mailbox aliases:
'''Get-Mailbox mailboxname | select -expand emailaddresses alias'''
To add an email alias to an exchange mailbox:
'''Set-Mailbox mailboxname -EmailAddresses @{Add='alias@somedomain.co.uk'}'''
To delete an email alias from an exchange mailbox:
Set-Mailbox mailboxname -EmailAddresses @{Remove=’alias@somedomain.co.uk’}
Re-lier une boîte dans une configuration avec une boîte liée
Dans un contexte avec plusieurs domaines AD, il se peut que les boîtes d'un domaine soient liées au comptes sur un autre domaine. Chaque boite est liée grâce au SID, un identifiant unique qui désigne le compte sur le domaine AD lié. Nous avons donc :
- Un domaine 1 avec un AD.
- Un autre domaine 2, avec des boîtes et avec son propre AD; mais pour une raison X les boites du domaine 2 sont liées au domaine 1.
Parfois, certaines boîtes peuvent se retrouver liées au mauvais SID. Voilà comment faire :
<syntaxhighlight lang="Powershell"> Get-Mailbox xxx@yyy | fl #On récupère les infos Disable-Mailbox xxx@yyy #On désactive la boîte d'une façon ou d'une autre Connect-Mailbox -LinkedDomainController "adc.domaine1" -LinkedMasterAccount "domaine1\madametruc" -Alias "truc" -Identity "Josiane Truc" -Database BASE-DB1 </syntaxhighlight>
Troubleshooting
MessageTrackingLog
Similaire à un maillog Linux, mais en moins pratique.
<syntaxhighlight lang="powershell"> Get-MessageTrackingLog -Recipients justine@domaine.fr Get-MessageTrackingLog -ResultSize Unlimited | Where-Object {$_.Recipients -like "*sarah.connor*"} Get-MessageTrackingLog -Start "09/30/2019 08:00:00" -End "09/30/2019 20:00:00" -Sender "luke.skywalker@rebellion.org" </syntaxhighlight>
On dispose bien entendu des autres logs Windows (voir Analyse de logs), mais ils ne sont pas pratiques non plus.
Commandes de test
PowerShell contient de nombreux cmdlets de test, et il serait bête de ne pas s'en servir !
On peut les voir toutes avec :
<syntaxhighlight lang='powershell'>
- Vérification du statuts des migrations en cours :
Get-MoveRequest | where status -eq "InProgress" | Get-MoveRequestStatistics
- Vérification des users sur une database particulière :
Get-Mailbox -database <db_name>
- Récupération des noms de databases :
Get-MailboxDatabase
- Récupération des données Mailbox pour un utilisateur :
Get-Mailbox <user>
- Récupération des données statistiques d’une mailbox :
Get-mailbox <user> | get-mailboxstatistics
- Pour obtenir le maximum d’info, rajouter en fin de ligne : | fl
</syntaxhighlight>
Commandes de suivi des migrations
<syntaxhighlight lang="pshell">