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

# Kanal- oder Gruppenmitglieder synchronisieren geplant

{% hint style="info" %}
Dies ist ein geplanter Runbook-Durchlauf. Er ist dafür ausgelegt, nach einem wiederkehrenden Zeitplan ausgeführt zu werden, statt für ein einzelnes Objekt ausgelöst zu werden. Siehe [Planung](/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 Lauf. Es unterstützt die Synchronisierung von Mitgliedern eines Teams Shared Channel in eine Sicherheitsgruppe, die Synchronisierung der Mitglieder einer Gruppe in eine andere Gruppe (zum Beispiel eine Microsoft 365-Gruppe in eine Sicherheitsgruppe oder umgekehrt) und die Synchronisierung 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 existieren, optional ist und über einen Parameter gesteuert wird. Die Behandlung von Gästen und die Frage, ob beim Entfernen aus dem Kanal auch die Mitgliedschaft im Host-Team entfernt wird, sind konfigurierbar, und das Runbook kann optional einen E-Mail-Bericht senden und die Ergebnisse als zeitlich begrenzten Downloadlink hochladen. Der Parameter ReportFileFormat steuert, welche Berichtsdateiformate generiert und bereitgestellt werden (nur CSV, CSV & XLSX oder nur XLSX). Wenn der CSV-Anhang die Größenbeschränkung für E-Mails überschreitet und "CSV & XLSX" ausgewählt ist, wechselt die E-Mail auf die Excel-Arbeitsmappe allein.

### So funktioniert es

Dieses geplante Runbook spiegelt die Mitgliedschaft eines **Quell** objekts in ein **Ziel** objekt in eine Richtung pro Lauf. Bei jedem Lauf:

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

Das `Richtung` Parameter legt fest, was wohin synchronisiert wird:

* **`SharedChannelToGroup`** - die Mitglieder eines Teams Shared Channel werden in eine Ziel-Sicherheitsgruppe kopiert.
* **`GroupToGroup`** - die Mitglieder einer Quellgruppe werden in eine Zielgruppe kopiert (zum Beispiel eine Microsoft 365-Gruppe in eine Sicherheitsgruppe 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 ausgeführt. Das Entfernen von Mitgliedern, die nur im Ziel existieren, ist **optional** über `RemoveExtraMembers` (standardmäßig deaktiviert). Wenn das Entfernen aktiviert ist, wird das Ziel exakt an der Quelle gespiegelt; wenn es deaktiviert ist, ist das Runbook nur zum Hinzufügen.

#### Erweiterung der Gruppenmitglieder

Gruppenmitglieder auf der Quellseite werden **rekursiv**, sodass Benutzer, die über verschachtelte Gruppen Mitglied sind, eingeschlossen werden. Auf der Zielseite werden nur **direkte** Mitglieder berücksichtigt, da Hinzufügen- und Entfernenvorgänge 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 nie hinzugefügt oder entfernt. Shared Channels lehnen Gäste häufig ab, daher ist dies standardmäßig deaktiviert.

#### Besonderheiten von Shared Channel

* Wenn eine Gruppe synchronisiert wird **in** einen Shared Channel ist die Teammitgliedschaft Voraussetzung für die Kanalmitgliedschaft. Das Runbook stellt daher 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 werden, wird standardmäßig nur die Kanalmitgliedschaft entfernt. Aktivieren Sie `RemoveFromTeam` um den Benutzer auch aus der Mitgliedschaft des Host-Teams zu entfernen.

#### Testlauf

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

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

* **`SendEmailReport`** sendet eine E-Mail im RealmJoin-Branding (über `Send-RjReportEmail`) mit Laufstatistiken und einem CSV-Anhang mit jeder einzelnen Änderung. Der Absender wird aus dem `RJReport.EmailSender` Einstellung übernommen.
* **`CreateDownloadLink`** lädt dasselbe 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 Storage-Upload authentifiziert sich mit der verwalteten Identität des Automation-Kontos; diese Identität benötigt die **Storage Blob Data Contributor** RBAC-Rolle auf dem Ziel-Storage Account (dies ist eine Azure-RBAC-Zuweisung und keine Graph-Anwendungsberechtigung).

#### Planung

Für den unbeaufsichtigten Betrieb nach Zeitplan konzipiert. 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.*` Tenant-Einstellungen: ein benutzerdefiniertes Headerbild, ein benutzerdefiniertes Footerbild (öffentliche HTTPS-URLs, PNG/JPEG/GIF, max. 200 KB jeweils), einen benutzerdefinierten Footer-Link sowie benutzerdefinierte Akzent- und Textfarben (6-stellige Hex-Werte, z. B. `#0052cc`). Wenn diese Einstellungen nicht konfiguriert sind, werden die Standardgrafiken und -farben von RealmJoin verwendet. Ein Branding-Bild, das nicht heruntergeladen oder validiert werden kann, oder ein Farbwert, der keine gültige Hex-Farbe ist, verhindert niemals die Bericht-E-Mail – stattdessen wird der entsprechende Standard verwendet.

Siehe die [Dokumentation zu RealmJoin Report Settings](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) für Einrichtungsdetails.

### Ort

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
    * *Löst Quell-/Zielgruppen und das Host-Team auf und schreibt direkte Mitgliedschaften über /groups/{id}/members/$ref*
  * GroupMember.ReadWrite.All
    * *Fügt direkte Mitglieder der Zielgruppe während der Synchronisierung hinzu und entfernt sie*
  * Channel.ReadBasic.All
    * *Listet /teams/{id}/channels auf, um den Shared Channel aufzulösen und zu prüfen, ob 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 Host-Team-Mitgliedschaft als Voraussetzung hinzu oder entfernt sie zur Bereinigung für Shared Channel-Mitglieder*
  * User.Read.All
    * *Liest Benutzerobjekte der Mitglieder (id, UPN, userType), um Gäste zu erkennen und die Mitgliedschaftsdifferenz 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-Berichterstellung aktiviert ist*

### Parameter

#### Richtung

Legt fest, was wohin synchronisiert wird. SharedChannelToGroup kopiert Mitglieder des 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          | wahr                           |
| Standardwert          |                                |
| Typ                   | Zeichenfolge                   |
| Anzeigename im Portal | Was synchronisiert werden soll |

**Portaloptionen**

| Portaloption                                       | Wert |
| -------------------------------------------------- | ---- |
| Mitglieder des Shared Channel -> Sicherheitsgruppe |      |
| Gruppenmitglieder -> Gruppe                        |      |
| Gruppenmitglieder -> Shared Channel                |      |

#### TeamId

Objekt-ID des Teams, das den Shared Channel hostet. 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. 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 Richtungen mit Quellgruppe verwendet.

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

#### TargetGroupId

Objekt-ID der Ziel-Sicherheitsgruppe, die die Mitglieder erhält. Wird für die Richtungen mit Zielgruppe verwendet.

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

#### 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                   | Boolescher Wert                                                    |
| Anzeigename im Portal | Mitglieder entfernen, 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                   | Boolescher Wert           |
| Anzeigename im Portal | Gastbenutzer einschließen |

#### RemoveFromTeam

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

| Eigenschaft            | Wert                                                                       |
| ---------------------- | -------------------------------------------------------------------------- |
| Erforderlich           | falsch                                                                     |
| Standardwert           | Falsch                                                                     |
| Typ                    | Boolescher Wert                                                            |
| Anzeigename im Portal  | Bei Entfernung aus dem Kanal den Benutzer auch aus dem Host-Team entfernen |
| Im Portal ausgeblendet | ja (vorkonfiguriert über Runbook-Anpassung)                                |

#### 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                   | Boolescher Wert                           |
| Anzeigename im Portal | Dry Run (nur Protokoll, keine Änderungen) |

#### SendEmailReport

Wenn aktiviert, wird nach dem Lauf ein im RealmJoin-Branding gestalteter E-Mail-Bericht über Send-RjReportEmail gesendet. Das Aktivieren blendet die Felder für die Empfängeradresse und das Berichtsdateiformat ein.

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

**Portaloptionen**

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

#### 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           | falsch                                      |
| Standardwert           |                                             |
| Typ                    | Zeichenfolge                                |
| Anzeigename im Portal  | Bericht senden an (E-Mail-Adresse(n))       |
| Im Portal ausgeblendet | ja (vorkonfiguriert über Runbook-Anpassung) |

#### EmailFrom

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

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

#### BrandingHeaderImageUrl

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

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

#### BrandingFooterImageUrl

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

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

#### BrandingFooterLink

Optionale URL, auf die das Footerbild verlinkt. Stammt aus der Tenant-Einstellung RJReport.Branding.FooterLink. Wenn leer, wird der Standardlink (<https://www.realmjoin.com>) verwendet.

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

#### BrandingAccentColor

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

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

#### BrandingTextColor

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

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

#### ReportFileFormat

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

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

**Portaloptionen**

| Portaloption | Wert |
| ------------ | ---- |
| CSV & XLSX   |      |
| nur CSV      |      |
| nur XLSX     |      |

#### CreateDownloadLink

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

| Eigenschaft           | Wert                                                                   |
| --------------------- | ---------------------------------------------------------------------- |
| Erforderlich          | falsch                                                                 |
| Standardwert          | Falsch                                                                 |
| Typ                   | Boolescher Wert                                                        |
| Anzeigename im Portal | Berichts-Downloadlink erstellen (Bericht in Storage Account hochladen) |

**Portaloptionen**

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

#### ContainerName

Für den Upload verwendeter Speichercontainer. Pro Runbook konfiguriert.

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

#### ResourceGroupName

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

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

#### StorageAccountName

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

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

#### LinkExpiryDays

Tage, bis der generierte Downloadlink abläuft. Gebunden an RJReport.StorageAccount.LinkExpiryDays.

| Eigenschaft            | Wert                                        |
| ---------------------- | ------------------------------------------- |
| Erforderlich           | falsch                                      |
| Standardwert           | 6                                           |
| Typ                    | Int32                                       |
| Im Portal ausgeblendet | ja (vorkonfiguriert über 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 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.
