Dans de nombreuses organisations utilisant Microsoft 365, il est courant que certains utilisateurs aient accès au calendrier de leurs collègues. Une assistante peut gérer l’agenda d’un dirigeant, un coordinateur peut organiser les réunions d’une équipe, ou un gestionnaire peut avoir accès au calendrier de plusieurs membres de son département.
Avec le temps, ces accès se multiplient et il devient parfois difficile de savoir exactement qui a accès à quoi. Lorsqu’un incident survient, par exemple lorsqu’un utilisateur voit un calendrier qu’il ne devrait pas voir, ou au contraire perd un accès, les équipes IT doivent souvent intervenir rapidement pour comprendre la situation.
C’est là que PowerShell et Exchange Online deviennent particulièrement utiles.
Dans Microsoft 365, chaque boîte aux lettres possède un dossier Calendar qui contient ses propres permissions. Ces permissions définissent quels utilisateurs peuvent consulter, modifier ou gérer les événements d’un calendrier. Elles peuvent être configurées directement par les utilisateurs dans Outlook, via Outlook Web, ou encore par des administrateurs à l’aide de PowerShell.
Le problème est que ces permissions sont distribuées au niveau de chaque calendrier individuel. Autrement dit, si l’on veut savoir à quels calendriers un utilisateur a accès, il ne suffit pas de regarder un seul endroit. Il faut parcourir les calendriers des différentes boîtes aux lettres et vérifier leurs permissions.
PowerShell permet justement d’automatiser cette tâche.
Avec la commande Get-MailboxFolderPermission, il est possible d’afficher les permissions d’un calendrier spécifique. Par exemple :
Get-MailboxFolderPermission -Identity user@domain.com:\Calendar
Cette commande retourne la liste des utilisateurs qui ont accès à ce calendrier ainsi que leur niveau de permission — par exemple Reviewer pour un accès en lecture, Editor pour un accès en modification, ou Owner pour un contrôle complet.
Cependant, dans un scénario de support ou d’audit, on cherche souvent l’information inverse : identifier tous les calendriers auxquels un utilisateur a accès dans l’organisation.
Pour cela, on peut utiliser un script PowerShell qui parcourt toutes les boîtes aux lettres et vérifie leurs permissions de calendrier. Le principe est relativement simple : récupérer la liste des boîtes aux lettres, examiner les permissions de leur calendrier, puis filtrer les résultats pour identifier les accès d’un utilisateur spécifique.
Un exemple simplifié pourrait ressembler à ceci :
$mailboxes = Get-Mailbox -ResultSize Unlimitedforeach ($mailbox in $mailboxes) {
Get-MailboxFolderPermission "$($mailbox.UserPrincipalName):\Calendar"
}
Ce type de script permet ensuite d’extraire les calendriers où l’utilisateur recherché apparaît dans les permissions.
Dans la pratique, cette approche peut être très utile dans plusieurs situations. Les équipes de support peuvent rapidement diagnostiquer un problème d’accès à un calendrier. Les administrateurs peuvent réaliser des audits pour vérifier les délégations existantes. Et lors du départ d’un employé, il devient beaucoup plus facile de repérer les calendriers auxquels cette personne avait accès afin de nettoyer les permissions.
Dans les grandes organisations, où les calendriers sont souvent partagés entre plusieurs assistants, gestionnaires et équipes de projet, cette visibilité devient essentielle pour maintenir une bonne gouvernance des accès.
PowerShell offre ainsi un moyen simple mais puissant de reprendre le contrôle sur les permissions de calendrier dans Microsoft 365. En automatisant ces vérifications, les équipes IT gagnent du temps, améliorent leur capacité de diagnostic et renforcent la gestion des accès dans l’environnement Microsoft 365.
