> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/fr/automatisation/runbooks/runbook-references/org/general/sync-channel-or-group-members_scheduled.md).

# Synchronisation planifiée des membres d’un canal ou d’un groupe

### Description

Ce runbook planifié réplique l'appartenance d'un objet source vers un objet cible dans une seule direction par exécution. Il prend en charge la synchronisation des membres d'un Teams Shared Channel vers un Security Group, la synchronisation des membres d'un groupe vers un autre groupe (par exemple d'un groupe Microsoft 365 vers un Security Group ou l'inverse) et la synchronisation des membres d'un groupe vers un Teams Shared Channel. L'ajout des membres manquants est toujours effectué, tandis que la suppression des membres qui n'existent que dans la cible est facultative et contrôlée par un paramètre. La gestion des invités et le fait que les suppressions dans le canal suppriment aussi l'appartenance à l'équipe hôte sont configurables, et le runbook peut éventuellement envoyer un rapport par e-mail et téléverser les résultats sous forme de lien de téléchargement à durée limitée. Le paramètre ReportFileFormat contrôle les formats de fichier de rapport générés et livrés (CSV uniquement, CSV et XLSX, ou XLSX uniquement). Lorsque la pièce jointe CSV dépasse la limite de taille de l'e-mail et que « CSV & XLSX » est sélectionné, l'e-mail revient au classeur Excel seul.

### Fonctionnement

Ce runbook planifié réplique l'appartenance d'un **source** objet vers un **cible** objet dans une seule direction par exécution. À chaque exécution, il :

1. Résout les objets source et cible pour la direction sélectionnée.
2. Lit l'ensemble actuel des membres des deux côtés.
3. Ajoute chaque membre source qui manque à la cible.
4. Supprime éventuellement chaque membre cible qui n'existe pas dans la source (mode miroir).

#### Directions

Le `Direction` paramètre sélectionne ce qui est synchronisé vers quoi :

* **`SharedChannelToGroup`** - les membres d'un Teams Shared Channel sont copiés dans un Security Group cible.
* **`GroupToGroup`** - les membres d'un groupe source sont copiés dans un groupe cible (par exemple un groupe Microsoft 365 vers un Security Group, ou l'inverse en échangeant la source et la cible).
* **`GroupToSharedChannel`** - les membres d'un groupe source sont copiés dans un Teams Shared Channel.

#### Ajout et suppression

L'ajout des membres manquants est toujours effectué. La suppression des membres qui n'existent que dans la cible est **facultative** via `RemoveExtraMembers` (désactivé par défaut). Lorsque la suppression est activée, la cible est répliquée exactement par rapport à la source ; lorsqu'elle est désactivée, le runbook se limite à l'ajout.

#### Développement des membres du groupe

Les membres du groupe du côté source sont résolus **de manière transitive**, de sorte que les utilisateurs membres via des groupes imbriqués sont inclus. Du côté cible, seuls **directs** les membres sont pris en compte, car les opérations d'ajout et de suppression agissent sur l'appartenance directe.

#### Gestion des invités

`IncludeGuests` (désactivé par défaut) contrôle si les utilisateurs invités participent à la synchronisation. Lorsqu'il est désactivé, les invités sont ignorés des deux côtés et ne sont jamais ajoutés ni supprimés. Les Shared Channels refusent souvent les invités, donc cette option est désactivée par défaut.

#### Spécificités des Shared Channels

* Lorsqu'un groupe est synchronisé **dans** un Shared Channel, l'appartenance à l'équipe est une condition préalable à l'appartenance au canal ; le runbook s'assure donc d'abord que l'utilisateur est membre de l'équipe hôte, puis l'ajoute au canal.
* Lorsque des membres sont **supprimés** d'un Shared Channel, seule l'appartenance au canal est supprimée par défaut. Activez `RemoveFromTeam` pour également supprimer l'utilisateur de l'appartenance à l'équipe hôte.

#### Exécution à blanc

Définissez `WhatIfMode` pour consigner ce qui changerait sans rien écrire.

#### Rapports (facultatif, les deux désactivés par défaut)

* **`SendEmailReport`** envoie un e-mail aux couleurs de RealmJoin (via `Send-RjReportEmail`) avec des statistiques d'exécution et une pièce jointe CSV répertoriant chaque modification individuelle. L'expéditeur est repris de la `RJReport.EmailSender` paramètre.
* **`CreateDownloadLink`** téléverse le même CSV vers un Storage Account et renvoie un lien de téléchargement SAS à durée limitée (également intégré dans l'e-mail lorsque les deux options sont activées). Le Storage Account cible est repris de la `RJReport.StorageAccount.*` paramètres.

Le téléversement vers le stockage s'authentifie avec l'identité managée du compte Automation ; cette identité a besoin du **Contributeur aux données Blob de stockage** rôle RBAC sur le Storage Account cible (il s'agit d'une attribution Azure RBAC, et non d'une autorisation d'application Graph).

#### Planification

Conçu pour s'exécuter sans surveillance selon un planning. Comme le runbook est idempotent, une seule planification récurrente permet de maintenir la cible synchronisée avec la source au fil des allées et venues des membres.

### Emplacement

Organization → General → Sync Channel Or Group Members (Scheduled)

**Nom complet du runbook**

rjgit-org\_general\_sync-channel-or-group-members\_scheduled

### Autorisations

#### Autorisations d'application

* **Type**: Microsoft Graph
  * Group.ReadWrite.All
  * GroupMember.ReadWrite.All
  * Channel.ReadBasic.All
  * ChannelMember.ReadWrite.All
  * TeamMember.ReadWrite.All
  * User.Read.All
  * Organization.Read.All
  * Mail.Send

### Paramètres

#### Direction

Sélectionne ce qui est synchronisé vers quoi. SharedChannelToGroup copie les membres du Shared Channel vers le groupe cible, GroupToGroup copie les membres du groupe source vers le groupe cible, et GroupToSharedChannel copie les membres du groupe source vers le Shared Channel.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | true   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### TeamId

ID d'objet de l'équipe qui héberge le Shared Channel. Utilisé uniquement pour les directions liées au Shared Channel.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### ChannelName

Nom d'affichage exact du Shared Channel à l'intérieur de l'équipe sélectionnée. Utilisé uniquement pour les directions liées au Shared Channel.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### SourceGroupId

ID d'objet du groupe source dont les membres sont copiés. Utilisé pour les directions source de groupe.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### TargetGroupId

ID d'objet du Security Group cible qui reçoit les membres. Utilisé pour les directions cible de groupe.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### RemoveExtraMembers

Lorsqu'il est activé, les membres qui existent uniquement dans la cible et pas dans la source sont supprimés afin que la cible reflète la source. Lorsqu'il est désactivé (par défaut), le runbook n'ajoute que les membres manquants.

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### IncludeGuests

Lorsqu'il est activé, les utilisateurs invités sont inclus dans la synchronisation et peuvent être ajoutés ou supprimés. Lorsqu'il est désactivé (par défaut), les invités sont ignorés et ne sont jamais ajoutés ni supprimés.

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### RemoveFromTeam

Pertinent uniquement pour GroupToSharedChannel. Lorsqu'il est activé, la suppression d'un membre du Shared Channel supprime aussi cet utilisateur de l'appartenance à l'équipe hôte. Lorsqu'il est désactivé (par défaut), seule l'appartenance au canal est supprimée.

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### WhatIfMode

Lorsque activé, le runbook se contente de consigner les changements qu'il effectuerait, sans rien écrire.

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### SendEmailReport

Lorsqu'il est activé, un rapport par e-mail à l'image de RealmJoin est envoyé via Send-RjReportEmail après l'exécution. L'activation de cette option affiche les champs de l'adresse du destinataire et du format du fichier de rapport.

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### EmailTo

Adresse(s) e-mail des destinataires du rapport (séparées par des virgules). Utilisé uniquement lorsque SendEmailReport est activé.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### EmailFrom

Boîte aux lettres de l'expéditeur pour le rapport. Liée au paramètre d'organisation RJReport.EmailSender.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### ReportFileFormat

Contrôle quels formats de fichiers de rapport sont générés et livrés : « CSV uniquement », « CSV et XLSX » (par défaut) ou « XLSX uniquement ».

| Propriété         | Valeur      |
| ----------------- | ----------- |
| Obligatoire       | faux        |
| Valeur par défaut | CSV et XLSX |
| Type              | Chaîne      |

#### CreateDownloadLink

Lorsqu'il est activé, le(s) fichier(s) de rapport est/sont téléversé(s) vers un Storage Account et des liens de téléchargement à durée limitée sont renvoyés (et inclus dans le rapport par e-mail si cette option est également activée).

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### ContainerName

Conteneur de stockage utilisé pour le téléversement. Configuré par runbook.

| Propriété         | Valeur                    |
| ----------------- | ------------------------- |
| Obligatoire       | faux                      |
| Valeur par défaut | channel-group-member-sync |
| Type              | Chaîne                    |

#### ResourceGroupName

Groupe de ressources qui contient le Storage Account. Lié à RJReport.StorageAccount.ResourceGroup.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### StorageAccountName

Storage Account utilisé pour le téléversement. Lié à RJReport.StorageAccount.StorageAccountName.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### LinkExpiryDays

Nombre de jours avant l'expiration du lien de téléchargement généré. Lié à RJReport.StorageAccount.LinkExpiryDays.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut | 6      |
| Type              | Int32  |

[Retour à l'aperçu de la référence des runbooks](/fr/automatisation/runbooks/runbook-references.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/fr/automatisation/runbooks/runbook-references/org/general/sync-channel-or-group-members_scheduled.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
