For the complete documentation index, see llms.txt. This page is also available as Markdown.

Shared Channel-Besitzer synchronisieren – geplant

Stellen Sie sicher, dass Mitglieder einer Security Group Besitzer der zugeordneten Teams und ihrer Shared Channels sind.

Beschreibung

Teams Shared Channels erben nicht die Besitzverhältnisse von ihrem übergeordneten Team. Dieses geplante Runbook schließt diese Lücke: Für jedes in einer Zuordnung genannte Team stellt es sicher, dass die Mitglieder einer zugeordneten Security Group Besitzer des Teams und jedes vom Team gehosteten Shared Channel sind. Die Zuordnung von Teamname zu Besitzergruppe wird zentral als RealmJoin-Organisationseinstellung verwaltet. Das Runbook ist add-only – vorhandene Besitzer und Mitglieder werden nie entfernt – sodass neu erstellte Shared Channels beim nächsten Lauf einfach übernommen werden. Optional kann es einen Bericht per E-Mail senden und/oder die Berichtdateien als Downloadlink hochladen. Der Parameter ReportFileFormat steuert, welche Berichtsdateiformate erzeugt und bereitgestellt werden (nur CSV, CSV & XLSX oder nur XLSX). Wenn die CSV-Anhänge das Größenlimit für E-Mails überschreiten und „CSV & XLSX“ ausgewählt ist, fällt die E-Mail auf die reine Excel-Arbeitsmappe zurück. Weitere Informationen zu den Zuordnungsregeln und zur Konfiguration finden Sie in der begleitenden Dokumentation.

So funktioniert es

Bei jedem Lauf führt das Runbook Folgendes aus:

  1. Liest die Zuordnung von Teamnamen zu Besitzergruppen aus der Organisationseinstellung SharedChannelOwners.Mapping.

  2. Für jeden Eintrag sucht es das Team anhand seines exakten Anzeigenamens.

  3. Erweitert die Besitzergruppe dieses Eintrags auf ihre transitive Benutzer Mitglieder (Gäste werden übersprungen – sie können nicht zu einem Shared Channel gehören).

  4. Stellt sicher, dass diese Benutzer Besitzer des Teams und jedes gehosteten Shared Channel des Teams sind.

Das Runbook ist add-only: es stuft vorhandene Besitzer oder Mitglieder nie herab und entfernt sie nie. Neu erstellte Shared Channels werden daher beim nächsten geplanten Lauf automatisch übernommen, ohne bereits Vorhandenes zu beeinträchtigen.

Zuordnungskonfiguration

Die Zuordnung wird zentral in den RealmJoin-Organisationseinstellungen gespeichert (Runbook Customization → EinstellungenSharedChannelOwners.Mapping) und wird daher einmal gepflegt und von jedem Zeitplan gemeinsam genutzt. Es handelt sich um eine Liste von { TeamName, OwnerGroupId } -Objekten, wobei TeamName der exakte Anzeigename des Teams (siehe den Hinweis -Abschnitt für ein sofort verwendbares Beispiel). Der versteckte TeamOwnerGroupMapping -Parameter wird aus dieser Einstellung injiziert; das Runbook akzeptiert ihn entweder als strukturiertes Array (empfohlene Untereinstellungsform) oder als JSON-String und normalisiert beides.

Teamzuordnung

Jeder Zuordnungseintrag zielt auf ein ausdrücklich benanntes Team ab:

  • Ein Team wird anhand seines exakten Anzeigenamens (Groß-/Kleinschreibung wird ignoriert, konsistent mit Microsoft Graph; führende und nachfolgende Leerzeichen im konfigurierten Namen werden ignoriert). Es wird nur dieses Team verarbeitet – es gibt kein Präfix- oder Platzhalterverhalten, daher wirkt sich ein Eintrag wie EXT Service A nie auf EXT Service A Backup oder Ähnliches aus.

  • Anzeigenamen sind in Entra ID nicht garantiert eindeutig. Wenn mehrere Teams denselben konfigurierten Namen haben, wird die Besitzergruppe auf alle von ihnen angewendet. Wenn kein Team übereinstimmt, wird der Eintrag als nicht gefunden übersprungen.

Teamauswahl

Für jede konfigurierte TeamName führt das Runbook eine Graph displayName eq '...' -Abfrage aus und behält nur Microsoft 365-Gruppen bei, die als Team.

Was geändert wird

  • Team (optional, IncludeTeamOwners, Standard ein): die Benutzer der Besitzergruppe werden als Besitzer und Mitglieder der übergeordneten M365-Gruppe hinzugefügt. Die Teammitgliedschaft ist auch die technische Voraussetzung, um Besitzer eines Shared Channel zu werden, daher ermöglicht dieser Schritt den Kanalschritt.

  • Shared Channels: für jeden gehosteten Shared Channel (membershipType eq 'shared'), wird sichergestellt, dass jeder Benutzer der Besitzergruppe Kanal Besitzer ist – bei Fehlen direkt hinzugefügt oder bei bereits bestehender Mitgliedschaft hochgestuft. Wird das direkte Hinzufügen als Besitzer abgelehnt (z. B. aufgrund von Verzögerungen bei der Replikation der Mitgliedschaft), fällt das Runbook darauf zurück, den Benutzer zunächst als Mitglied hinzuzufügen und ihn anschließend hochzustufen.

Trockenlauf

Setzen Sie WhatIfMode auf, um zu protokollieren, was sich ändern würde, ohne etwas zu schreiben. In diesem Modus gibt das Runbook im Voraus die Teams aus, die es verarbeiten würde (zusammen mit ihrer Besitzergruppe), sowie alle konfigurierten Teamnamen, die nicht gefunden wurden.

Berichterstellung (optional, beide standardmäßig aus)

  • SendEmailReport sendet eine E-Mail im RealmJoin-Branding (über Send-RjReportEmail) mit Laufstatistiken und zwei CSV-Anhängen: einer Zusammenfassung pro Team und einer Detailliste pro Änderung. Der Absender wird aus der RJReport.EmailSender Einstellung

  • CreateDownloadLink lädt dieselben CSV-Dateien in ein Storage Account hoch und gibt zeitlich begrenzte SAS-Downloadlinks zurück (die ebenfalls in die E-Mail eingebettet werden, wenn beide Optionen aktiviert sind). Das Ziel-Storage Account wird aus den 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).

Zeitplanung

Konzipiert für den unbeaufsichtigten Betrieb nach Zeitplan. Da die Konfiguration zentral in den Organisationseinstellungen liegt und das Runbook add-only und idempotent ist, hält ein einzelner wiederkehrender Zeitplan alle zugeordneten Teams und ihre Shared Channels synchron, während Personen und Kanäle kommen und gehen.

Ort

Organization → General → Sync Shared Channel Owners (Scheduled)

Vollständiger Runbook-Name

rjgit-org_general_sync-shared-channel-owners_scheduled

Berechtigungen

Anwendungsberechtigungen

  • Typ: Microsoft Graph

    • Group.ReadWrite.All

    • GroupMember.ReadWrite.All

    • Channel.ReadBasic.All

    • ChannelMember.ReadWrite.All

    • Mail.Send

Parameter

TeamOwnerGroupMapping

Zuordnung eines exakten Team-Anzeigenamens zu der Objekt-ID einer Besitzer-Security Group, z. B. [{ "TeamName": "EXT Service A", "OwnerGroupId": "00000000-0000-0000-0000-000000000000" }]. Versteckter Parameter, gebunden an die Organisationseinstellung "SharedChannelOwners.Mapping". Das RealmJoin-Portal injiziert diesen Wert; das Runbook akzeptiert ihn entweder als deserialisiertes Objekt/Array (strukturierte Untereinstellungen) oder als JSON-String und normalisiert beides.

Eigenschaft
Wert

Erforderlich

false

Standardwert

[]

Typ

Objekt

IncludeTeamOwners

Wenn aktiviert (Standard), werden die Mitglieder der Besitzergruppe ebenfalls als Besitzer und Mitglieder des übergeordneten Teams selbst sichergestellt (M365-Gruppenbesitzer/-mitglieder). Die Teammitgliedschaft ist auch die Voraussetzung für Kanalbesitz.

Eigenschaft
Wert

Erforderlich

false

Standardwert

Wahr

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 E-Mail-Bericht im RealmJoin-Branding über Send-RjReportEmail gesendet. Der Text enthält Laufstatistiken; die Berichtdateien (Zusammenfassung pro Team und Detail pro Änderung) werden im ausgewählten Berichtdateiformat angehängt.

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 Organisationseinstellung "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

Wenn aktiviert, werden die Berichtdatei(en) in ein Storage Account hochgeladen und zeitlich begrenzte Downloadlinks zurückgegeben (und in den E-Mail-Bericht aufgenommen, wenn auch dieser aktiviert ist). Standardmäßig aus.

Eigenschaft
Wert

Erforderlich

false

Standardwert

Falsch

Typ

Boolesch

ContainerName

Speichercontainer, der für den Upload verwendet wird. Pro Runbook konfiguriert (keine globale RJReport-Einstellung).

Eigenschaft
Wert

Erforderlich

false

Standardwert

shared-channel-owners

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

Tage bis zum Ablauf des generierten Downloadlinks. Gebunden an "RJReport.StorageAccount.LinkExpiryDays".

Eigenschaft
Wert

Erforderlich

false

Standardwert

6

Typ

Int32

Zuletzt aktualisiert

War das hilfreich?