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

共有 Channel 所有者を同期(スケジュール)

Security Group のメンバーが、対応付けられた Teams とその Shared Channel の所有者であることを保証します。

これはスケジュール実行される runbook です。単一のオブジェクトでトリガーされるのではなく、定期的なスケジュールで実行されるように設計されています。詳細は スケジューリング runbook のスケジュールを設定する方法の詳細を参照してください。

説明

Teams の Shared Channels は親チームから所有権を継承しません。このスケジュールされた runbook はそのギャップを埋めます。マッピング内で指定された各チームについて、対応付けられた Security Group のメンバーが、そのチームと、チームがホストするすべての共有チャネルの所有者であることを保証します。チーム名から所有者グループへのマッピングは、RealmJoin の org 設定として中央で管理されます。runbook は追加のみです。既存の所有者やメンバーが削除されることはありません。そのため、新しく作成された共有チャネルは次回の実行でそのまま取り込まれます。必要に応じて、レポートをメール送信したり、レポート ファイルをダウンロード リンクとしてアップロードしたりできます。ReportFileFormat パラメーターは、生成・配信されるレポート ファイル形式(CSV のみ、CSV & XLSX、または XLSX のみ)を制御します。CSV 添付ファイルがメールのサイズ制限を超え、かつ "CSV & XLSX" が選択されている場合、メールは Excel ブックのみを送信するようにフォールバックします。マッピング規則と構成については、付属ドキュメントを参照してください。

仕組み

各実行で、ランブックは次の処理を行います:

  1. org 設定からチーム名→所有者グループのマッピングを読み取ります SharedChannelOwners.Mapping.

  2. 各エントリについて、そのチームをその 正確な表示名で.

  3. そのエントリの所有者グループを、その推移的な ユーザー メンバーに展開します(ゲストはスキップされます。ゲストは共有チャネルに属することができません)。

  4. それらのユーザーがチームと、チームがホストするすべての ホストされている 共有チャネルの所有者であることを保証します。

runbook は 追加のみです。既存の所有者やメンバーを降格したり削除したりすることはありません。そのため、新しく作成された共有チャネルは、すでに存在しているものを妨げることなく、次回の定期実行で自動的に取り込まれます。

マッピング構成

マッピングは RealmJoin の org 設定(Runbook Customization → 設定SharedChannelOwners.Mapping)に中央集約されているため、一度だけ管理され、すべてのスケジュールで共有されます。これは { TeamName, OwnerGroupId } オブジェクトの一覧であり、 { TeamName, OwnerGroupId } オブジェクトです。ここで TeamNameチームの正確な表示名 です(すぐに使える例については 注意事項 セクションを参照してください)。非表示の TeamOwnerGroupMapping パラメーターはこの設定から注入されます。runbook は、構造化された配列(推奨されるサブ設定形式)としても JSON 文字列としても受け取り、両方を正規化します。

チームの照合

各マッピング エントリは、明示的に名前指定された 1 つのチームを対象にします:

  • チームはその表示名で照合されます 正確な表示名で (大文字小文字は区別されません。Microsoft Graph と一致します。構成された名前の前後の空白は無視されます)。処理されるのはそのチームだけで、接頭辞やワイルドカードの挙動はありません。そのため、エントリを EXT Service A と名付けても EXT Service A には決して影響しません EXT Service A Backup などには影響しません。

  • Entra ID では表示名の一意性は保証されません。構成された名前を複数のチームが共有している場合、所有者グループは すべての それらすべてに適用されます。チームが一致しない場合、そのエントリは 見つからない として報告され、スキップされます。

チームの選択

構成された各 TeamName について、runbook は Graph の displayName eq '...' 検索を実行し、Team としてプロビジョニングされた Microsoft 365 グループのみを残します。 Team.

変更される内容

  • Team(省略可能、 IncludeTeamOwners、既定でオン): 所有者グループのユーザーは、親 M365 グループの所有者およびメンバーとして追加されます。チーム メンバーシップは、共有チャネルの所有者になるための技術的前提条件でもあるため、この手順でチャネルの手順が有効になります。

  • 共有チャネル: ホストされている各共有チャネル(membershipType eq 'shared')について、各所有者グループ ユーザーがチャネルの 所有者 として確実に設定されます。存在しない場合は直接追加され、すでにメンバーである場合は昇格されます。所有者の直接追加が拒否された場合(たとえばメンバーシップのレプリケーション遅延)、runbook はまずユーザーをメンバーとして追加し、その後に昇格するようフォールバックします。

ドライラン

設定します WhatIfMode 何も書き込まずに、変更される内容をログに記録するようにします。このモードでは runbook は、処理対象となるチーム(所有者グループ付き)と、見つからなかった構成済みチーム名を、事前に出力します。

レポート(省略可能、どちらも既定ではオフ)

  • SendEmailReport は、run の統計情報と 2 つの CSV 添付ファイル(チーム別サマリーと変更別詳細リスト)を含む RealmJoin ブランドのメールを( Send-RjReportEmailを介して)送信します。送信者は RJReport.EmailSender 設定

  • CreateDownloadLink から取得されます。 RJReport.StorageAccount.* は同じ CSV を storage account にアップロードし、期限付きの SAS ダウンロード リンクを返します(両方のオプションが有効な場合はメールにも埋め込まれます)。対象の storage account は

設定から取得されます。 Storage Blob Data Contributor RBAC ロールを対象の storage account に付与する必要があります(これは Azure RBAC の割り当てであり、Graph のアプリケーション権限ではありません)。

スケジューリング

スケジュールで自動実行するように設計されています。構成は org 設定に中央集約され、runbook は追加のみかつ冪等であるため、1 つの定期スケジュールで、ユーザーやチャネルの増減に応じて、マッピングされたすべてのチームとその共有チャネルを同期状態に保てます。

場所

Organization → General → Sync Shared Channel Owners (Scheduled)

Runbook の完全名

rjgit-org_general_sync-shared-channel-owners_scheduled

詳細

プロパティ

バージョン

1.1.0

必須モジュール

RealmJoin.RunbookHelper (>= 0.8.7)\nMicrosoft.Graph.Authentication (>= 2.39.0)\nAz.Accounts (>= 5.5.0)

スケジュール可能

はい

注意事項

マッピングは一度だけ中央で構成します(Runbook Customization -> Settings)。"SharedChannelOwners.Mapping" の下にある構造化サブ設定として指定します。各エントリは、正確な表示名でチームを指定します。非表示の TeamOwnerGroupMapping パラメーターは、実行時にそこから注入されます。{ "Settings": { "SharedChannelOwners": { "Mapping": [ { "TeamName": "EXT Service A", "OwnerGroupId": "11111111-1111-1111-1111-111111111111" }, { "TeamName": "EXT Service B", "OwnerGroupId": "22222222-2222-2222-2222-222222222222" } ] } } }

権限

アプリケーション権限

  • 種類: Microsoft Graph

    • Group.ReadWrite.All

    • GroupMember.ReadWrite.All

    • Channel.ReadBasic.All

    • ChannelMember.ReadWrite.All

    • Mail.Send

パラメーター

TeamOwnerGroupMapping

正確なチーム表示名から所有者 Security Group オブジェクト ID へのマッピング。例: [{ "TeamName": "EXT Service A", "OwnerGroupId": "00000000-0000-0000-0000-000000000000" }]。非表示パラメーターであり、org 設定 "SharedChannelOwners.Mapping" にバインドされています。RealmJoin ポータルがその値を注入します。runbook は、デシリアライズされたオブジェクト/配列(構造化サブ設定)としても JSON 文字列としても受け取り、両方を正規化します。

プロパティ

必須

false

既定値

[]

種類

オブジェクト

IncludeTeamOwners

有効にすると(既定)、所有者グループのメンバーは親チーム自体の所有者およびメンバー(M365 グループの所有者/メンバー)としても確実に設定されます。チーム メンバーシップは、チャネル所有権の前提条件でもあります。

プロパティ

必須

false

既定値

種類

ブール値

WhatIfMode

有効にすると、runbook は何も書き込まず、行う変更だけをログに記録します。

プロパティ

必須

false

既定値

いいえ

種類

ブール値

SendEmailReport

有効にすると、実行後に Send-RjReportEmail を介して RealmJoin ブランドのメール レポートが送信されます。本文には run の統計情報が含まれ、レポート ファイル(チーム別サマリーと変更別詳細)は選択されたレポート ファイル形式で添付されます。

プロパティ

必須

false

既定値

いいえ

種類

ブール値

EmailTo

レポートの送信先メール アドレス(複数可、カンマ区切り)。SendEmailReport が有効な場合にのみ使用されます。

プロパティ

必須

false

既定値

種類

文字列

EmailFrom

レポートの送信者メールボックス。org 設定 "RJReport.EmailSender" にバインドされています。

プロパティ

必須

false

既定値

種類

文字列

ReportFileFormat

生成および配信されるレポートのファイル形式を制御します: 「CSV のみ」、「CSV と XLSX」(既定)、または「XLSX のみ」。

プロパティ

必須

false

既定値

CSV と XLSX

種類

文字列

有効にすると、レポート ファイルは storage account にアップロードされ、期限付きのダウンロード リンクが返されます(これがメール レポートにも含まれます)。既定ではオフです。

プロパティ

必須

false

既定値

いいえ

種類

ブール値

ContainerName

アップロードに使用する storage container。runbook ごとに構成します(グローバルな RJReport 設定ではありません)。

プロパティ

必須

false

既定値

shared-channel-owners

種類

文字列

ResourceGroupName

storage account を含むリソース グループ。"RJReport.StorageAccount.ResourceGroup" にバインドされています。

プロパティ

必須

false

既定値

種類

文字列

StorageAccountName

アップロードに使用する storage account。"RJReport.StorageAccount.StorageAccountName" にバインドされています。

プロパティ

必須

false

既定値

種類

文字列

LinkExpiryDays

生成されたダウンロード リンクの有効期限が切れるまでの日数。"RJReport.StorageAccount.LinkExpiryDays" にバインドされています。

プロパティ

必須

false

既定値

6

種類

Int32

最終更新

役に立ちましたか?