Résoudre problème de création de boîtes aux lettres dans Exchange Online

Impossibilité de créer une boîte aux lettres Exchange

Lors de l’affectation d’une licence Office 365 contenant Exchange Online à un utilisateur, il peut arriver que la boîte aux lettres ne se créé jamais. Le message dans le portail Office 365 est :

  • We are preparing a mailbox for this user (version anglaise)
  • Nous préparons une boîte aux lettres pour cet utilisateur (version française)

Le problème peut être (liste non exhaustive) :

  • Boîte existante en tant que UserMailbox sur l’Echange OnPremise
  • Adresse SMTP déjà utilisée (par un contact Exchange ou autre)
  • Problème d’alias Exchange
  • Problèmes dans un attribut non conforme (CountryOrRegion, City, etc.)

Première étape : identifier si la boite existe localement

Dans un premier temps, si vous disposez d’une architecture hybride (Exchange on-premise et Exchange Online), il faut vérifier sur l’Exchange onpremise que l’utilisateur n’a pas de boîte de type UserMailbox dans l’Exchange OnPremise avec Get-Mailbox -Identity xxx@domain.com

Si la commande retourne une boite, il faut la convertir en RemoteMailbox, attention cela supprimera tous les attributs de messagerie déjà présents (mail, etc.):

Disable-Mailbox -Identity xxx@domain.com
Enable-RemoteMailbox -PrimarySmtpAddress xxx@domain.com -RemoteRoutingAddress xxx@domain.onmicrosoft.com

Si la boîte n’est toujours pas créée après quelques minutes, passer à la deuxième étape.

Deuxième étape : Vérifier l’affectation des licences

Vérifier que l’utilisateur dispose bien d’une licence Office 365 et que le service Exchange Online est coché.

Après l’affectation de licence, Office 365 provisionne les services pour l’utilisateur, cela peut prendre un moment. La commande PowerShell suivante permet d’identifier l’état de provisioning des services:

(Get-MsolUser -UserPrincipalName xxx@domain.com).Licenses[0].ServiceStatus

Un état PendingInput indique que le service n’a pas encore été provisionné, il faut donc attendre quelques instants. Il est possible d’effectuer plusieurs fois cette commande pour suivre l’avancé.

Un état Success indique que le service a bien été provisionné.

Si la boîte n’est toujours pas créée après quelques minutes, passer à la troisième étape.

Troisième étape: Get-MsolUser -HasErrorsOnly permet d’identifier le problème

Afin d’identifier les utilisateurs en erreurs, il convient d’utiliser la commande suivante :

Get-MsolUser -HasErrorsOnly

On peut désormais aller plus en détail sur l’utilisateur qui nous intéresse, ici contact@itpro-tips.tk qui est l’adresse que je souhaite mettre à mon utilisateur :

$errorsUser =(Get-MsolUser -UserPrincipalName contact@itpro-tips.tk).Errors

$errorsUser | foreach-object {if($_.ErrorDetail -ne $null){“`nService: “+ $_.ErrorDetail.Name.split(“/”)[0]; “Error Message: “+ $_.ErrorDetail.ObjectErrors.ErrorRecord.ErrorDescription}}

En ce qui me concerne, le problème est lié au fait que l’adresse SMTP principale est déjà utilisée par un autre objet. Pour repérer cela j’utilise la commande Get-Recipient :

Get-Recipient contact@itpro-tips.tk

Cela m’indique que l’adresse e-mail contact@itpro-tips.tk est déjà utilisée par un contact de messagerie. Charge à vous d’agir sur cet objet (suppression de l’objet, modification adresse e-mail, etc.). Pour ma part je supprime ce contact.

Après la suppression de l’objet qui avait l’adresse dont j’ai besoin, il faut relancer le processus de Provisionning, pour cela il faut récupérer l’objetID et faire un Redo-MsolProvisionUser :

$objectID = (Get-MsolUser -UserPrincipalName contact@itpro-tips.tk).ObjectID

Redo-MsolProvisionUser -ObjectId $objectID

This Post Has One Comment

  1. yes ! Simple et efficace, merci !

Leave a Reply

one × two =

Close Menu