Définir des quotas sur un compte utilisateur Office 365 en Powershell

Définir des quotas sur un compte utilisateur Office 365 en Powershell

Encore un article pour les barbus, aujourd’hui pas de GUI que du Powershell !

Aujourd’hui on s’attaque à la taille par défaut de 50Go (voir 99Go) par utilisateur de la boite aux lettres. Sur mon parc j’ai un souci. Pourquoi !? Et bien j’ai un parc composé de clients légers (90% des postes environ) et 4 serveurs avec une répartition de charge sur le nom TS, ce qui pose un souci dans le cas présent…. Et oui ! 4 serveurs, avec 50Go de fichier OST par utilisateur sachant qu’un utilisateur ne se connecte pas toujours au même serveur selon le taux de charge de ce dernier…..Bah les disques des serveurs se remplissent très vite.

Donc j’ai décidé de mettre en place une restriction sur la capacité du fichier OST, soit 5Go maximum. Avec un avertissement à 4,5Go.

Pré-requis :

  • Avoir un compte administrateur
  • Console Powershell lancé en administrateur

Étape 1: On se connecte au service Office 365

Dans la console Powershell on tape la commande suivante :

$UserCredential = Get-Credential

Le but de cette commande est de stocker dans une variable les credentials (ID et pass) de l’administrateur. Une fenêtre comme celle-ci (voir ci-dessous) vous demande de renseigner vos informations administrateur.

credential

Ensuite cette commande:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Comme vous pouvez le voir on se connecte sur outlook.office365.com avec la variable $UserCredential (renseignée plus haut). Tout ceci stocké dans la variable $Session.

On lance la session:

Import-PSSession $Session

Après la saisie de la commande vous pouvez avoir ce retour d’erreur :

edit1

Pour la corriger il suffit de désactiver la protection (sur la session powershell en cours et non de manière permanente) via cette commande :

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser -Force

Pour infos le Set-ExecutionPolicy se contente de modifier la valeur ExecutionPolicy dans la clé HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.Powershell du registre.

Étape 2-1: Définitions des quotas pour une boite aux lettres

Voilà la commande utilisée :

Set-Mailbox votreadressemail@nomdedomaine.fr -ProhibitSendReceiveQuota 5GB -ProhibitSendQuota 4.75GB -IssueWarningQuota 4.5GB

Décryptons tout ça :

Set-Mailbox: Indique que nous allons modifier un paramètre de boite mail

ProhibitSendReceiveQuota: Quota Interdire l’envoi et la réception

-ProhibitSendQuota: Quota Interdire l’envoi

-IssueWarningQuota: Quota Émettre un avertissement

Attention !!! Powershell ne vous indiquera rien si le paramétrage est en place, il vous fera uniquement un retour à la ligne. Le temps de propagation (pour ma part) à pris une heure, entre la saisie et la mise en service pour la boite.

Re-attention !!! Les capacités indiquées ne sont pas forcément adaptées à vos besoins. Elles correspondent à MES besoins sur MON parc.

Etape 2-2: Définition des quotas pour plusieurs boites aux lettres

Bon, le modifier pour un utilisateur c’est bien……..mais j’en ai 107….donc un à un….c’est embêtant (restons polis ;-)).

Alors pour aller au plus vite exportons la liste des boites mails, et nous réaliserons la même commande mais pour la liste complète.

L’export de toutes les adresses mails se fait via la commande :

Get-Recipient -ResultSize Unlimited | select DisplayName,RecipientType,EmailAddresses | Export-Csv export-mail.csv

Alors attention, ça exporte pas mal d’informations, à vous de retravailler le CSV par la suite pour avoir un fichier propre avec les infos que vous désirez.

Bon, vous avez fait le tri dans le CSV, vous avez une jolie liste d’adresse mail, maintenant copiez la liste et créez un fichier *.txt avec une adresse email par ligne comme ça :

adressemail1@domain.fr

adressemail2@domain.fr

adressemail3@domain.fr

Et lancez la commande suivante :

Get-Content “Chemin_acces\dossier\liste_email.txt” | Set-Mailbox -ProhibitSendReceiveQuota 5GB -ProhibitSendQuota 4.75GB -IssueWarningQuota 4.5GB

Voilà, une fois encore vous avez réussi à administrer office 365 via Powershell.

giphy

Alexandre Carbonnier

Laisser un commentaire