Exchange Online est le service de messagerie cloud de Microsoft offrant des fonctionnalités d’email, calendrier et contacts.
📦 Installation et connexion
📌 Action 🧠 Commande PowerShell 🔧 Installer module Exchange Install-Module -Name ExchangeOnlineManagement -Force🔗 Se connecter Connect-ExchangeOnline🔗 Se connecter (MFA) Connect-ExchangeOnline -UserPrincipalName [email protected] ✅ Vérifier connexion Get-OrganizationConfig🚪 Se déconnecter Disconnect-ExchangeOnline -Confirm:$false
📧 Gestion des boîtes aux lettres
Types de boîtes aux lettres
📌 Type 💰 Licence requise 💼 Usage Utilisateur Office 365/M365 Boîte personnelle Partagée Aucune Équipe, service Ressource - Salle Exchange Online Plan 1 Réservation salles Ressource - Équipement Exchange Online Plan 1 Matériel partagé
📌 Action 🧠 Commande 📋 Lister toutes les boîtes Get-Mailbox -ResultSize Unlimited🔍 Rechercher boîte mail Get-Mailbox -Identity "[email protected] "👤 Créer boîte utilisateur New-Mailbox -Name "Jean Dupont" -UserPrincipalName "[email protected] " -FirstName "Jean" -LastName "Dupont"📮 Créer boîte partagée New-Mailbox -Name "Support" -PrimarySmtpAddress "[email protected] " -Shared🏢 Créer boîte ressource New-Mailbox -Name "Salle Réunion A" -Room -PrimarySmtpAddress "[email protected] "✏️ Modifier nom d’affichage Set-Mailbox -Identity "[email protected] " -DisplayName "Jean Dupont - IT"🗑️ Supprimer boîte mail Remove-Mailbox -Identity "[email protected] " -Confirm:$false🔒 Désactiver boîte mail Set-Mailbox -Identity "[email protected] " -AccountDisabled:$true
👥 Groupes de distribution
Types de groupes Exchange
📌 Type 🔧 Caractéristiques 💼 Usage Liste de distribution (DL) Liste statique, gestion manuelle Équipes, départements Liste de distribution dynamique (DDL) Basé sur critères AD automatiques Tous les managers, nouveaux employés Groupe de sécurité Peut être utilisé pour permissions Accès SharePoint + distribution Groupe Office 365 Intégré SharePoint/Teams Collaboration complète
📌 Action 🧠 Commande 📋 Lister tous les groupes Get-DistributionGroup -ResultSize Unlimited🆕 Créer groupe distribution New-DistributionGroup -Name "IT Team" -PrimarySmtpAddress "[email protected] "🆕 Créer liste dynamique New-DynamicDistributionGroup -Name "Tous IT" -Filter "Department -eq 'IT'"➕ Ajouter membre Add-DistributionGroupMember -Identity "IT Team" -Member "[email protected] "➖ Retirer membre Remove-DistributionGroupMember -Identity "IT Team" -Member "[email protected] "👁️ Voir membres Get-DistributionGroupMember -Identity "IT Team"✏️ Modifier description Set-DistributionGroup -Identity "IT Team" -Notes "Équipe informatique principale"🗑️ Supprimer groupe Remove-DistributionGroup -Identity "IT Team" -Confirm:$false
🔐 Permissions et délégations
Types de permissions
📌 Permission 🔧 Accès 💡 Usage typique FullAccess Lecture/écriture complète Assistante, suppléant SendAs Envoyer comme propriétaire Communication officielle SendOnBehalf Envoyer de la part de Délégation visible ReadPermission Lecture seule Audit, consultation
📊 Quotas et stockage
📌 Action 🧠 Commande 👁️ Voir quota boîte mail Get-Mailbox -Identity "[email protected] " | Select ProhibitSendQuota,ProhibitSendReceiveQuota⚙️ Modifier quota utilisateur Set-Mailbox -Identity "[email protected] " -ProhibitSendQuota 90GB -ProhibitSendReceiveQuota 100GB📈 Voir utilisation stockage Get-MailboxStatistics -Identity "[email protected] " | Select DisplayName,TotalItemSize,ItemCount📋 Top 10 plus grosses boîtes Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Sort TotalItemSize -Descending | Select -First 10 DisplayName,TotalItemSize
Limites de stockage par licence
📌 Licence 📦 Quota standard 📈 Archivage 💰 Coût supplémentaire Exchange Online Plan 1 50 GB Optionnel Archivage +/mois Office 365 E3 100 GB Inclus illimité - Office 365 E5 100 GB Inclus illimité - Boîte partagée 50 GB gratuit → 100GB avec licence E3 Disponible avec licence -
📊 Scripts d’export et gestion
Export liste des boîtes mail
# Export complet avec statistiques
$mailboxes = Get-Mailbox - ResultSize Unlimited
$results = foreach ($mailbox in $mailboxes) {
$stats = Get-MailboxStatistics - Identity $mailbox.UserPrincipalName
[ PSCustomObject ] @ {
DisplayName = $mailbox.DisplayName
UserPrincipalName = $mailbox.UserPrincipalName
MailboxType = $mailbox.RecipientTypeDetails
TotalSize = $stats.TotalItemSize
ItemCount = $stats.ItemCount
LastLogon = $stats.LastLogonTime
ProhibitSendQuota = $mailbox.ProhibitSendQuota
}
}
$results | Export-Csv - Path " C:\temp\ExchangeMailboxes.csv " - NoTypeInformation - Encoding UTF8
Export groupes de distribution et membres
# Export détaillé des groupes DL
$groups = Get-DistributionGroup - ResultSize Unlimited
$results = foreach ($group in $groups) {
$members = Get-DistributionGroupMember - Identity $group.Identity
foreach ($member in $members) {
[ PSCustomObject ] @ {
GroupName = $group.DisplayName
GroupEmail = $group.PrimarySmtpAddress
MemberName = $member.DisplayName
MemberEmail = $member.PrimarySmtpAddress
MemberType = $member.RecipientTypeDetails
}
}
}
$results | Export-Csv - Path " C:\temp\DistributionGroups.csv " - NoTypeInformation - Encoding UTF8
Création boîtes mail en masse via CSV
# Format CSV : DisplayName,UserPrincipalName,FirstName,LastName,Department
$users = Import-Csv - Path " C:\temp\NewMailboxes.csv " - Delimiter " ; "
foreach ($user in $users) {
try {
New-Mailbox - Name $user.DisplayName `
- UserPrincipalName $user.UserPrincipalName `
- FirstName $user.FirstName `
- LastName $user.LastName `
- Department $user.Department
Write-Host " ✓ Boîte créée : $ ( $user.DisplayName ) " - ForegroundColor Green
} catch {
Write-Host " ✗ Erreur création $ ( $user.DisplayName ) : $ ( $_ .Exception.Message ) " - ForegroundColor Red
}
}
Ajout membres groupes DL en masse
# Format CSV : GroupName,MemberEmail
$members = Import-Csv - Path " C:\temp\GroupMembers.csv " - Delimiter " ; "
foreach ($member in $members) {
try {
Add-DistributionGroupMember - Identity $member.GroupName - Member $member.MemberEmail
Write-Host " ✓ Ajouté $ ( $member.MemberEmail ) à $ ( $member.GroupName ) " - ForegroundColor Green
} catch {
Write-Host " ✗ Erreur ajout $ ( $member.MemberEmail ) : $ ( $_ .Exception.Message ) " - ForegroundColor Red
}
}
🚨 Dépannage courant
📌 Problème 🔧 Solution 📧 Emails non livrés Vérifier Get-MessageTrace, règles transport, quotas 🔒 Accès refusé boîte partagée Vérifier permissions, automapping, cache Outlook ⏱️ Synchronisation lente Forcer sync AD : Start-ADSyncSyncCycle -PolicyType Delta 📱 Mobile ne reçoit plus Réinitialiser partenariat : Remove-MobileDevice puis reconnecter 💾 Quota dépassé Vérifier Get-MailboxStatistics, activer archivage
🔗 Centre d’administration Exchange