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

Shared Channel-Besitzer synchronisieren, geplant

Die Mitglieder einer Gruppe zu Besitzern zugeordneter Teams und Shared Channels machen

Dies ist ein geplantes Runbook. Es ist dafür vorgesehen, nach einem wiederkehrenden Zeitplan ausgeführt zu werden, statt für ein einzelnes Objekt ausgelöst zu werden. Siehe Zeitplanung für Details zur Konfiguration von Runbook-Zeitplänen.

Beschreibung

Freigegebene Kanäle erben nicht die Besitzer ihres Teams. Für jedes in der Zuordnung genannte Team werden die Mitglieder der zugeordneten Security Group zu Besitzern des Teams und jedes von ihm gehosteten freigegebenen Kanals gemacht. Es fügt nur hinzu, entfernt nie; neue freigegebene Kanäle werden beim nächsten Lauf übernommen. Ein Trockenlauf zeigt die Änderungen, ohne sie anzuwenden. Der Bericht kann per E-Mail gesendet oder als Download-Link bereitgestellt werden.

So funktioniert es

Bei jedem Lauf führt das Runbook Folgendes aus:

  1. Liest die Zuordnung von Teamnamen zu Besitzergruppen aus der Org-Einstellung SharedChannelOwners.Mapping.

  2. Sucht das Team anhand seines genauen Anzeigenamens.

  3. Erweitert die Besitzergruppe dieses Eintrags auf ihre transitive Benutzer Mitglieder (Gäste werden übersprungen – sie können keinem freigegebenen Kanal angehören).

  4. Stellt sicher, dass diese Benutzer Besitzer des Teams und jedes gehosteten freigegebenen Kanals des Teams sind.

Das Runbook ist nur ergänzend: Es stuft vorhandene Besitzer oder Mitglieder niemals herab und entfernt sie nie. Neu erstellte freigegebene Kanäle werden daher beim nächsten geplanten Lauf automatisch übernommen, ohne bereits Vorhandenes zu beeinträchtigen.

Zuordnungskonfiguration

Die Zuordnung liegt zentral in den RealmJoin-Org-Einstellungen (Runbook Customization → Einstellungen → SharedChannelOwners.Mapping) { TeamName, OwnerGroupId } Objekte, wobei TeamName der exakte Anzeigename des Teams. Die 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.

Bereit verwendbares Beispiel für die Org-Einstellungen:

{
    "Settings": {
        "SharedChannelOwners": {
            "Mapping": [
                { "TeamName": "EXT Service A", "OwnerGroupId": "11111111-1111-1111-1111-111111111111" },
                { "TeamName": "EXT Service B", "OwnerGroupId": "22222222-2222-2222-2222-222222222222" }
            ]
        }
    }
}

Teamabgleich

Jeder Zuordnungseintrag zielt auf ein ausdrücklich benanntes Team:

  • Ein Team wird anhand seines genauen Anzeigenamens (Groß-/Kleinschreibung wird ignoriert, entsprechend Microsoft Graph; führende und nachgestellte Leerzeichen im konfigurierten Namen werden ignoriert). Nur dieses Team wird verarbeitet – es gibt kein Präfix- oder Wildcard-Verhalten, also wirkt sich der Eintrag EXT Service A niemals auf EXT Service A Backup oder Ähnliches aus.

  • Anzeigenamen sind in Entra ID nicht garantiert eindeutig. Wenn mehrere Teams denselben konfigurierten Namen teilen, wird die Besitzergruppe auf alle sie alle nicht gefunden gemeldet und übersprungen.

Teamauswahl

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

Was geändert wird

  • Team (optional, IncludeTeamOwners, Standardwert an): Die Benutzer der Besitzergruppe werden als Besitzer und Mitglieder der übergeordneten M365-Gruppe hinzugefügt. Die Teammitgliedschaft ist auch die technische Voraussetzung für den Besitz eines freigegebenen Kanals, daher aktiviert dieser Schritt den Kanal-Schritt.

  • Freigegebene Kanäle: für jeden gehosteten freigegebenen Kanal (membershipType eq 'shared'), wird sichergestellt, dass jeder Benutzer der Besitzergruppe Kanal Besitzer - direkt hinzugefügt, falls er fehlt, oder hochgestuft, wenn er bereits Mitglied ist. Wenn ein direktes Hinzufügen als Besitzer abgelehnt wird (z. B. aufgrund von Verzögerung bei der Mitgliedschaftsreplikation), fällt das Runbook darauf zurück, den Benutzer zuerst als Mitglied hinzuzufügen und dann hochzustufen.

Trockenlauf

Wähle Testlauf? aus, um zu protokollieren, was sich ändern würde, ohne etwas zu schreiben. Jeder Lauf gibt vorab die Teams aus, die verarbeitet werden (mit ihrer Besitzergruppe), sowie alle konfigurierten Teamnamen, die nicht gefunden wurden; in einem Trockenlauf werden die Änderungen als geplante Änderungen aufgeführt.

Zeitplanung

Entwickelt für den unbeaufsichtigten Betrieb nach Zeitplan. Da die Konfiguration zentral in den Org-Einstellungen liegt und das Runbook nur ergänzt und idempotent ist, hält ein einzelner wiederkehrender Zeitplan alle zugeordneten Teams und ihre freigegebenen Kanäle synchron, wenn Personen und Kanäle hinzukommen oder wegfallen.

Berichtszustellung

Jeder Lauf schreibt seine Ergebnisse auf die Registerkarte Output Data des RealmJoin-Portals: eine Zusammenfassung, die vorgenommenen (oder in einem Trockenlauf geplanten) Änderungen, die übersprungenen Teams und Benutzer mit dem Grund (Team nicht gefunden, leere Besitzergruppe, Gastbenutzer, fehlgeschlagene Änderungen) sowie die Besitzerzuweisungen, die bereits vorhanden waren. Jede Tabelle kann dort nach Excel exportiert werden.

Berichtsdateien werden nur generiert, wenn eine Zustellmethode über die Berichtszustellung Option (E-Mail und/oder Download-Link): eine Zusammenfassung pro Team und eine Detailliste pro Änderung, als CSV-Dateien und/oder als Excel-Arbeitsmappe. Mit Nur Ausgabedaten ausgewählt werden, werden die Ergebnisse direkt in der Registerkarte Output Data gelesen. E-Mail-Zustellung und Download-Link-Erstellung sind unabhängig und können kombiniert werden; wenn beide ausgewählt sind, werden die Download-Links auch in die E-Mail eingebettet.

Für den Download-Link werden die Berichtsdateien in das in den RJReport.StorageAccount.* Tenant-Einstellungen hochgeladen, und zeitlich begrenzte SAS-Download-Links werden zurückgegeben. Der Storage-Upload 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, keine Graph-Anwendungsberechtigung).

Zeitpläne, die mit den früheren Zustellungsbezeichnungen gespeichert wurden (zum Beispiel E-Mail-Bericht) behalten ihre Zustellung bei. Wenn ein solcher Zeitplan zur Bearbeitung geöffnet wird, zeigt die Option Nur Ausgabedaten an, obwohl die gespeicherte Zustellung aktiv bleibt; wählen Sie die Zustellung vor dem Speichern erneut aus, damit der Dialog mit dem übereinstimmt, was der Zeitplan tut.

Einrichtung für den E-Mail-Versand

Das Senden eines E-Mail-Berichts ist optional und erfolgt nur, wenn Bericht zusätzlich per E-Mail senden oder Bericht zusätzlich per E-Mail und Download-Link senden wird als Berichtszustellung ausgewählt; dann ist ein Empfänger erforderlich. Die von RealmJoin gebrandete E-Mail (gesendet über Send-RjRbReportEmail) enthält die Laufstatistiken und die Berichtsdateien als Anhänge. Die Absenderadresse wird aus dem RJReport.EmailSender Mandanten-Einstellung übernommen.

Dieses Runbook sendet E-Mails über die Microsoft Graph API. Um E-Mails über die Graph API zu senden, müssen Sie in der Runbook-Anpassung eine vorhandene E-Mail-Adresse konfigurieren.

Siehe die RealmJoin Report Settings Dokumentation für Details zu allen verfügbaren Einstellungen.

E-Mail-Branding

Die Berichts-E-Mail berücksichtigt die optionalen RJReport.Branding.* Mandanten-Einstellungen:

  • Header- und Footer-Bild - öffentliche HTTPS-URLs, PNG/JPEG/GIF, max. 200 KB jeweils

  • Footer-Link - 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 E-Mail des Berichts – stattdessen wird der entsprechende Standard verwendet.

Einrichtungsanweisungen und Bildanforderungen: E-Mail-Branding.

Ort

Organization → General → Sync Shared Channel Owners (Scheduled)

Vollständiger Runbook-Name

rjgit-org_general_sync-shared-channel-owners_scheduled

Details

Eigenschaft
Wert

Version

1.4.0

Erforderliche Module

RealmJoin.RunbookHelper (>= 0.8.9) Microsoft.Graph.Authentication (>= 2.39.0) Az.Accounts (>= 5.5.2)

Planbar

ja

Berechtigungen

Anwendungsberechtigungen

  • Typ: Microsoft Graph

    • Channel.ReadBasic.All

      • Listet /teams/{id}/channels auf, um die freigegebenen Kanäle zu finden, die verarbeitet werden sollen

    • ChannelMember.ReadWrite.All

      • Liest Kanalmitglieder und fügt Benutzer hinzu oder stuft sie zu freigegebenen Kanalbesitzern hoch

    • Group.ReadWrite.All

      • Listet Teams auf, liest die Namen der Besitzergruppen und Gruppenbesitzer und fügt fehlende Teambesitzer über /groups/{id}/owners/$ref hinzu

    • GroupMember.ReadWrite.All

      • Liest transitive Mitglieder der Besitzergruppe und fügt Benutzer zuerst als Teammitglieder hinzu

    • User.Read.All

      • Liest Benutzereigenschaften von Mitgliedern (UPN, userType) über transitiveMembers, um Gäste herauszufiltern

    • Mail.Send (optional — Funktion: E-Mail-Bericht)

      • Sendet die Sync-Bericht-E-Mail über Send-RjRbReportEmail, wenn die E-Mail-Zustellung ausgewählt ist

    • Organization.Read.All (optional — Funktion: E-Mail-Bericht)

      • Liest den Anzeigenamen des Tenant für die Berichts-E-Mail

Hinweise zu Berechtigungen

Azure Storage Account: Rolle „Storage Account Contributor“ für die verwaltete Identität des Automation-Kontos auf dem Ziel-Storage Account – der Upload ruft die Kontoschlüssel über listKeys ab (nur für die Download-Link-Optionen erforderlich)

Parameter

TeamOwnerGroupMapping

Liste der Teamnamen mit der Security Group, deren Mitglieder zu Besitzern werden. Aus der Mandanten-Einstellung SharedChannelOwners.Mapping entnommen.

Eigenschaft
Wert

Erforderlich

nein

Standardwert

[]

Typ

Objekt

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

IncludeTeamOwners

Macht die Gruppenmitglieder außerdem zu Besitzern und Mitgliedern des Teams selbst, was für den Besitz seiner Kanäle erforderlich ist.

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Wahr

Typ

Boolesch

Anzeigename im Portal

Sie auch zu Team-Besitzern machen?

WhatIfMode

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

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Falsch

Typ

Boolesch

Anzeigename im Portal

Testlauf?

SendEmailReport

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

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Falsch

Typ

Boolesch

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

EmailTo

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

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Typ

Zeichenfolge

Anzeigename im Portal

E-Mail-Adresse(n) des Empfängers

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

EmailFrom

Absenderadresse der Berichts-E-Mail. Wird aus der Mandanten-Einstellung RJReport.EmailSender übernommen.

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Typ

Zeichenfolge

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

BrandingHeaderImageUrl

Headerbild der Berichts-E-Mail (HTTPS-URL, PNG/JPEG/GIF, max. 200 KB). Wird aus der Mandanten-Einstellung RJReport.Branding.HeaderImageUrl übernommen; bei leerem Wert wird der standardmäßige RealmJoin-Header verwendet.

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Typ

Zeichenfolge

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

BrandingFooterImageUrl

Footerbild der Berichts-E-Mail (HTTPS-URL, PNG/JPEG/GIF, max. 200 KB). Wird aus der Mandanten-Einstellung RJReport.Branding.FooterImageUrl übernommen; bei leerem Wert wird der standardmäßige RealmJoin-Footer verwendet.

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Typ

Zeichenfolge

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

Link hinter dem Footerbild der Berichts-E-Mail. Wird aus der Mandanten-Einstellung RJReport.Branding.FooterLink übernommen; bei leerem Wert wird realmjoin.com verwendet.

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Typ

Zeichenfolge

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

BrandingAccentColor

Akzentfarbe der Berichts-E-Mail als 6-stelliger Hexwert. Wird aus der Mandanten-Einstellung RJReport.Branding.AccentColor übernommen; bei leerem oder ungültigem Wert wird der Standard von RealmJoin verwendet.

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Typ

Zeichenfolge

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

BrandingTextColor

Textfarbe der Berichts-E-Mail als 6-stelliger Hexwert. Wird aus der Mandanten-Einstellung RJReport.Branding.TextColor übernommen; bei leerem oder ungültigem Wert wird der Standard von RealmJoin verwendet.

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Typ

Zeichenfolge

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

ReportFileFormat

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

Eigenschaft
Wert

Erforderlich

nein

Standardwert

CSV & XLSX

Typ

Zeichenfolge

Anzeigename im Portal

Berichtsdateiformat

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

Portaloptionen

Portaloption
Wert

CSV & XLSX

CSV & XLSX

Nur CSV

Nur CSV

Nur XLSX

Nur XLSX

Laden Sie den Bericht außerdem hoch und geben Sie einen Downloadlink zurück, der nach einigen Tagen abläuft.

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Falsch

Typ

Boolesch

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

ContainerName

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

Eigenschaft
Wert

Erforderlich

nein

Standardwert

shared-channel-owners

Typ

Zeichenfolge

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

ResourceGroupName

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

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Typ

Zeichenfolge

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

StorageAccountName

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

Eigenschaft
Wert

Erforderlich

nein

Standardwert

Typ

Zeichenfolge

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

LinkExpiryDays

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

Eigenschaft
Wert

Erforderlich

nein

Standardwert

6

Typ

Int32

Im Portal ausgeblendet

ja (vorkonfiguriert über Runbook-Anpassung)

Zuletzt aktualisiert

War das hilfreich?