Office 365 : modifier la langue et le fuseau horaire par défaut avec PowerShell
I. Présentation
Lors de la création de comptes sur un tenant Office 365, que ce soit manuellement, via un script ou à l'aide de l'outil Azure AD Connect, il sera demandé à chaque utilisateur de définir la langue et un fuseau horaire lorsqu'il accédera à sa messagerie pour la première fois (à partir du portail en ligne).
Pour simplifier la connexion des comptes, il n'existe pas, à l'heure actuelle, la possibilité de configurer ces deux paramètres à l'échelle du tenant. L'alternative consiste donc à passer par un script alternatif que l'on va exécuter à intervalle régulier.
II. Etat actuel des comptes
Pour obtenir la langue et le fuseau horaire actuellement utilisés sur vos boites aux lettres, vous pouvez utiliser la commande suivante :
Get-Mailbox -ResultSize Unlimited | Get-MailboxRegionalConfiguration
Par défaut, la commande Get-Mailbox retourne seulement les 1 000 premiers résultats. Sur un tenant de plus d'un millier de comptes, il faudra spécifier "-ResultSize Unlimited" pour récupérer tous les comptes.
Identity Language DateFormat TimeFormat TimeZone -------- -------- ---------- ---------- -------- TEST Compte 1 fr-FR dd/MM/yyyy HH:mm Romance Standard Time TEST Compte 2 TEST Compte 3 fr-FR dd/MM/yyyy HH:mm Romance Standard Time
S'il y a une ligne vide comme sur l'exemple ci-dessus, c'est que le compte n'est pas configuré, d'où l'utilité de le faire pour simplifier la connexion de l'utilisateur.
III. Configurer la langue et le fuseau horaire
Chaque langue dispose de son propre identifiant, qu'il faudra spécifier dans la commande de configuration. Voici trois exemples :
- French (France) : 1036
- English (United Kingdom) : 2057
- English (United States) : 1033
Pour le fuseau horaire correspondant à Paris (Brussels, Copenhagen, Madrid, Paris), il faut utiliser l'intitulé "Romance Standard Time".
105 Romance Standard Time (GMT+01:00) Brussels, Copenhagen, Madrid, Paris
Maintenant que l'on a en notre possession les deux valeurs qui nous intéressent, nous allons passer à l'action. Pour mettre à jour les paramètres sur l'intégralité des comptes, la commande sera simplement :
Get-Mailbox -ResultSize Unlimited | Set-MailboxRegionalConfiguration -Language 1036 -TimeZone "Romance Standard Time"
Pour cibler un compte spécifique, nous devons utiliser plutôt le paramètre -Identity :
Get-Mailbox -Identity "test.itconnect" | Set-MailboxRegionalConfiguration -Language 1036 -TimeZone "Romance Standard Time"
Cependant, s'il y a vraiment beaucoup de comptes sur le tenant, ce n'est pas très pratique (d'autant plus que Microsoft applique une "bride" au-delà d'un quota de requêtes). Si vous exécutez le script en fin de journée, il est alors possible de récupérer la liste des comptes créés le jour J, pour ne traiter que ceux-là. En tout cas, cette méthode est également pratique pour les prochaines exécutions, une fois que tous les comptes existants sont configurés.
Nous allons stocker dans la variable $Date, la date du jour et l'heure 00:00:00. Comme ça, si l'on exécute le script en fin de journée, on pourra traiter tous les comptes créés aujourd'hui puisque l'on recherche les utilisateurs qui ont une date de création "plus grande" que la valeur de $Date. Ensuite, pour chaque utilisateur (Foreach) nous allons appliquer la configuration sur la langue et le fuseau horaire 🙂
Ce qui donne :
[datetime]$Date = Get-Date -Format "MM/dd/yyyy" $Date.AddHours(00).AddMinutes(00).AddSeconds(00) Get-MsolUser -All | Where{ $_.WhenCreated -gt $Date } | Foreach{ Write-Host "Configuration de $($_.UserPrincipalName)" Get-Mailbox -Identity $_.UserPrincipalName | Set-MailboxRegionalConfiguration -Language 1036 -TimeZone "Romance Standard Time" }
Voilà, il ne reste plus qu'à enregistrer ce snippet dans un fichier PS1 (en pensant à ajouter au début la phase de connexion 0365) et à créer la tâche planifiée qui va bien ?
Bonjour,
cela fonctionne bien.
En revanche les dossiers sont quand même en anglais dans l’arborescence d’outlook, bien que dans les paramètres OWA le fuseau et la langue sont bons. si je modifie le fuseau via OWA et que je le remet à PARIS, les dossiers sont bien renommées en francais.
Auriez vous une solution pour rebasculer les noms de dossiers en francais pour toutes les boites?
Bonjour,
Cela ne fonctionne pas, OWA et Outlook reste en Anglais, alors que la commande passe bien après vérification sur le shell la langue est bien en fr-FR et time zone « Romance standard Time ».
avez vous une solution ? car j’en ai 150 à faire.
merci
cordialement
en faite j’ai trouvé, il faut mette cette commande :
Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Set-MailboxRegionalConfiguration -Language fr-FR -DateFormat « dd/MM/yyyy » -TimeFormat H:mm -LocalizeDefaultFolderName
cordialement