> 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/de/automatisierung/runbooks/runbook-references/org/general/sync-channel-or-group-members_scheduled.md).

# Kanäle oder Gruppenmitglieder synchronisieren, geplant

Mitglieder zwischen einem Teams Shared Channel und einer Gruppe spiegeln

{% hint style="info" %}
Dies ist ein geplanter Runbook-Lauf. Er ist dafür ausgelegt, nach einem wiederkehrenden Zeitplan ausgeführt zu werden, anstatt für ein einzelnes Objekt ausgelöst zu werden. Siehe [Planung](/de/automatisierung/runbooks/scheduling.md) für Details dazu, wie Runbook-Zeitpläne konfiguriert werden.
{% endhint %}

### Beschreibung

Kopiert bei jedem Lauf die Mitglieder einer Quelle in ein Ziel. Die Quelle und das Ziel können ein Shared Channel und eine Security Group, zwei Gruppen oder eine Gruppe und ein Shared Channel sein. Fehlende Mitglieder werden immer hinzugefügt; Mitglieder, die nur im Ziel vorhanden sind, werden nur auf Anfrage entfernt. Ein Probelauf zeigt die Änderungen, ohne sie anzuwenden, und der Bericht kann per E-Mail gesendet oder als Download-Link bereitgestellt werden. Details zu den Optionen stehen in der Runbook-Dokumentation (docs.realmjoin.com).

### So funktioniert es

Dieses geplante Runbook spiegelt die Mitgliedschaft eines **Quelle** Objekt in ein **Ziel** Objekts in eine einzige Richtung pro Lauf. Bei jedem Lauf:

1. Löst die Quell- und Zielobjekte für die ausgewählte Richtung auf.
2. Liest die aktuellen Mitgliedersätze beider Seiten.
3. Fügt jedes Quellmitglied hinzu, das im Ziel fehlt.
4. Entfernt optional jedes Zielmitglied, das in der Quelle nicht existiert (Spiegelmodus).

#### Richtungen

Das `Richtung` Parameter wählt aus, was womit synchronisiert wird:

* **`SharedChannelToGroup`** - die Mitglieder eines Teams Shared Channel werden in eine Ziel-Security Group kopiert.
* **`GroupToGroup`** - die Mitglieder einer Quellgruppe werden in eine Zielgruppe kopiert (zum Beispiel eine Microsoft 365-Gruppe in eine Security Group oder umgekehrt, indem Quelle und Ziel vertauscht werden).
* **`GroupToSharedChannel`** - die Mitglieder einer Quellgruppe werden in einen Teams Shared Channel kopiert.

#### Hinzufügen und Entfernen

Das Hinzufügen fehlender Mitglieder wird immer durchgeführt. Das Entfernen von Mitgliedern, die nur im Ziel vorhanden sind, ist **optional aktivierbar** über `RemoveExtraMembers` (standardmäßig deaktiviert). Wenn das Entfernen aktiviert ist, wird das Ziel exakt an der Quelle gespiegelt; wenn es deaktiviert ist, fügt das Runbook nur hinzu.

#### Gruppenmitglied-Erweiterung

Gruppenmitglieder auf der Quellseite werden aufgelöst **transitiv**, sodass Benutzer, die über verschachtelte Gruppen Mitglieder sind, einbezogen werden. Auf der Zielseite werden nur **direkte** Mitglieder berücksichtigt, da Add- und Remove-Operationen auf die direkte Mitgliedschaft wirken.

#### Behandlung von Gästen

`IncludeGuests` (standardmäßig deaktiviert) steuert, ob Gastbenutzer an der Synchronisierung teilnehmen. Ist dies deaktiviert, werden Gäste auf beiden Seiten übersprungen und niemals hinzugefügt oder entfernt. Shared Channels lehnen Gäste häufig ab, daher ist dies standardmäßig deaktiviert.

#### Besonderheiten des Shared Channel

* Wenn eine Gruppe synchronisiert wird **in** einen Shared Channel ist die Team-Mitgliedschaft Voraussetzung für die Kanalmitgliedschaft, daher stellt das Runbook zuerst sicher, dass der Benutzer Mitglied des Host-Teams ist, und fügt den Benutzer dann dem Kanal hinzu.
* Wenn Mitglieder **entfernt** aus einem Shared Channel wird standardmäßig nur die Kanalmitgliedschaft entfernt. Aktivieren Sie `RemoveFromTeam` um den Benutzer auch aus der Mitgliedschaft des Host-Teams zu entfernen.

#### Trockenlauf

Setze `WhatIfMode` um zu protokollieren, was sich ändern würde, ohne etwas zu schreiben.

#### Berichterstattung (optional, beide standardmäßig deaktiviert)

* **`SendEmailReport`** sendet eine E-Mail im RealmJoin-Branding (über `Send-RjRbReportEmail`) mit Laufstatistiken und einem CSV-Anhang, der jede einzelne Änderung auflistet. Der Absender wird aus der `RJReport.EmailSender` Einstellung übernommen.
* **`CreateDownloadLink`** lädt dieselbe CSV in ein Storage Account hoch und gibt einen zeitlich begrenzten SAS-Download-Link zurück (der auch in die E-Mail eingebettet wird, wenn beide Optionen aktiviert sind). Das Ziel-Storage Account wird aus den `RJReport.StorageAccount.*` Einstellungen übernommen.

Der Speicher-Upload authentifiziert sich mit der verwalteten Identität des Automation-Kontos; diese Identität benötigt die **Reader and Data Access** RBAC-Rolle auf dem Ziel-Storage Account (dies ist eine Azure-RBAC-Zuweisung, keine Graph-Anwendungsberechtigung).

#### Planung

Dafür ausgelegt, unbeaufsichtigt nach einem Zeitplan zu laufen. Da das Runbook idempotent ist, hält ein einzelner wiederkehrender Zeitplan das Ziel mit der Quelle synchron, während Mitglieder kommen und gehen.

### E-Mail-Branding

Die Bericht-E-Mail berücksichtigt die optionalen `RJReport.Branding.*` Mandanteneinstellungen:

* **Kopf- und Fußzeilenbild** – öffentliche HTTPS-URLs, PNG/JPEG/GIF, max. 200 KB jeweils
* **Fußzeilenlink** – Ziel des Fußzeilenbildes
* **Akzent- und Textfarbe** – 6-stellige Hex-Werte, z. B. `#0052cc`

Wenn diese Einstellungen nicht konfiguriert sind, werden die Standardgrafiken und -farben von RealmJoin verwendet. Ein Bild, das nicht heruntergeladen oder validiert werden kann, oder ein ungültiger Farbwert verhindert niemals die Bericht-E-Mail – stattdessen wird der entsprechende Standardwert verwendet.

Einrichtungsanweisungen und Bildanforderungen: [E-Mail-Branding](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings#email-branding-optional).

### Speicherort

Organisation → Allgemein → Channel- oder Gruppenmitglieder synchronisieren (Geplant)

**Voller Runbook-Name**

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

### Details

| Eigenschaft          | Wert                                                                                                               |
| -------------------- | ------------------------------------------------------------------------------------------------------------------ |
| Version              | 1.3.0                                                                                                              |
| Erforderliche Module | <p>RealmJoin.RunbookHelper (>= 0.8.10)<br>Microsoft.Graph.Authentication (>= 2.41.2)<br>Az.Accounts (>= 5.5.2)</p> |
| Planbar              | ja                                                                                                                 |

### Berechtigungen

#### Anwendungsberechtigungen

* **Typ**: Microsoft Graph
  * Group.ReadWrite.All
    * *Löst Quell-/Zielgruppen und das Host-Team auf und schreibt die direkte Mitgliedschaft über /groups/{id}/members/$ref*
  * GroupMember.ReadWrite.All
    * *Fügt während der Synchronisierung direkte Mitglieder der Zielgruppe hinzu und entfernt sie*
  * Channel.ReadBasic.All
    * *Listet /teams/{id}/channels auf, um den Shared Channel aufzulösen und zu prüfen, dass es sich um einen Shared Channel handelt*
  * ChannelMember.ReadWrite.All
    * *Liest, fügt hinzu und entfernt Mitglieder des Shared Channel über /teams/{id}/channels/{id}/members*
  * TeamMember.ReadWrite.All
    * *Fügt die Host-Team-Mitgliedschaft als Voraussetzung hinzu bzw. entfernt sie als Bereinigung für Mitglieder des Shared Channel*
  * User.Read.All
    * *Liest Benutzerobjekte der Mitglieder (id, UPN, userType), um Gäste zu erkennen und die Mitgliedschaftsänderung zu berechnen*
  * Organization.Read.All
    * *Liest /organization, um den Tenant-Namen in die Bericht-E-Mail aufzunehmen*
  * Mail.Send *(optional — Funktion: E-Mail-Bericht)*
    * *Sendet den Synchronisierungsbericht über Send-RjReportEmail, wenn die E-Mail-Berichterstattung aktiviert ist*

### Parameter

#### Richtung

Was wohin kopiert wird: Mitglieder des Shared Channel in die Zielgruppe, Mitglieder der Quellgruppe in die Zielgruppe oder Mitglieder der Quellgruppe in den Shared Channel.

| Eigenschaft           | Wert         |
| --------------------- | ------------ |
| Erforderlich          | wahr         |
| Standardwert          |              |
| Typ                   | Zeichenfolge |
| Anzeigename im Portal | Richtung     |

**Portaloptionen**

| Portaloption                                 | Wert                 |
| -------------------------------------------- | -------------------- |
| Shared Channel-Mitglieder zur Security Group | SharedChannelToGroup |
| Gruppenmitglieder zu Gruppe                  | GroupToGroup         |
| Gruppenmitglieder zu Shared Channel          | GroupToSharedChannel |

#### TeamId

Team, das den Shared Channel hostet. Nur für die Shared Channel-Richtungen erforderlich.

| Eigenschaft           | Wert                                |
| --------------------- | ----------------------------------- |
| Erforderlich          | falsch                              |
| Standardwert          |                                     |
| Typ                   | Zeichenfolge                        |
| Anzeigename im Portal | Team, das den Shared Channel hostet |

#### ChannelName

Exakter Name des Shared Channel in diesem Team. Nur für die Shared Channel-Richtungen erforderlich.

| Eigenschaft           | Wert                    |
| --------------------- | ----------------------- |
| Erforderlich          | falsch                  |
| Standardwert          |                         |
| Typ                   | Zeichenfolge            |
| Anzeigename im Portal | Name des Shared Channel |

#### SourceGroupId

Gruppe, deren Mitglieder kopiert werden. Erforderlich, wenn die Quelle eine Gruppe ist.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Anzeigename im Portal  | Quellgruppe                                     |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### TargetGroupId

Security Group, die die Mitglieder empfängt. Erforderlich, wenn das Ziel eine Gruppe ist.

| Eigenschaft           | Wert                |
| --------------------- | ------------------- |
| Erforderlich          | falsch              |
| Standardwert          |                     |
| Typ                   | Zeichenfolge        |
| Anzeigename im Portal | Ziel-Security Group |

#### RemoveExtraMembers

Entfernt auch Mitglieder, die nur im Ziel vorhanden sind, sodass die Quelle exakt gespiegelt wird. Andernfalls werden Mitglieder nur hinzugefügt.

| Eigenschaft           | Wert                                            |
| --------------------- | ----------------------------------------------- |
| Erforderlich          | falsch                                          |
| Standardwert          | Falsch                                          |
| Typ                   | Boolesch                                        |
| Anzeigename im Portal | Mitglieder entfernen, die in der Quelle fehlen? |

#### IncludeGuests

Fügt auch Gastbenutzer hinzu und entfernt sie. Andernfalls bleiben Gäste auf beiden Seiten unverändert.

| Eigenschaft           | Wert                      |
| --------------------- | ------------------------- |
| Erforderlich          | falsch                    |
| Standardwert          | Falsch                    |
| Typ                   | Boolesch                  |
| Anzeigename im Portal | Gastbenutzer einbeziehen? |

#### RemoveFromTeam

Wenn ein Mitglied aus dem Shared Channel entfernt wird, wird es auch aus dem Host-Team entfernt. Gilt nur, wenn eine Gruppe in einen Shared Channel kopiert wird.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           | Falsch                                          |
| Typ                    | Boolesch                                        |
| Anzeigename im Portal  | Auch aus dem Host-Team entfernen?               |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### WhatIfMode

Protokolliert nur, was sich ändern würde, ohne etwas zu schreiben.

| Eigenschaft           | Wert      |
| --------------------- | --------- |
| Erforderlich          | falsch    |
| Standardwert          | Falsch    |
| Typ                   | Boolesch  |
| Anzeigename im Portal | Testlauf? |

#### SendEmailReport

Sendet den Bericht an die E-Mail-Adresse des Empfängers.

| Eigenschaft           | Wert                   |
| --------------------- | ---------------------- |
| Erforderlich          | falsch                 |
| Standardwert          | Falsch                 |
| Typ                   | Boolesch               |
| Anzeigename im Portal | E-Mail-Bericht senden? |

**Portaloptionen**

| Portaloption                       | Wert   |
| ---------------------------------- | ------ |
| Ja - den Bericht per E-Mail senden | wahr   |
| Nein - keine E-Mail senden         | falsch |

#### EmailTo

Senden Sie den Bericht an diese Adressen. Trennen Sie mehrere durch Kommas; jeder Empfänger erhält eine separate E-Mail.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Anzeigename im Portal  | Empfänger-E-Mail-Adresse(n)                     |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### EmailFrom

Absenderadresse der Bericht-E-Mail. Wird aus der Mandanteneinstellung RJReport.EmailSender übernommen.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### BrandingHeaderImageUrl

Kopfzeilenbild der Bericht-E-Mail (HTTPS-URL, PNG/JPEG/GIF, max. 200 KB). Wird aus der Mandanteneinstellung RJReport.Branding.HeaderImageUrl übernommen; wenn leer, wird der standardmäßige RealmJoin-Kopfbereich verwendet.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### BrandingFooterImageUrl

Fußzeilenbild der Bericht-E-Mail (HTTPS-URL, PNG/JPEG/GIF, max. 200 KB). Wird aus der Mandanteneinstellung RJReport.Branding.FooterImageUrl übernommen; wenn leer, wird die standardmäßige RealmJoin-Fußzeile verwendet.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### BrandingFooterLink

Link hinter dem Fußzeilenbild der Bericht-E-Mail. Wird aus der Mandanteneinstellung RJReport.Branding.FooterLink übernommen; wenn leer, wird realmjoin.com verwendet.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### BrandingAccentColor

Akzentfarbe der Bericht-E-Mail als 6-stelliger Hexwert. Wird aus der Mandanteneinstellung RJReport.Branding.AccentColor übernommen; wenn leer oder ungültig, wird der standardmäßige RealmJoin-Wert verwendet.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### BrandingTextColor

Textfarbe der Bericht-E-Mail als 6-stelliger Hexwert. Wird aus der Mandanteneinstellung RJReport.Branding.TextColor übernommen; wenn leer oder ungültig, wird der standardmäßige RealmJoin-Wert verwendet.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### ReportFileFormat

Liefern Sie den Bericht als CSV, als Excel-Arbeitsmappe oder beides.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           | CSV & XLSX                                      |
| Typ                    | Zeichenfolge                                    |
| Anzeigename im Portal  | Berichtsdateiformat                             |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

**Portaloptionen**

| Portaloption | Wert       |
| ------------ | ---------- |
| CSV & XLSX   | CSV & XLSX |
| Nur CSV      | Nur CSV    |
| Nur XLSX     | Nur XLSX   |

#### CreateDownloadLink

Lädt den Bericht außerdem hoch und gibt einen Downloadlink zurück, der nach einigen Tagen abläuft.

| Eigenschaft           | Wert                          |
| --------------------- | ----------------------------- |
| Erforderlich          | falsch                        |
| Standardwert          | Falsch                        |
| Typ                   | Boolesch                      |
| Anzeigename im Portal | Einen Downloadlink erstellen? |

**Portaloptionen**

| Portaloption                                              | Wert   |
| --------------------------------------------------------- | ------ |
| Ja - Bericht hochladen und einen Downloadlink zurückgeben | wahr   |
| Nein - keinen Downloadlink erstellen                      | falsch |

#### ContainerName

Speichercontainer, in den die Berichtsdateien hochgeladen werden. Pro Runbook festlegen.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           | channel-group-member-sync                       |
| Typ                    | Zeichenfolge                                    |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### ResourceGroupName

Ressourcengruppe des Storage Account für Bericht-Uploads. Aus der Tenant-Einstellung RJReport.StorageAccount.ResourceGroup übernommen.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### StorageAccountName

Storage Account für Bericht-Uploads. Aus der Tenant-Einstellung RJReport.StorageAccount.StorageAccountName übernommen.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           |                                                 |
| Typ                    | Zeichenfolge                                    |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

#### LinkExpiryDays

Anzahl der Tage, die ein Downloadlink gültig bleibt. Aus der Tenant-Einstellung RJReport.StorageAccount.LinkExpiryDays übernommen.

| Eigenschaft            | Wert                                            |
| ---------------------- | ----------------------------------------------- |
| Erforderlich           | falsch                                          |
| Standardwert           | 6                                               |
| Typ                    | Int32                                           |
| Im Portal ausgeblendet | ja (vorkonfiguriert über die Runbook-Anpassung) |

[Zurück zur Übersicht der Runbook-Referenz](/de/automatisierung/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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
