> 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/ja/zi-dong-hua/runbooks/runbook-references/org/general/sync-channel-or-group-members_scheduled.md).

# チャンネルまたはグループのメンバーを同期（スケジュール済み）

Teams の Shared Channel とグループ間でメンバーをミラーリング

{% hint style="info" %}
これはスケジュールされた runbook です。単一のオブジェクトに対してトリガーされるのではなく、繰り返しのスケジュールで実行されるように設計されています。詳細は [スケジューリング](/ja/zi-dong-hua/runbooks/scheduling.md) runbook のスケジュールの設定方法の詳細については
{% endhint %}

### 説明

実行ごとにソースのメンバーをターゲットへコピーします。ソースとターゲットは、Shared Channel と Security Group、2 つのグループ、またはグループと Shared Channel の組み合わせにできます。不足しているメンバーは常に追加され、ターゲットにのみ存在するメンバーは要求された場合にのみ削除されます。ドライランでは変更内容を適用せずに表示し、レポートはメール送信またはダウンロード リンクとして提供できます。オプションの詳細は runbook のドキュメント (docs.realmjoin.com) にあります。

### 仕組み

このスケジュール済み runbook は、ある **ソース** オブジェクトをある **ターゲット** オブジェクトへ、1 回の実行につき単方向で同期します。各実行で次を行います:

1. 選択された方向に対するソースとターゲットのオブジェクトを解決します。
2. 両側の現在のメンバー セットを読み取ります。
3. ターゲットにないソースのメンバーをすべて追加します。
4. 必要に応じて、ソースに存在しないターゲットのメンバーをすべて削除します (ミラーモード)。

#### 方向

この `方向` パラメーターで、何を何に同期するかを選択します:

* **`SharedChannelToGroup`** - Teams の Shared Channel のメンバーをターゲットのセキュリティ グループにコピーします。
* **`GroupToGroup`** - ソース グループのメンバーをターゲット グループにコピーします (たとえば Microsoft 365 グループをセキュリティ グループに、またはソースとターゲットを入れ替えて逆方向に)。
* **`GroupToSharedChannel`** - ソース グループのメンバーを Teams の Shared Channel にコピーします。

#### 追加と削除

不足しているメンバーの追加は常に行われます。ターゲットにのみ存在するメンバーの削除は **オプトイン** で `RemoveExtraMembers` 設定を通じて行います (既定ではオフ)。削除を有効にすると、ターゲットはソースと完全に一致するようにミラーリングされます。無効の場合、runbook は追加のみです。

#### グループ メンバーの展開

ソース側のグループ メンバーは **推移的に**、ネストされたグループ経由でメンバーになっているユーザーも含まれます。ターゲット側では **直接の** メンバーのみが考慮されます。追加および削除の操作は直接のメンバーシップに対して行われるためです。

#### ゲストの扱い

`IncludeGuests` (既定ではオフ) は、ゲスト ユーザーを同期に含めるかどうかを制御します。オフの場合、ゲストは両側でスキップされ、追加も削除もされません。Shared Channel はゲストを受け付けないことが多いため、既定ではオフです。

#### Shared Channel の詳細

* グループが同期されるとき **に** Shared Channel に対しては、チームのメンバーシップがチャンネル メンバーシップの前提条件であるため、runbook はまずユーザーがホスト チームのメンバーであることを確認し、その後ユーザーをチャンネルに追加します。
* メンバーが **削除された場合** Shared Channel から削除された場合、既定ではチャンネル メンバーシップのみが削除されます。 `RemoveFromTeam` を有効にすると、ユーザーをホスト チームのメンバーシップからも削除します。

#### ドライラン

設定します `WhatIfMode` 何も書き込まずに、変更される内容をログに記録します。

#### レポート作成 (任意、どちらも既定ではオフ)

* **`SendEmailReport`** RealmJoin ブランドのメールを送信します（次を介して `Send-RjRbReportEmail`）で、実行統計と個々の変更を一覧にした CSV 添付を送ります。送信元は次の `RJReport.EmailSender` 設定から取得されます。
* **`CreateDownloadLink`** 同じ CSV を Storage Account にアップロードし、期限付きの SAS ダウンロード リンクを返します (両方のオプションが有効な場合はメールにも埋め込まれます)。ターゲット Storage Account は次の `RJReport.StorageAccount.*` 設定から取得されます。

ストレージへのアップロードは Automation account のマネージド ID で認証します。その ID には次の **Reader and Data Access** RBAC ロールがターゲットの Storage Account に必要です（これは Azure RBAC の割り当てであり、Graph アプリケーション権限ではありません）。

#### スケジューリング

スケジュールに従って無人で実行されるよう設計されています。runbook は冪等であるため、単一の定期スケジュールで、メンバーの増減に合わせてターゲットをソースと同期し続けることができます。

### メールのブランディング

レポートメールでは、任意の `RJReport.Branding.*` テナント設定が反映されます:

* **ヘッダーおよびフッター画像** – 公開 HTTPS URL、PNG/JPEG/GIF、各最大 200 KB
* **フッターリンク** – フッター画像のリンク先
* **アクセントカラーとテキストカラー** – 6 桁の 16 進数値、例: `#0052cc`

これらの設定が構成されていない場合は、既定の RealmJoin のグラフィックと色が使用されます。ダウンロードまたは検証できない画像、または無効な色の値があっても、レポートメールが失敗することはありません。代わりに、該当する既定値が使用されます。

設定手順と画像要件: [メールのブランディング](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings#email-branding-optional).

### 場所

組織 → 全般 → チャネルまたはグループのメンバーを同期 (スケジュール済み)

**完全な Runbook 名**

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

### 詳細

| プロパティ    | 値                                                                                                                  |
| -------- | ------------------------------------------------------------------------------------------------------------------ |
| バージョン    | 1.3.0                                                                                                              |
| 必須モジュール  | <p>RealmJoin.RunbookHelper (>= 0.8.10)<br>Microsoft.Graph.Authentication (>= 2.41.2)<br>Az.Accounts (>= 5.5.2)</p> |
| スケジュール可能 | はい                                                                                                                 |

### 権限

#### アプリケーションのアクセス許可

* **種類**: Microsoft Graph
  * Group.ReadWrite.All
    * *ソース/ターゲット グループとホスト チームを解決し、/groups/{id}/members/$ref を介して直接メンバーシップを書き込みます*
  * GroupMember.ReadWrite.All
    * *同期中にターゲット グループの直接メンバーを追加および削除します*
  * Channel.ReadBasic.All
    * */teams/{id}/channels を一覧表示して Shared Channel を解決し、それが Shared Channel であることを確認します*
  * ChannelMember.ReadWrite.All
    * */teams/{id}/channels/{id}/members を介して Shared Channel のメンバーを読み取り、追加し、削除します*
  * TeamMember.ReadWrite.All
    * *Shared Channel メンバーの前提条件または後処理として、ホスト チームのメンバーシップを追加/削除します*
  * User.Read.All
    * *メンバーのユーザー オブジェクト (id、UPN、userType) を読み取り、ゲストを検出してメンバーシップの差分を計算します*
  * Organization.Read.All
    * */organization を読み取り、レポート メールにテナント名を含めます*
  * Mail.Send *(オプション — 機能: メール レポート)*
    * *メールでのレポート作成が有効な場合、Send-RjReportEmail を介して同期レポートを送信します*

### パラメーター

#### 方向

何をどこにコピーするか: Shared Channel のメンバーをターゲット グループへ、ソース グループのメンバーをターゲット グループへ、またはソース グループのメンバーを Shared Channel へ。

| プロパティ   | 値    |
| ------- | ---- |
| 必須      | true |
| 既定値     |      |
| 種類      | 文字列  |
| ポータル表示名 | 方向   |

**ポータルのオプション**

| ポータル オプション                        | 値                    |
| --------------------------------- | -------------------- |
| Shared Channel のメンバーをセキュリティ グループへ | SharedChannelToGroup |
| グループ メンバーをグループへ                   | GroupToGroup         |
| グループ メンバーを Shared Channel へ       | GroupToSharedChannel |

#### TeamId

Shared Channel をホストするチーム。Shared Channel の方向でのみ必要です。

| プロパティ   | 値                        |
| ------- | ------------------------ |
| 必須      | false                    |
| 既定値     |                          |
| 種類      | 文字列                      |
| ポータル表示名 | Shared Channel をホストするチーム |

#### ChannelName

そのチーム内の Shared Channel の正確な名前。Shared Channel の方向でのみ必要です。

| プロパティ   | 値                |
| ------- | ---------------- |
| 必須      | false            |
| 既定値     |                  |
| 種類      | 文字列              |
| ポータル表示名 | Shared Channel 名 |

#### SourceGroupId

メンバーがコピーされるグループ。ソースがグループの場合に必要です。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータル表示名  | ソース グループ                  |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### TargetGroupId

メンバーを受け取るセキュリティ グループ。ターゲットがグループの場合に必要です。

| プロパティ   | 値                 |
| ------- | ----------------- |
| 必須      | false             |
| 既定値     |                   |
| 種類      | 文字列               |
| ポータル表示名 | ターゲット セキュリティ グループ |

#### RemoveExtraMembers

ターゲットにのみ存在するメンバーも削除して、ソースと完全に一致するようにします。そうでない場合、メンバーは追加されるだけです。

| プロパティ   | 値                  |
| ------- | ------------------ |
| 必須      | false              |
| 既定値     | False              |
| 種類      | ブール値               |
| ポータル表示名 | ソースにないメンバーを削除しますか? |

#### IncludeGuests

ゲスト ユーザーも追加および削除します。そうでない場合、ゲストは両側で変更されません。

| プロパティ   | 値               |
| ------- | --------------- |
| 必須      | false           |
| 既定値     | False           |
| 種類      | ブール値            |
| ポータル表示名 | ゲスト ユーザーを含めますか? |

#### RemoveFromTeam

メンバーが Shared Channel から削除されたとき、ホスト チームからも削除します。グループが Shared Channel にコピーされる場合にのみ適用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      | False                     |
| 種類       | ブール値                      |
| ポータル表示名  | ホスト チームからも削除しますか?         |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### WhatIfMode

何も書き込まず、変更される内容だけを記録します。

| プロパティ   | 値      |
| ------- | ------ |
| 必須      | false  |
| 既定値     | False  |
| 種類      | ブール値   |
| ポータル表示名 | ドライラン？ |

#### SendEmailReport

レポートを受信者のメールアドレスに送信します。

| プロパティ   | 値                |
| ------- | ---------------- |
| 必須      | false            |
| 既定値     | False            |
| 種類      | ブール値             |
| ポータル表示名 | メールでレポートを送信しますか? |

**ポータルのオプション**

| ポータル オプション         | 値     |
| ------------------ | ----- |
| はい - メールでレポートを送信する | true  |
| いいえ - メールを送信しない    | false |

#### EmailTo

レポートをこれらの宛先に送信します。複数ある場合はカンマで区切ってください。各受信者には個別のメールが届きます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータル表示名  | 宛先メールアドレス                 |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### EmailFrom

レポートメールの送信元アドレス。テナント設定 RJReport.EmailSender から取得されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingHeaderImageUrl

レポートメールのヘッダー画像 (HTTPS URL、PNG/JPEG/GIF、最大 200 KB)。テナント設定 RJReport.Branding.HeaderImageUrl から取得されます。空の場合は既定の RealmJoin ヘッダーが使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingFooterImageUrl

レポートメールのフッター画像 (HTTPS URL、PNG/JPEG/GIF、最大 200 KB)。テナント設定 RJReport.Branding.FooterImageUrl から取得されます。空の場合は既定の RealmJoin フッターが使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingFooterLink

レポートメールのフッター画像のリンク先。テナント設定 RJReport.Branding.FooterLink から取得されます。空の場合は realmjoin.com が使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingAccentColor

レポートメールのアクセントカラーを 6 桁の 16 進数値で指定します。テナント設定 RJReport.Branding.AccentColor から取得されます。空または無効な場合は RealmJoin の既定値が使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### BrandingTextColor

レポートメールのテキストカラーを 6 桁の 16 進数値で指定します。テナント設定 RJReport.Branding.TextColor から取得されます。空または無効な場合は RealmJoin の既定値が使用されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### ReportFileFormat

レポートを CSV、Excel ブック、またはその両方で配信します。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      | CSV と XLSX                |
| 種類       | 文字列                       |
| ポータル表示名  | レポート ファイルの形式              |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

**ポータルのオプション**

| ポータル オプション | 値          |
| ---------- | ---------- |
| CSV と XLSX | CSV と XLSX |
| CSV のみ     | CSV のみ     |
| XLSX のみ    | XLSX のみ    |

#### CreateDownloadLink

レポートもアップロードし、数日後に期限切れになるダウンロード リンクを返します。

| プロパティ   | 値                  |
| ------- | ------------------ |
| 必須      | false              |
| 既定値     | False              |
| 種類      | ブール値               |
| ポータル表示名 | ダウンロード リンクを作成しますか？ |

**ポータルのオプション**

| ポータル オプション                        | 値     |
| --------------------------------- | ----- |
| はい - レポートをアップロードしてダウンロード リンクを返します | true  |
| いいえ - ダウンロード リンクは作成しません           | false |

#### コンテナー名

レポート ファイルがアップロードされるストレージ コンテナーです。runbook ごとに設定します。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      | channel-group-member-sync |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### リソース グループ名

レポート アップロード用のストレージ アカウントのリソース グループです。Tenant 設定 RJReport.StorageAccount.ResourceGroup から取得されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### Storage Account 名

レポート アップロード用の Storage Account です。Tenant 設定 RJReport.StorageAccount.StorageAccountName から取得されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      |                           |
| 種類       | 文字列                       |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

#### LinkExpiryDays

ダウンロード リンクが有効なままの期間（日数）です。Tenant 設定 RJReport.StorageAccount.LinkExpiryDays から取得されます。

| プロパティ    | 値                         |
| -------- | ------------------------- |
| 必須       | false                     |
| 既定値      | 6                         |
| 種類       | Int32                     |
| ポータルで非表示 | はい (Runbook のカスタマイズで事前設定) |

[Runbook リファレンスの概要に戻る](/ja/zi-dong-hua/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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.realmjoin.com/ja/zi-dong-hua/runbooks/runbook-references/org/general/sync-channel-or-group-members_scheduled.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
