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

# Channel- oder Gruppenmitglieder synchronisieren, geplant

### Beschreibung

Dieses geplante Runbook spiegelt die Mitgliedschaft eines Quellobjekts in einem Zielobjekt pro Lauf in eine Richtung wider. Es unterstützt das Synchronisieren von Teams Shared Channel-Mitgliedern in eine Security Group, das Synchronisieren der Mitglieder einer Gruppe in eine andere Gruppe (zum Beispiel einer Microsoft 365-Gruppe in eine Security Group oder umgekehrt) sowie das Synchronisieren von Gruppenmitgliedern in einen Teams Shared Channel. Das Hinzufügen fehlender Mitglieder wird immer ausgeführt, während das Entfernen von Mitgliedern, die nur im Ziel vorhanden sind, optional ist und über einen Parameter gesteuert wird. Die Gastbehandlung und ob Entfernungen aus dem Kanal auch die Mitgliedschaft im Host-Team entfernen, sind 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 E-Mail-Größenlimit überschreitet und "CSV & XLSX" ausgewählt ist, wechselt die E-Mail nur auf die Excel-Arbeitsmappe.

### So funktioniert es

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

1. Löst die Quell- und Zielobjekte für die ausgewählte Richtung auf.
2. Liest die aktuellen Mitgliedermengen 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

Die `Richtung` -Parameter legt fest, was wohin 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 ausgeführt. Das Entfernen von Mitgliedern, die nur im Ziel vorhanden sind, ist **nur per Opt-in** über `RemoveExtraMembers` (standardmäßig deaktiviert). Bei aktivierter Entfernung wird das Ziel exakt an der Quelle gespiegelt; bei deaktivierter Entfernung fügt das Runbook nur hinzu.

#### Erweiterung von Gruppenmitgliedern

Gruppenmitglieder auf der Quellseite werden **transitiv**, sodass Benutzer, die über verschachtelte Gruppen Mitglieder sind, einbezogen werden. Auf der Zielseite werden nur **direkte** Mitglieder berücksichtigt, da Hinzufügungs- und Entfernungsoperationen auf direkter Mitgliedschaft basieren.

#### Gastbehandlung

`IncludeGuests` (standardmäßig deaktiviert) steuert, ob Gastbenutzer an der Synchronisierung teilnehmen. Wenn es deaktiviert ist, 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 von Shared Channels

* Wenn eine Gruppe synchronisiert wird **in** einen Shared Channel ist die Team-Mitgliedschaft eine Voraussetzung für die Kanalmitgliedschaft. Daher stellt das Runbook zuerst sicher, dass der Benutzer Mitglied des Host-Teams ist, und fügt ihn 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

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

#### Berichterstellung (optional, beide standardmäßig aus)

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

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

#### Planung

Konzipiert für den unbeaufsichtigten, geplanten Betrieb. Da das Runbook idempotent ist, hält ein einzelner wiederkehrender Zeitplan das Ziel synchron mit der Quelle, während Mitglieder kommen und gehen.

### Ort

Organisation → Allgemein → Kanal- oder Gruppenmitglieder synchronisieren (geplant)

**Vollständiger Runbook-Name**

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

### Berechtigungen

#### Anwendungsberechtigungen

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

### Parameter

#### Richtung

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

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | true         |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### TeamId

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

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### ChannelName

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

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### SourceGroupId

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

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### TargetGroupId

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

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### RemoveExtraMembers

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

| Eigenschaft  | Wert     |
| ------------ | -------- |
| Erforderlich | false    |
| Standardwert | Falsch   |
| Typ          | Boolesch |

#### 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 niemals hinzugefügt oder entfernt.

| Eigenschaft  | Wert     |
| ------------ | -------- |
| Erforderlich | false    |
| Standardwert | Falsch   |
| Typ          | Boolesch |

#### RemoveFromTeam

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

| Eigenschaft  | Wert     |
| ------------ | -------- |
| Erforderlich | false    |
| Standardwert | Falsch   |
| Typ          | Boolesch |

#### WhatIfMode

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

| Eigenschaft  | Wert     |
| ------------ | -------- |
| Erforderlich | false    |
| Standardwert | Falsch   |
| Typ          | Boolesch |

#### SendEmailReport

Wenn aktiviert, wird nach dem Lauf ein per RealmJoin gebrandeter E-Mail-Bericht über Send-RjReportEmail gesendet. Wenn Sie dies aktivieren, werden die Felder für die Empfängeradresse und das Berichtsdateiformat eingeblendet.

| Eigenschaft  | Wert     |
| ------------ | -------- |
| Erforderlich | false    |
| Standardwert | Falsch   |
| Typ          | Boolesch |

#### EmailTo

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

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### EmailFrom

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

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### ReportFileFormat

Steuert, welche Berichtsdateiformate generiert und bereitgestellt werden: "Nur CSV", "CSV & XLSX" (Standard) oder "Nur XLSX".

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert | CSV & XLSX   |
| Typ          | Zeichenfolge |

#### CreateDownloadLink

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

| Eigenschaft  | Wert     |
| ------------ | -------- |
| Erforderlich | false    |
| Standardwert | Falsch   |
| Typ          | Boolesch |

#### ContainerName

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

| Eigenschaft  | Wert                      |
| ------------ | ------------------------- |
| Erforderlich | false                     |
| Standardwert | channel-group-member-sync |
| Typ          | Zeichenfolge              |

#### ResourceGroupName

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

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### StorageAccountName

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

| Eigenschaft  | Wert         |
| ------------ | ------------ |
| Erforderlich | false        |
| Standardwert |              |
| Typ          | Zeichenfolge |

#### LinkExpiryDays

Anzahl der Tage bis zum Ablauf des generierten Download-Links. Gebunden an RJReport.StorageAccount.LinkExpiryDays.

| Eigenschaft  | Wert  |
| ------------ | ----- |
| Erforderlich | false |
| Standardwert | 6     |
| Typ          | Int32 |

[Zurück zur Übersicht der Runbook-Referenzen](/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.
