> 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).

# Geplante Synchronisierung von Kanal- oder Gruppenmitgliedern

Mitglieder zwischen einem Teams Shared Channel oder einer Gruppe und einer Entra-Sicherheitsgruppe synchronisieren

{% hint style="info" %}
Dies ist ein geplantes Runbook. Es ist so konzipiert, dass es nach einem wiederkehrenden Zeitplan ausgeführt wird, statt für ein einzelnes Objekt ausgelöst zu werden. Siehe [Zeitplanung](/de/automatisierung/runbooks/scheduling.md) für Details zur Konfiguration von Runbook-Zeitplänen.
{% endhint %}

### Beschreibung

Dieses geplante Runbook spiegelt die Mitgliedschaft eines Quellobjekts in ein Zielobjekt in eine Richtung pro Ausführung. Es unterstützt die Synchronisierung von Mitgliedern eines Teams Shared Channel in eine Security Group, die Synchronisierung der Mitglieder einer Gruppe in eine andere Gruppe (z. B. eine Microsoft 365-Gruppe in eine Security Group oder umgekehrt) und die Synchronisierung von Gruppenmitgliedern in einen Teams Shared Channel. Das Hinzufügen fehlender Mitglieder wird immer durchgeführt, während das Entfernen von Mitgliedern, die nur im Ziel vorhanden sind, optional ist und über einen Parameter gesteuert wird. Die Behandlung von Gästen und ob das Entfernen aus dem Kanal auch die Mitgliedschaft im Hostteam entfernt, ist konfigurierbar, und das Runbook kann optional einen E-Mail-Bericht senden und die Ergebnisse als zeitlich begrenzten Download-Link hochladen. Der Parameter ReportFileFormat steuert, welche Berichtsdateiformate generiert und bereitgestellt werden (nur CSV, CSV & XLSX oder nur XLSX). Wenn der CSV-Anhang das Größenlimit der E-Mail überschreitet und "CSV & XLSX" ausgewählt ist, fällt die E-Mail auf die Excel-Arbeitsmappe allein zurück.

### So funktioniert es

Dieses geplante Runbook spiegelt die Mitgliedschaft eines **Quell** Objekt in ein **Ziel** Objekt in genau eine Richtung pro Ausführung. Bei jeder Ausführung:

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

#### Richtungen

Der `Direction` Parameter legt fest, 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 (z. B. eine Microsoft 365-Gruppe in eine Security Group oder umgekehrt durch Vertauschen von Quelle und Ziel).
* **`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** über `RemoveExtraMembers` (standardmäßig aus). Bei aktivierter Entfernung wird das Ziel exakt an der Quelle gespiegelt; ist sie deaktiviert, ist das Runbook nur zum Hinzufügen.

#### Erweiterung von Gruppenmitgliedern

Gruppenmitglieder auf der Quellseite werden aufgelöst **transitiv**, sodass Benutzer, die über verschachtelte Gruppen Mitglieder sind, eingeschlossen werden. Auf der Zielseite werden nur **direkte** Mitglieder berücksichtigt, da Hinzufügen- und Entfernenvorgänge auf der direkten Mitgliedschaft arbeiten.

#### Gastbehandlung

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

#### Besonderheiten von Shared Channels

* Wenn eine Gruppe synchronisiert wird **in** einen Shared Channel, ist die Teammitgliedschaft eine 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 im Host-Team zu entfernen.

#### Trockenlauf

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

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

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

Der Upload in das Storage Account authentifiziert sich mit der verwalteten Identität des Automation-Kontos; diese Identität benötigt die **Storage Account Contributor** RBAC-Rolle auf dem Ziel-Storage Account (dies ist eine Azure-RBAC-Zuweisung und keine Graph-Anwendungsberechtigung).

#### Zeitplanung

Für den unbeaufsichtigten Betrieb nach Zeitplan ausgelegt. Da das Runbook idempotent ist, hält ein einzelner wiederkehrender Zeitplan das Ziel mit der Quelle synchron, wenn Mitglieder hinzukommen oder wegfallen.

### E-Mail-Branding

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

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

Wenn diese Einstellungen nicht konfiguriert sind, werden die standardmäßigen RealmJoin-Grafiken und -Farben 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 → Kanal- oder Gruppenmitglieder synchronisieren (geplant)

**Vollständiger 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.9)<br>Microsoft.Graph.Authentication (>= 2.39.0)<br>Az.Accounts (>= 5.5.2)</p> |
| Planbar              | ja                                                                                                                |

### Berechtigungen

#### Anwendungsberechtigungen

* **Typ**: Microsoft Graph
  * Group.ReadWrite.All
    * *Ermittelt Quell-/Zielgruppen und das Host-Team 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 überprü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 Mitgliedschaft im Host-Team 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 Berichts-E-Mail aufzunehmen*
  * Mail.Send *(optional — Funktion: E-Mail-Bericht)*
    * *Sendet den Synchronisierungsbericht über Send-RjReportEmail, wenn die E-Mail-Berichterstattung aktiviert ist*

### Parameter

#### Direction

Wählt aus, was womit synchronisiert wird. SharedChannelToGroup kopiert Mitglieder eines Shared Channel in die Zielgruppe, GroupToGroup kopiert Mitglieder der Quellgruppe in die Zielgruppe, und GroupToSharedChannel kopiert Mitglieder der Quellgruppe in den Shared Channel.

| Eigenschaft           | Wert                           |
| --------------------- | ------------------------------ |
| Erforderlich          | wahr                           |
| Standardwert          |                                |
| Typ                   | Zeichenfolge                   |
| Anzeigename im Portal | Was synchronisiert werden soll |

**Portal-Optionen**

| Portal-Option                               | Wert |
| ------------------------------------------- | ---- |
| Shared Channel-Mitglieder -> Security Group |      |
| Gruppenmitglieder -> Gruppe                 |      |
| Gruppenmitglieder -> Shared Channel         |      |

#### TeamId

Objekt-ID des Teams, das den Shared Channel hostet. Wird nur für die Shared-Channel-Richtungen verwendet.

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

#### ChannelName

Exakter Anzeigename des Shared Channel innerhalb des ausgewählten Teams. Wird nur für die Shared-Channel-Richtungen verwendet.

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

#### SourceGroupId

Objekt-ID der Quellgruppe, deren Mitglieder kopiert werden. Wird für die Quellgruppen-Richtungen verwendet.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Anzeigename im Portal  | Quellgruppe                                             |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### TargetGroupId

Objekt-ID der Ziel Security Group, die die Mitglieder erhält. Wird für die Zielgruppen-Richtungen verwendet.

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

#### RemoveExtraMembers

Wenn aktiviert, werden Mitglieder, die nur im Ziel und nicht in der Quelle existieren, entfernt, sodass das Ziel die Quelle spiegelt. Wenn deaktiviert (Standard), fügt das Runbook nur fehlende Mitglieder hinzu.

| Eigenschaft           | Wert                                                              |
| --------------------- | ----------------------------------------------------------------- |
| Erforderlich          | falsch                                                            |
| Standardwert          | Falsch                                                            |
| Typ                   | Boolesch                                                          |
| Anzeigename im Portal | Entferne Mitglieder, die nur im Ziel existieren (Quelle spiegeln) |

#### IncludeGuests

Wenn aktiviert, werden Gastbenutzer in die Synchronisierung einbezogen und können hinzugefügt oder entfernt werden. Wenn deaktiviert (Standard), werden Gäste übersprungen und nie hinzugefügt oder entfernt.

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

#### RemoveFromTeam

Nur relevant für GroupToSharedChannel. Wenn aktiviert, entfernt das Entfernen eines Mitglieds aus dem Shared Channel diesen Benutzer auch aus der Mitgliedschaft des Host-Teams. Wenn deaktiviert (Standard), wird nur die Kanalmitgliedschaft entfernt.

| Eigenschaft            | Wert                                                                       |
| ---------------------- | -------------------------------------------------------------------------- |
| Erforderlich           | falsch                                                                     |
| Standardwert           | Falsch                                                                     |
| Typ                    | Boolesch                                                                   |
| Anzeigename im Portal  | Beim Entfernen aus dem Kanal den Benutzer auch aus dem Host-Team entfernen |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt)                    |

#### WhatIfMode

Wenn aktiviert, protokolliert das Runbook nur die Änderungen, die es vornehmen würde, ohne etwas zu schreiben.

| Eigenschaft           | Wert                                      |
| --------------------- | ----------------------------------------- |
| Erforderlich          | falsch                                    |
| Standardwert          | Falsch                                    |
| Typ                   | Boolesch                                  |
| Anzeigename im Portal | Dry Run (nur Protokoll, keine Änderungen) |

#### SendEmailReport

Wenn aktiviert, wird nach der Ausführung ein im RealmJoin-Branding gestalteter E-Mail-Bericht über Send-RjReportEmail gesendet. Durch Aktivieren werden die Felder für die Empfängeradresse und das Berichtsdateiformat eingeblendet.

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

**Portal-Optionen**

| Portal-Option                  | Wert |
| ------------------------------ | ---- |
| Ja - Bericht per E-Mail senden |      |
| Nein - keine E-Mail senden     |      |

#### EmailTo

Empfänger-E-Mail-Adresse(n) für den Bericht (durch Kommas getrennt). Wird nur verwendet, wenn SendEmailReport aktiviert ist.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Anzeigename im Portal  | Bericht senden an (E-Mail-Adresse(n))                   |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### EmailFrom

Absenderpostfach für den Bericht. Gebunden an die Organisations-Einstellung RJReport.EmailSender.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingHeaderImageUrl

Optionale öffentliche HTTPS-URL eines benutzerdefinierten Kopfzeilenbilds (PNG/JPEG/GIF, max. 200 KB) für die Bericht-E-Mail. Stammt aus der Mandanteneinstellung RJReport.Branding.HeaderImageUrl. Wenn leer, wird die standardmäßige RealmJoin-Kopfzeilengrafik verwendet.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingFooterImageUrl

Optionale öffentliche HTTPS-URL eines benutzerdefinierten Fußzeilenbilds (PNG/JPEG/GIF, max. 200 KB) für die Bericht-E-Mail. Stammt aus der Mandanteneinstellung RJReport.Branding.FooterImageUrl. Wenn leer, wird die standardmäßige RealmJoin-Fußzeilengrafik verwendet.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingFooterLink

Optionale URL, auf die das Fußzeilenbild verweist. Stammt aus der Mandanteneinstellung RJReport.Branding.FooterLink. Wenn leer, wird der Standardlink (<https://www.realmjoin.com>) verwendet.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingAccentColor

Optionale Überschreibung der Akzentfarbe (6-stelliger Hex-Wert, z. B. '#0052cc') für die Bericht-E-Mail-Vorlage. Stammt aus der Mandanteneinstellung RJReport.Branding.AccentColor. Wenn leer oder ungültig, wird die standardmäßige RealmJoin-Akzentfarbe verwendet.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### BrandingTextColor

Optionale Überschreibung der Textfarbe (6-stelliger Hex-Wert) für die Bericht-E-Mail-Vorlage. Stammt aus der Mandanteneinstellung RJReport.Branding.TextColor. Wenn leer oder ungültig, wird die standardmäßige RealmJoin-Textfarbe verwendet.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### ReportFileFormat

Steuert, welche Berichtdateiformate erzeugt und bereitgestellt werden: "nur CSV", "CSV & XLSX" (Standard) oder "nur XLSX".

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           | CSV & XLSX                                              |
| Typ                    | Zeichenfolge                                            |
| Anzeigename im Portal  | Berichtdateiformat                                      |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

**Portal-Optionen**

| Portal-Option | Wert |
| ------------- | ---- |
| CSV & XLSX    |      |
| nur CSV       |      |
| nur XLSX      |      |

#### CreateDownloadLink

Wenn aktiviert, werden die Berichtsdatei(en) in ein Storage Account hochgeladen und zeitlich begrenzte Download-Links zurückgegeben (und im E-Mail-Bericht eingeschlossen, wenn dies ebenfalls aktiviert ist).

| Eigenschaft           | Wert                                                                                 |
| --------------------- | ------------------------------------------------------------------------------------ |
| Erforderlich          | falsch                                                                               |
| Standardwert          | Falsch                                                                               |
| Typ                   | Boolesch                                                                             |
| Anzeigename im Portal | Einen Download-Link für den Bericht erstellen (Bericht in Storage Account hochladen) |

**Portal-Optionen**

| Portal-Option                                              | Wert |
| ---------------------------------------------------------- | ---- |
| Ja - Bericht hochladen und einen Download-Link zurückgeben |      |
| Nein - keinen Download-Link erstellen                      |      |

#### ContainerName

Für den Upload verwendeter Storage-Container. Pro Runbook konfiguriert.

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

#### ResourceGroupName

Ressourcengruppe, die das Storage Account enthält. Gebunden an RJReport.StorageAccount.ResourceGroup.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### StorageAccountName

Für den Upload verwendetes Storage Account. Gebunden an RJReport.StorageAccount.StorageAccountName.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           |                                                         |
| Typ                    | Zeichenfolge                                            |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

#### LinkExpiryDays

Tage, bis der generierte Download-Link abläuft. Gebunden an RJReport.StorageAccount.LinkExpiryDays.

| Eigenschaft            | Wert                                                    |
| ---------------------- | ------------------------------------------------------- |
| Erforderlich           | falsch                                                  |
| Standardwert           | 6                                                       |
| Typ                    | Int32                                                   |
| Im Portal ausgeblendet | ja (vorgabemäßig über die Runbook-Anpassung festgelegt) |

[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 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/de/automatisierung/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.
