> 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 du canal ou du groupe

{% hint style="info" %}
Il s'agit d'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 seul objet. Voir [Planification](/fr/automatisation/runbooks/scheduling.md) pour plus de détails sur la façon de configurer les planifications du runbook.
{% endhint %}

### Description

Ce runbook planifié reflète l’appartenance d’un objet source vers un objet cible, dans un seul sens par exécution. Il prend en charge la synchronisation des membres d’un Teams Shared Channel vers un groupe de sécurité, la synchronisation des membres d’un groupe vers un autre groupe (par exemple un groupe Microsoft 365 vers un groupe de sécurité, ou inversement) 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 se rabat sur le seul classeur Excel.

### Fonctionnement

Ce runbook planifié reflète l’appartenance d’un **source** objet dans un **cible** objet dans un seul sens 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 tous les membres de la cible qui n’existent 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 groupe de sécurité cible.
* **`GroupToGroup`** - les membres d’un groupe source sont copiés dans un groupe cible (par exemple un groupe Microsoft 365 vers un groupe de sécurité, ou l’inverse en intervertissant source et 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). Avec la suppression activée, la cible est exactement mise en miroir par rapport à la source ; avec elle désactivée, le runbook est en mode ajout uniquement.

#### Expansion des membres de groupe

Les membres du groupe côté source sont résolus **de manière transitive**, de sorte que les utilisateurs membres via des groupes imbriqués sont inclus. Côté cible, seuls les membres **directs** 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 canaux partagés refusent souvent les invités, donc cette option est désactivée par défaut.

#### Spécificités des canaux partagés

* Lorsqu’un groupe est synchronisé **dans** un canal partagé, l’appartenance à l’équipe est une condition préalable à l’appartenance au canal, donc le runbook s’assure 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 canal partagé, seule l’appartenance au canal est supprimée par défaut. Activez `RemoveFromTeam` pour supprimer aussi l’utilisateur de l’appartenance à l’équipe hôte.

#### Exécution à blanc

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

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

* **`SendEmailReport`** envoie un e-mail au nom de RealmJoin (via `Send-RjReportEmail`) avec les statistiques d’exécution et une pièce jointe CSV सूचीant chaque modification individuelle. L’expéditeur est pris dans le `RJReport.EmailSender` .
* **`CreateDownloadLink`** téléverse le même CSV vers un compte de stockage et renvoie un lien de téléchargement SAS à durée limitée (également intégré à l’e-mail lorsque les deux options sont activées). Le compte de stockage cible est pris à partir du `paramètres du locataire RJReport.StorageAccount.*` .

Le téléversement vers le stockage s’authentifie avec l’identité managée du compte Automation ; cette identité a besoin du **rôle RBAC Storage Blob Data 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 calendrier. Comme le runbook est idempotent, une seule planification récurrente maintient la cible synchronisée avec la source au fil des arrivées et des départs des membres.

### Branding de l’e-mail

L’e-mail du rapport respecte les `RJReport.Branding.*` paramètres Tenant facultatifs : une image d’en-tête personnalisée, une image de pied de page personnalisée (URL HTTPS publiques, PNG/JPEG/GIF, 200 KB max. chacune), un lien de pied de page personnalisé, ainsi que des couleurs d’accent et de texte personnalisées (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 de branding qui ne peut pas être téléchargée ou validée, ou une valeur de couleur qui n’est pas une couleur hexadécimale valide, n’empêche jamais l’envoi de l’e-mail du rapport - la valeur par défaut correspondante est utilisée à la place.

Voir la [documentation RealmJoin Report Settings](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) pour les détails de configuration.

### Emplacement

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

**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, puis é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 canal partagé et vérifier qu’il s’agit bien d’un canal partagé*
  * ChannelMember.ReadWrite.All
    * *Lit, ajoute et supprime les membres du canal partagé 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 canal partagé*
  * User.Read.All
    * *Lit les objets utilisateur membres (id, UPN, userType) pour détecter les invités et calculer l’écart 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 rapport par e-mail est activé*

### Paramètres

#### Direction

Sélectionne ce qui est synchronisé vers quoi. SharedChannelToGroup copie les membres du canal partagé 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 canal partagé.

| Propriété                  | Valeur                       |
| -------------------------- | ---------------------------- |
| Obligatoire                | vrai                         |
| Valeur par défaut          |                              |
| Type                       | Chaîne de caractères         |
| Nom d’affichage du portail | Ce qui doit être synchronisé |

**Options du portail**

| Option du portail                               | Valeur |
| ----------------------------------------------- | ------ |
| Membres du Shared Channel -> groupe de sécurité |        |
| Membres du groupe -> groupe                     |        |
| Membres du groupe -> Shared Channel             |        |

#### TeamId

Identifiant d’objet de l’équipe qui héberge le canal partagé. Utilisé uniquement pour les directions avec canal partagé.

| Propriété                  | Valeur                             |
| -------------------------- | ---------------------------------- |
| Obligatoire                | faux                               |
| Valeur par défaut          |                                    |
| Type                       | Chaîne de caractères               |
| Nom d’affichage du portail | Équipe hébergeant le canal partagé |

#### ChannelName

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

| Propriété                  | Valeur                           |
| -------------------------- | -------------------------------- |
| Obligatoire                | faux                             |
| Valeur par défaut          |                                  |
| Type                       | Chaîne de caractères             |
| Nom d’affichage du portail | Nom d’affichage du canal partagé |

#### SourceGroupId

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

| Propriété                  | Valeur                                             |
| -------------------------- | -------------------------------------------------- |
| Obligatoire                | faux                                               |
| Valeur par défaut          |                                                    |
| Type                       | Chaîne de caractères                               |
| Nom d’affichage du portail | Groupe source                                      |
| Masqué dans le portail     | oui (prédéfini via la personnalisation du runbook) |

#### TargetGroupId

Identifiant d’objet du groupe de sécurité cible qui reçoit les membres. Utilisé pour les directions avec groupe cible.

| Propriété                  | Valeur                   |
| -------------------------- | ------------------------ |
| Obligatoire                | faux                     |
| Valeur par défaut          |                          |
| Type                       | Chaîne de caractères     |
| Nom d’affichage du portail | Groupe de sécurité cible |

#### RemoveExtraMembers

Lorsqu’elle est activée, 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’elle est désactivée (par défaut), le runbook ajoute uniquement les membres manquants.

| Propriété                  | Valeur                                                                       |
| -------------------------- | ---------------------------------------------------------------------------- |
| Obligatoire                | faux                                                                         |
| 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

Lorsqu’elle 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                | faux                             |
| Valeur par défaut          | Faux                             |
| Type                       | Booléen                          |
| Nom d’affichage du portail | Inclure les utilisateurs invités |

#### RemoveFromTeam

S’applique uniquement à GroupToSharedChannel. Lorsqu’elle est activée, la suppression d’un membre du canal partagé le supprime aussi 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                | faux                                                                            |
| Valeur par défaut          | Faux                                                                            |
| Type                       | Booléen                                                                         |
| Nom d’affichage du portail | Lors de la suppression du canal, supprimer aussi l’utilisateur de l’équipe hôte |
| Masqué dans le portail     | oui (prédéfini via la personnalisation du runbook)                              |

#### WhatIfMode

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

| Propriété                  | Valeur                                               |
| -------------------------- | ---------------------------------------------------- |
| Obligatoire                | faux                                                 |
| Valeur par défaut          | Faux                                                 |
| Type                       | Booléen                                              |
| Nom d’affichage du portail | Essai à blanc (journal uniquement, aucun changement) |

#### SendEmailReport

Lorsqu’il est activé, un rapport par e-mail aux couleurs de RealmJoin est envoyé via Send-RjReportEmail après l’exécution. L’activer fait apparaître les champs d’adresse du destinataire et de format de fichier du rapport.

| Propriété                  | Valeur                        |
| -------------------------- | ----------------------------- |
| Obligatoire                | faux                          |
| Valeur par défaut          | Faux                          |
| Type                       | Booléen                       |
| Nom d’affichage du portail | Envoyer un 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 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 de caractères                               |
| Nom d’affichage du portail | Envoyer le rapport à (adresse(s) e-mail)           |
| Masqué dans le portail     | oui (prédéfini via la personnalisation du runbook) |

#### EmailFrom

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

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingHeaderImageUrl

URL HTTPS publique facultative d’une image d’en-tête personnalisée (PNG/JPEG/GIF, 200 KB max.) pour l’e-mail du rapport. Provenant du paramètre 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            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingFooterImageUrl

URL HTTPS publique facultative d’une image de pied de page personnalisée (PNG/JPEG/GIF, 200 KB max.) pour l’e-mail du rapport. Provenant du paramètre 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            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingFooterLink

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

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingAccentColor

Remplacement facultatif de la couleur d’accent (hexadécimal à 6 chiffres, par ex. '#0052cc') pour le modèle d’e-mail du rapport. Provenant du paramètre 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            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### BrandingTextColor

Remplacement facultatif de la couleur du texte (hexadécimal à 6 chiffres) pour le modèle d’e-mail du rapport. Provenant du paramètre 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            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### ReportFileFormat

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

| Propriété                  | Valeur                                             |
| -------------------------- | -------------------------------------------------- |
| Obligatoire                | faux                                               |
| Valeur par défaut          | CSV & XLSX                                         |
| Type                       | Chaîne de caractères                               |
| Nom d’affichage du portail | Format du fichier de rapport                       |
| Masqué dans le portail     | oui (prédéfini via la personnalisation du runbook) |

**Options du portail**

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

#### CreateDownloadLink

Lorsqu’elle est activée, le ou les fichiers de rapport sont téléversés vers un compte de stockage et des liens de téléchargement à durée limitée sont renvoyés (et inclus dans le rapport par e-mail si celui-ci est également activé).

| Propriété                  | Valeur                                                                              |
| -------------------------- | ----------------------------------------------------------------------------------- |
| Obligatoire                | faux                                                                                |
| 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 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 de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### ResourceGroupName

Groupe de ressources qui contient le compte de stockage. Lié à RJReport.StorageAccount.ResourceGroup.

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini via la personnalisation du runbook) |

#### StorageAccountName

Compte de stockage utilisé pour le téléversement. Lié à RJReport.StorageAccount.StorageAccountName.

| Propriété              | Valeur                                             |
| ---------------------- | -------------------------------------------------- |
| Obligatoire            | faux                                               |
| Valeur par défaut      |                                                    |
| Type                   | Chaîne de caractères                               |
| Masqué dans le portail | oui (prédéfini 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            | faux                                               |
| Valeur par défaut      | 6                                                  |
| Type                   | Int32                                              |
| Masqué dans le portail | oui (prédéfini 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.
