> 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

Synchroniser les membres entre un Shared Channel Teams ou un groupe et un Security Group Entra ID

{% hint style="info" %}
Ceci est un runbook planifié. Il est conçu pour s'exécuter selon une planification récurrente plutôt que d'être déclenché pour un objet unique. Voir [Planification](/fr/automatisation/runbooks/scheduling.md) pour plus de détails sur la configuration des planifications de runbook.
{% endhint %}

### 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 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 de 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 se rabat sur le seul classeur Excel.

### Comment ça fonctionne

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 manquant dans la cible.
4. Supprime éventuellement chaque membre de la 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 inversant 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 existent uniquement 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 sur la source ; lorsqu’elle est désactivée, le runbook est en ajout uniquement.

#### Expansion des membres du groupe

Les membres du groupe côté source sont résolus **de manière transitive**, donc les utilisateurs membres via des groupes imbriqués sont inclus. Côté cible, seuls **directs** membres sont pris en compte, car les opérations d’ajout et de suppression s’appliquent à 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 Channel refusent souvent les invités, donc cette option est désactivée par défaut.

#### Spécificités des Shared Channel

* Lorsqu’un groupe est synchronisé **dans** un Shared Channel, l’appartenance à l’équipe est un prérequis pour 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 supprimer également l’utilisateur de l’appartenance à l’équipe hôte.

#### Exécution à blanc

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

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

* **`SendEmailReport`** envoie un e-mail brandé RealmJoin (via `Send-RjReportEmail`) avec des statistiques d’exécution et une pièce jointe CSV listant chaque changement individuel. L’expéditeur est pris dans le `RJReport.EmailSender` .
* **`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 pris dans le `RJReport.StorageAccount.*` .

Le téléversement vers le compte de stockage s’authentifie avec l’identité managée du compte Automation ; cette identité a besoin du rôle RBAC **Storage Account Contributor** sur le compte de stockage cible (il s’agit d’une affectation Azure RBAC, pas 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 maintient la cible synchronisée avec la source au fil des arrivées et départs des membres.

### Branding des e-mails

Le courriel de rapport respecte les paramètres facultatifs `RJReport.Branding.*` du tenant :

* **Image d’en-tête et de pied de page** – URL HTTPS publiques, PNG/JPEG/GIF, 200 Ko max. chacune
* **Lien du pied de page** – cible de l’image de pied de page
* **Couleur d’accent et du texte** – valeurs hexadécimales à 6 chiffres, par ex. `#0052cc`

Lorsque ces paramètres ne sont pas configurés, les graphiques et couleurs par défaut de RealmJoin sont utilisés. Une image qui ne peut pas être téléchargée ou validée, ou une valeur de couleur invalide, n’empêche jamais l’envoi du courriel de rapport — la valeur par défaut correspondante est utilisée à la place.

Instructions de configuration et exigences relatives aux images : [Branding des e-mails](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings#email-branding-optional).

### Emplacement

Organisation → Général → Synchroniser les membres d’un canal ou d’un groupe (planifié)

**Nom complet du runbook**

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

### Détails

| Propriété      | Valeur                                                                                                            |
| -------------- | ----------------------------------------------------------------------------------------------------------------- |
| Version        | 1.3.0                                                                                                             |
| Modules requis | <p>RealmJoin.RunbookHelper (>= 0.8.9)<br>Microsoft.Graph.Authentication (>= 2.39.0)<br>Az.Accounts (>= 5.5.2)</p> |
| Planifiable    | oui                                                                                                               |

### Autorisations

#### Autorisations d'application

* **Type**: Microsoft Graph
  * Group.ReadWrite.All
    * *Résout les groupes source/cible et l’équipe hôte, et écrit l’appartenance directe via /groups/{id}/members/$ref*
  * GroupMember.ReadWrite.All
    * *Ajoute et supprime les membres directs du groupe cible pendant la synchronisation*
  * Channel.ReadBasic.All
    * *Liste /teams/{id}/channels pour résoudre le Shared Channel et vérifier qu’il s’agit bien d’un Shared Channel*
  * ChannelMember.ReadWrite.All
    * *Lit, ajoute et supprime les membres du Shared Channel via /teams/{id}/channels/{id}/members*
  * TeamMember.ReadWrite.All
    * *Ajoute/supprime l’appartenance à l’équipe hôte comme prérequis ou nettoyage pour les membres du Shared Channel*
  * User.Read.All
    * *Lit les objets utilisateur membres (id, UPN, userType) pour détecter les invités et calculer le delta d’appartenance*
  * Organization.Read.All
    * *Lit /organization pour inclure le nom du Tenant dans l’e-mail du rapport*
  * Mail.Send *(facultatif — fonctionnalité : rapport par e-mail)*
    * *Envoie le rapport de synchronisation via Send-RjReportEmail lorsque le reporting par e-mail est activé*

### Paramètres

#### Direction

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

| Propriété                  | Valeur                       |
| -------------------------- | ---------------------------- |
| Obligatoire                | true                         |
| Valeur par défaut          |                              |
| Type                       | String                       |
| Nom d’affichage du portail | Ce qui doit être synchronisé |

**Options du portail**

| Option du portail                           | Valeur |
| ------------------------------------------- | ------ |
| Membres du Shared Channel -> Security Group |        |
| Membres du groupe -> groupe                 |        |
| Membres du groupe -> Shared Channel         |        |

#### TeamId

ID d’objet de l’équipe qui héberge le Shared Channel. Utilisé uniquement pour les directions avec Shared Channel.

| Propriété                  | Valeur                              |
| -------------------------- | ----------------------------------- |
| Obligatoire                | false                               |
| Valeur par défaut          |                                     |
| Type                       | String                              |
| Nom d’affichage du portail | Équipe hébergeant le Shared Channel |

#### ChannelName

Nom d’affichage exact du Shared Channel dans l’équipe sélectionnée. Utilisé uniquement pour les directions avec Shared Channel.

| Propriété                  | Valeur                            |
| -------------------------- | --------------------------------- |
| Obligatoire                | false                             |
| Valeur par défaut          |                                   |
| Type                       | String                            |
| Nom d’affichage du portail | Nom d’affichage du Shared Channel |

#### SourceGroupId

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

| Propriété                  | Valeur                                                |
| -------------------------- | ----------------------------------------------------- |
| Obligatoire                | false                                                 |
| Valeur par défaut          |                                                       |
| Type                       | String                                                |
| Nom d’affichage du portail | Groupe source                                         |
| masqué dans le portail     | oui (préconfiguré via la personnalisation du runbook) |

#### TargetGroupId

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

| Propriété                  | Valeur               |
| -------------------------- | -------------------- |
| Obligatoire                | false                |
| Valeur par défaut          |                      |
| Type                       | String               |
| Nom d’affichage du portail | Security Group cible |

#### RemoveExtraMembers

Lorsque cette option est activée, les membres qui existent uniquement dans la cible et pas dans la source sont supprimés afin que la cible réplique la source. Lorsqu’elle est désactivée (par défaut), le runbook ajoute uniquement les membres manquants.

| Propriété                  | Valeur                                                                       |
| -------------------------- | ---------------------------------------------------------------------------- |
| Obligatoire                | false                                                                        |
| Valeur par défaut          | Faux                                                                         |
| Type                       | Booléen                                                                      |
| Nom d’affichage du portail | Supprimer les membres qui n’existent que dans la cible (miroir de la source) |

#### IncludeGuests

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

| Propriété                  | Valeur                           |
| -------------------------- | -------------------------------- |
| Obligatoire                | false                            |
| Valeur par défaut          | Faux                             |
| Type                       | Booléen                          |
| Nom d’affichage du portail | Inclure les utilisateurs invités |

#### RemoveFromTeam

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

| Propriété                  | Valeur                                                                              |
| -------------------------- | ----------------------------------------------------------------------------------- |
| Obligatoire                | false                                                                               |
| Valeur par défaut          | Faux                                                                                |
| Type                       | Booléen                                                                             |
| Nom d’affichage du portail | Lors de la suppression du canal, supprimer également l’utilisateur de l’équipe hôte |
| masqué dans le portail     | oui (préconfiguré via la personnalisation du runbook)                               |

#### WhatIfMode

Lorsqu’il est activé, le runbook journalise seulement les changements qu’il ferait, sans rien écrire.

| Propriété                  | Valeur                                                             |
| -------------------------- | ------------------------------------------------------------------ |
| Obligatoire                | false                                                              |
| Valeur par défaut          | Faux                                                               |
| Type                       | Booléen                                                            |
| Nom d’affichage du portail | Exécution à blanc (journalisation uniquement, aucune modification) |

#### SendEmailReport

Lorsque cette option est activée, un rapport e-mail aux couleurs de RealmJoin est envoyé via Send-RjReportEmail après l’exécution. L’activation affiche les champs d’adresse du destinataire et de format de fichier du rapport.

| Propriété                  | Valeur                        |
| -------------------------- | ----------------------------- |
| Obligatoire                | false                         |
| Valeur par défaut          | Faux                          |
| Type                       | Booléen                       |
| Nom d’affichage du portail | Envoyer le rapport par e-mail |

**Options du portail**

| Option du portail                   | Valeur |
| ----------------------------------- | ------ |
| Oui - envoyer le rapport par e-mail |        |
| Non - ne pas envoyer d’e-mail       |        |

#### EmailTo

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

| Propriété                  | Valeur                                                |
| -------------------------- | ----------------------------------------------------- |
| Obligatoire                | false                                                 |
| Valeur par défaut          |                                                       |
| Type                       | String                                                |
| Nom d’affichage du portail | Envoyer le rapport à (adresse(s) e-mail)              |
| masqué dans le portail     | oui (préconfiguré via la personnalisation du runbook) |

#### EmailFrom

Boîte aux lettres expéditrice du rapport. Liée au paramètre d’organisation RJReport.EmailSender.

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      |                                                       |
| Type                   | String                                                |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

#### BrandingHeaderImageUrl

URL HTTPS publique facultative d’une image d’en-tête personnalisée (PNG/JPEG/GIF, 200 Ko max.) pour le courriel de rapport. Provenant du paramètre du tenant RJReport.Branding.HeaderImageUrl. Lorsqu’elle est vide, l’image d’en-tête par défaut de RealmJoin est utilisée.

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      |                                                       |
| Type                   | String                                                |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

#### BrandingFooterImageUrl

URL HTTPS publique facultative d’une image de pied de page personnalisée (PNG/JPEG/GIF, 200 Ko max.) pour le courriel de rapport. Provenant du paramètre du tenant RJReport.Branding.FooterImageUrl. Lorsqu’elle est vide, l’image de pied de page par défaut de RealmJoin est utilisée.

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      |                                                       |
| Type                   | String                                                |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

#### BrandingFooterLink

URL facultative vers laquelle renvoie l’image de pied de page. Provenant du paramètre du tenant RJReport.Branding.FooterLink. Lorsqu’elle est vide, le lien par défaut (<https://www.realmjoin.com>) est utilisé.

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      |                                                       |
| Type                   | String                                                |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

#### BrandingAccentColor

Remplacement facultatif de la couleur d’accent (hexadécimal à 6 chiffres, par ex. « #0052cc ») pour le modèle de courriel de rapport. Provenant du paramètre du tenant RJReport.Branding.AccentColor. Lorsqu’elle est vide ou invalide, la couleur d’accent par défaut de RealmJoin est utilisée.

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      |                                                       |
| Type                   | String                                                |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

#### BrandingTextColor

Remplacement facultatif de la couleur du texte (hexadécimal à 6 chiffres) pour le modèle de courriel de rapport. Provenant du paramètre du tenant RJReport.Branding.TextColor. Lorsqu’elle est vide ou invalide, la couleur du texte par défaut de RealmJoin est utilisée.

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      |                                                       |
| Type                   | String                                                |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

#### ReportFileFormat

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

| Propriété                  | Valeur                                                |
| -------------------------- | ----------------------------------------------------- |
| Obligatoire                | false                                                 |
| Valeur par défaut          | CSV & XLSX                                            |
| Type                       | String                                                |
| Nom d’affichage du portail | Format du fichier de rapport                          |
| masqué dans le portail     | oui (préconfiguré via la personnalisation du runbook) |

**Options du portail**

| Option du portail | Valeur |
| ----------------- | ------ |
| CSV & XLSX        |        |
| CSV only          |        |
| XLSX only         |        |

#### CreateDownloadLink

Lorsque cette option est activée, le ou les fichiers de rapport 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 e-mail si celui-ci est également activé).

| Propriété                  | Valeur                                                                              |
| -------------------------- | ----------------------------------------------------------------------------------- |
| Obligatoire                | false                                                                               |
| Valeur par défaut          | Faux                                                                                |
| Type                       | Booléen                                                                             |
| Nom d’affichage du portail | Créer un lien de téléchargement du rapport (téléverser le rapport vers le stockage) |

**Options du portail**

| Option du portail                                                 | Valeur |
| ----------------------------------------------------------------- | ------ |
| Oui - téléverser le rapport et renvoyer un lien de téléchargement |        |
| Non - ne pas créer de lien de téléchargement                      |        |

#### ContainerName

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

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      | channel-group-member-sync                             |
| Type                   | String                                                |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

#### ResourceGroupName

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

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      |                                                       |
| Type                   | String                                                |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

#### StorageAccountName

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

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      |                                                       |
| Type                   | String                                                |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

#### LinkExpiryDays

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

| Propriété              | Valeur                                                |
| ---------------------- | ----------------------------------------------------- |
| Obligatoire            | false                                                 |
| Valeur par défaut      | 6                                                     |
| Type                   | Int32                                                 |
| masqué dans le portail | oui (préconfiguré via la personnalisation du runbook) |

[Retour à l’aperçu de la référence du runbook](/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.
