Recherche de site Web

Comment utiliser Set CalendarProcessing dans PowerShell


Le cmdlet Set CalendarProcessing dans PowerShell peut être utilisé pour gérer les paramètres de calendrier sur les boîtes aux lettres de ressources. Le cmdlet ne peut pas être utilisé pour les boîtes aux lettres d'utilisateurs ; pour cela, vous devrez utiliser le cmdlet Set-MailboxFolderPermission.

Pour les boîtes aux lettres de ressources, la cmdlet nous permet de configurer l'assistant de calendrier, l'assistant de réservation et d'autres éléments de configuration du calendrier.

Dans cet article, nous allons examiner comment utiliser la commande Set-CalendarProcessing dans PowerShell.

Définir le traitement du calendrier

Les calendriers de ressources sont principalement utilisés pour les salles de réunion, mais ils peuvent également être utilisés pour la réservation d'équipements. L'avantage d'un calendrier de ressources par rapport à un calendrier normal est que nous pouvons configurer différentes politiques de réservation.

Avant de jeter un œil à la façon d'utiliser le cmdlet, examinons d'abord brièvement les différentes options que nous avons en ce qui concerne les calendriers des ressources.

  • Accepte automatiquement les demandes de réunion
  • Supprimez le sujet, les commentaires, les pièces jointes ou les éléments non liés au calendrier de la réunion.
  • Ajouter l'organisateur au sujet
  • Définir des délégués de calendrier
  • Définir des fenêtres de réservation (le nombre de jours à l'avance que vous pouvez réserver)
  • Définir le comportement de conflit en réunion
  • Définir les paramètres des réunions récurrentes

Exigences

Le cmdlet Set CalendarProcessing fait partie du module Exchange Online. Donc, avant de commencer, assurez-vous d'avoir installé le dernier module EXO et d'être connecté à Exchange Online.

Ajouter un calendrier de salle de réunion

Comme mentionné, le cmdlet ne peut être utilisé que sur des boîtes aux lettres de ressources. Si vous n'avez pas encore de calendrier de salle de réunion, nous devons d'abord en créer un. Vous pouvez le faire dans le Centre d'administration Microsoft 365, sous Ressources > Salles et équipements.

Nous utilisons également PowerShell pour créer une boîte aux lettres de salle de réunion avec la commande ci-dessous :

New-Mailbox -Name "Board Room" -Room

Pour afficher les paramètres de calendrier par défaut, nous pouvons utiliser la cmdlet Get-CalendarProcessing :

Get-CalendarProcessing -Identity BoardRoom | Select *

Configuration des options de calendrier

Avec notre salle de réunion créée, examinons les différentes options que nous pouvons configurer. À la fin, j'ai ajouté quelques exemples de scénarios couramment utilisés.

Détails de la réunion

Les détails de la réunion sont le sujet, les commentaires, les pièces jointes et l'organisateur de la réunion. Par défaut, tout est supprimé de l'élément de calendrier. Cela signifie que lorsque vous ouvrez le calendrier de la salle de réunion, vous ne voyez que Occupé comme sujet de l'élément de calendrier.

Nous pouvons utiliser les paramètres suivants pour modifier cela :

  • –Supprimer le sujet – Par défaut $true. Réglez sur $false pour afficher le sujet de la réunion.
  • –DeleteComments – Par défaut $true. Réglez sur $false pour afficher les détails de la réunion.
  • –SupprimerLesPiècesJointes – Défaut $true. Définir à $false pour conserver les pièces jointes de la réunion.
  • –AjouterOrganisateurAuSujet – Par défaut $true. Définir sur $false pour cacher l'organisateur.

Pour garder le sujet de l'élément de réunion, nous pouvons utiliser la commande suivante :

Set-CalendarProcessing -Identity BoardRoom -DeleteSubject $false

Remarque

Les paramètres DeleteSubject, DeleteComments et DeleteAttachements n'affectent que les nouvelles réunions. Donc, si vous définissez DeleteSubject sur $false, le sujet ne s'affichera pas dans les réunions existantes.

L'option AddOrganizerToSubject est activée par défaut. Mais lorsque vous regardez le calendrier de votre nouvelle salle de réunion, vous remarquez probablement que vous ne voyez pas l'organisateur. La raison à cela est qu'en défaut, les utilisateurs n'ont que la permission DisponibilitéUniquement sur le calendrier.

Pour voir l'organisateur, nous devrons donner à l'utilisateur “par défaut” un peu plus de droits sur le calendrier. Nous pouvons le faire avec la cmdlet Set-MailboxFolderPermission :

Set-MailboxFolderPermission -Identity BoardRoom:\calendar -User Default -AccessRights Reviewer

Par défaut (gauche) – Après avoir changé les permissions et montré le sujet (droite)

Accepter les réunions

La véritable force des calendriers de ressources réside dans la capacité d'accepter automatiquement les demandes de réunion en fonction de la politique de réservation. Cette politique peut être créée avec une combinaison de paramètres, vous permettant d'adapter les exigences à vos besoins.

Le paramètre le plus important est le -AutomateProcessing. Par défaut, cela est réglé sur AutoAccept, ce qui acceptera automatiquement une demande de réunion s'il n'y a pas de conflit.

D'autres options sont :

  • Aucun - Le traitement du calendrier est complètement désactivé
  • Mise à jour automatique - Les demandes de réunion sont placées comme tentatives, et un délégué devra approuver ou refuser la réunion.
  • AutoAccepter - Option par défaut ; les réunions sont acceptées en fonction des autres politiques.
Set-CalendarProcessing -Identity BoardRoom -AutomateProcessing AutoAccept

Permettant des conflits

Par défaut, les conflits ne sont pas autorisés. Pour une seule demande de réunion, ce n'est souvent pas un paramètre vraiment important, car l'utilisateur verra si une option est disponible immédiatement lors de la création de l'invitation à la réunion.

Mais lorsque vous créez une réunion récurrente, vous ne pouvez souvent pas vérifier chaque date future pour voir s'il y a déjà une réunion. C'est là que les paramètres AllowConflicts entrent en jeu.

Lorsqu'il est réglé sur $true, il permettra une série de réunions récurrentes, peu importe s'il y a un conflit avec des réservations existantes. L'option par défaut $false est en fait plus intéressante. Cette option ne refusera une série de réunions qu'en fonction du nombre de conflits dans la série.

Pour cela, il utilise deux autres paramètres pour déterminer s'il va refuser la demande ou non : PourcentageDeConflitAutorisé ou InstancesDeConflitMaximales.

Le paramètre MaximumConflictInstances spécifie combien de conflits une réunion récurrente peut avoir. S'il est de 0, elle ne peut avoir aucun conflit. Vous pouvez définir cela à n'importe quel nombre que vous souhaitez, mais la valeur par défaut est 0.

L'autre option est ConflictPercentageAllowed. Cela est également par défaut 0, et peut être réglé à n'importe quel pourcentage que vous souhaitez.

Set-CalendarProcessing -Identity BoardRoom -AutomateProcessing AutoAccept -AllowConflicts $false -MaximumConflictInstances 3 -EnableResponseDetails $true

Lors de l'utilisation de l'une des options ci-dessus, je recommande également d'activer EnableResponseDetails de cette façon, l'organisateur recevra une notification de chaque occurrence refusée dans la série de réunions.

Heures de travail uniquement

Le paramètre -ScheduleOnlyDuringWorkHours s'assure qu'une ressource ne peut être réservée que pendant les heures de travail. Maintenant, pour que ce paramètre soit efficace, vous devrez vous assurer que les heures de travail sont configurées pour la ressource.

Vous pouvez vérifier cela avec la commande PowerShell suivante :

Get-MailboxCalendarConfiguration -Identity boardroom

Result
Identity  WorkDays WorkingHoursStartTime WorkingHoursEndTime WorkingHoursTimeZone
--------  -------- --------------------- ------------------- --------------------
boardroom Weekdays 08:00:00              17:00:00            W. Europe Standard Time

Assurez-vous que le fuseau horaire des heures de travail correspond au fuseau horaire de votre utilisateur ; sinon, les heures ne seront pas alignées. Vous pouvez configurer les paramètres avec la cmdlet Set-MailboxCalendarConfiguration. Lisez-en plus à ce sujet dans cet article.

Activez le paramètre avec :

Set-CalendarProcessing -Identity BoardRoom -ScheduleOnlyDuringWorkHours $true

Ajout d'une réponse supplémentaire

Une fonctionnalité pratique de la commande Set-CalendarProcessing est que vous pouvez ajouter une réponse supplémentaire à l'e-mail de confirmation. Par exemple, vous pouvez ajouter des informations sur la façon d'utiliser la ressource ou donner d'autres informations supplémentaires.

Nous devrons définir deux paramètres pour cela, le premier est -AdditionalResponse. Ici, vous pouvez ajouter une chaîne de texte que vous souhaitez ajouter. Et le deuxième est -AddAdditionalResponse que vous devrez définir sur $true pour vraiment ajouter le texte à la réponse.

Set-CalendarProcessing -Identity BoardRoom -AdditionalResponse "Make sure to get your own coffee" -AddAdditionalResponse $true

Lorsqu'un utilisateur réserve la ressource, le texte apparaît dans l'e-mail de confirmation :

Politique de réservation et de demande

Lorsque vous examinez la cmdlet Set-CalendarProcessing, vous verrez plusieurs paramètres liés à la réservation dans la politique et à la demande dans la politique. Ces paramètres peuvent être un peu déroutants en les observant, mais ils sont utilisés pour gérer qui peut faire une demande de réservation et si la demande est automatiquement approuvée ou non.

Il y a quelques différences que vous devez connaître pour comprendre les options :

  • Demandes conformes à la politique – demandes de réunion qui correspondent aux règles de réservation, comme les créneaux horaires autorisés, sans conflits.
  • Demandes hors politique – ne correspondent pas aux règles de réservation. Par exemple, cela entre en conflit avec une autre réservation ou est en dehors des heures autorisées.
  • BookInPolicy – Ce sont des utilisateurs qui sont automatiquement approuvés s'ils respectent la politique.
  • DemandeDansPolitique – Les utilisateurs de ce groupe doivent toujours obtenir une approbation (même s'ils respectent la politique)

Pour vous aider encore plus, j'ai créé un aperçu des différents paramètres et de l'effet qu'ils ont sur une demande de réunion :

ParamètreEffet lorsque $vraiEffet lorsque $faux
TousLesLivresDansLaPolitiqueToutes les demandes des utilisateurs conformes à la politique sont automatiquement approuvées. (Par défaut : $true)Toutes les demandes conformes des utilisateurs nécessitent une approbation déléguée.
ToutesDemandeDansLaPolitiqueToutes les demandes conformes des utilisateurs doivent être approuvées par un délégué.Seules les utilisateurs dans RequestInPolicy ont besoin d'approbation ; les autres sont approuvés automatiquement.
TouteDemandeHorsPolitiqueToutes les demandes hors politique des utilisateurs doivent être approuvées par un délégué.Seules les utilisateurs dans RequestOutOfPolicy ont besoin d'approbation ; les autres sont automatiquement rejetés.
LivreDansPolitiqueDéfinit des utilisateurs spécifiques dont les demandes conformes à la politique sont automatiquement approuvées.Ces utilisateurs suivront plutôt le paramètre par défaut AllBookInPolicy.
DemandeDansPolitiqueDéfinit des utilisateurs spécifiques dont les demandes conformes à la politique nécessitent une approbation par délégation.Ces utilisateurs suivront plutôt le paramètre par défaut AllRequestInPolicy.
DemandeHorsPolitiqueDéfinit des utilisateurs spécifiques dont les demandes hors politique requièrent l'approbation d'un délégué.Ces utilisateurs suivront plutôt le paramètre par défaut AllRequestOutOfPolicy.

Jetons un coup d'œil à quelques exemples pour mieux comprendre les différentes options et comment elles se rapportent les unes aux autres.

Par défaut, les demandes de réservation de tous les utilisateurs sont automatiquement acceptées si elles correspondent à la règle de réservation. Cela est reflété par le paramètre -AllBookInPolicy qui est défini sur $true par défaut:

Set-CalendarProcessing -Identity BoardRoom -AllBookInPolicy $true

Exiger l'approbation pour chaque demande de réunion

Si nous voulons que chaque demande de réunion soit approuvée par un délégué, alors nous devons définir le paramètre -AllRequestInPolicy à $true et le -AllBookInPolicy à $false. Vous devrez également vous assurer qu'un ou plusieurs délégués sont configurés pour le calendrier des ressources :

Set-CalendarProcessing -Identity BoardRoom -AllBookInPolicy $false -AllRequestInPolicy $true -ResourceDelegates "john@lazyadmin.nl"

Exiger une approbation pour les demandes de réunion hors politique

Par défaut, les demandes de réunion qui ne respectent pas la politique sont automatiquement refusées. Maintenant, disons que vous avez un calendrier de ressources où les utilisateurs peuvent réserver une voiture de l'entreprise. La voiture ne peut être utilisée qu'aux heures de travail, donc vous avez défini -ScheduleOnlyDuringWorkHours sur $true.

Si les utilisateurs souhaitent réserver la voiture en dehors des heures de travail, ils devront demander une approbation. Pour résoudre ce problème, nous pouvons utiliser le paramètre -AllRequestOutOfPolicy. Nous pouvons le définir sur $true, ce qui permettra aux utilisateurs de soumettre une demande hors politique, nécessitant l'approbation du délégué de la boîte aux lettres de ressources.

Set-CalendarProcessing -Identity Car02 -AllRequestOutOfPolicy $true -ResourceDelegates "john@lazyadmin.nl" -ScheduleOnlyDuringWorkHours $true

Autoriser uniquement des utilisateurs spécifiques à réserver

Les paramètres -BookInPolicy et -RequestInPolicy permettent de configurer quels utilisateurs sont autorisés à effectuer/utiliser le calendrier de réservation des ressources.

Si vous avez par exemple une salle de réunion qui ne peut être utilisée que par les responsables des ventes ou une ressource qui ne peut être réservée que par des utilisateurs spécifiques, nous pouvons définir la politique AllBookInPolicy sur $false et spécifier les utilisateurs autorisés à faire une demande de réservation.

Utilisez le paramètre BookInPolicy lorsque vous n'avez pas besoin d'une approbation supplémentaire, et le paramètre RequestInPolicy lorsque la demande doit être approuvée par un délégué.

Only allow Adele and Megan to book the company car
Set-CalendarProcessing -Identity Car02 -AutomateProcessing AutoAccept -BookInPolicy "adelev@lazyadmin.nl","meganb@lazyadmin.nl" -AllBookInPolicy $false

Only allow members of the group "Sales" to book the conference room and require approval by delegate
Set-CalendarProcessing -Identity "Sales Room" -AutomateProcessing AutoAccept -RequestInPolicy "Sales Management" -AllBookInPolicy $false -ResourceDelegates "john@lazyadmin.nl"

Si un utilisateur qui n'est pas membre du groupe des ventes essaie de réserver la salle de réunion, il recevra automatiquement un e-mail indiquant que la demande est refusée :

Combinaison de tous les paramètres

Maintenant que nous avons discuté de toutes les différentes options, examinons la configuration complète et plus complexe pour vous montrer les possibilités.

Ci-dessous, vous verrez la configuration set calendarprocessing pour la salle de réunion. J'ai utilisé le splatting pour rendre les paramètres plus lisibles :

$roomSettings = @{
    "Identity" = "Board Room"
    "ScheduleOnlyDuringWorkHours" = $true
    "EnforceCapacity" = $true
    "AllowConflicts" = $false
    "MaximumConflictInstances" = 3
    "BookingWindowInDays" = 90
    "EnableResponseDetails" = $true
    "AutomateProcessing" = "AutoAccept"
    "BookInPolicy" = "Management"
    "AllBookInPolicy" = $false
    "RequestInPolicy" = "Sales Management"
    "AllRequestOutOfPolicy" = $false
    "RequestOutOfPolicy" = "Management"
    "ResourceDelegates" = "jane@lazyadmin.nl"
}
Set-CalendarProcessing @roomSettings

Décomposons les paramètres pour voir l'effet sur le calendrier des ressources :

  • Uniquement pendant les heures de travail → La salle ne peut être réservée que pendant les heures de travail (ScheduleOnlyDuringWorkHours=$true).
  • Pas de surréservation → La chambre ne peut pas être réservée au-delà de sa capacité
    (EnforceCapacity=$true).
  • Aucune réunion conflictuelle → La salle ne permettra pas de doubles réservations
    (AllowConflicts=$false).
  • Exceptions de conflit limitées → Si les conflits sont autorisés, un maximum de 3 instances de chevauchement est permis (MaximumConflictInstances=3).
  • Fenêtre de réservation : 90 jours → Les utilisateurs peuvent réserver jusqu'à 90 jours à l'avance (BookingWindowInDays=90).
  • Envoyer des réponses détaillées → Lorsqu'une demande est acceptée/rejetée, l'e-mail de réponse inclut des détails (EnableResponseDetails=$true).
  • Acceptation automatique des réservations → Le système traite et accepte automatiquement les demandes de réunion qui correspondent à la politique (AutomateProcessing=“AutoAccept”).

Qui peut réserver la chambre ?

  • La direction peut réserver automatiquement → Leurs demandes sont immédiatement approuvées tant qu'elles respectent les règles de réservation (BookInPolicy=“Management”).
  • La gestion des ventes nécessite une approbation → Même si leur demande respecte les règles, un délégué doit l'approuver (DemandeDansLaPolitique=“Gestion des Ventes”).
  • Tous les autres sont bloqués → Puisque TouteRéservationDansPolitique=$false, les utilisateurs qui ne sont pas dans RéservationDansPolitique ou DemandeDansPolitique ne peuvent pas du tout réserver la salle.
  • La direction peut demander des réservations en dehors des politiques, mais cela nécessite une approbation → Si la direction essaie de réserver en dehors des règles autorisées, elle a toujours besoin de l'approbation d'un délégué (RequestOutOfPolicy=“Direction”).

Qui approuve les demandes ?

  • Jane (@lazyadmin.nl) est le délégué → Elle gère les approbations pour toute demande nécessitant un examen manuel (ResourceDelegates=“jane@lazyadmin.nl“).

Conclure

Bien que nous puissions définir certaines options dans le centre d'administration Microsoft 365 pour les boîtes aux lettres de ressources, la cmdlet set-calendarprocessing vous permet vraiment d'affiner les paramètres.

J'espère que cet article vous a aidé à configurer votre calendrier des ressources. Si vous avez des questions, n'hésitez pas à laisser un commentaire ci-dessous.