> 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/pt/automacao/runbooks/runbook-references/org/general/sync-channel-or-group-members_scheduled.md).

# Sincronizar Membros De Canal Ou Grupo Agendado

### Descrição

Este runbook agendado espelha a associação de um objeto de origem para um objeto de destino numa única direção por execução. Suporta a sincronização dos membros de Teams Shared Channel para um Security Group, a sincronização dos membros de um grupo para outro grupo (por exemplo, um grupo do Microsoft 365 para um Security Group ou vice-versa) e a sincronização de membros de grupo para um Teams Shared Channel. A adição de membros em falta é sempre efetuada, enquanto a remoção de membros que existem apenas no destino é opcional e controlada por um parâmetro. A gestão de convidados e o facto de as remoções do canal também removerem a associação da equipa anfitriã são configuráveis, e o runbook pode opcionalmente enviar um relatório por e-mail e carregar os resultados como um link de download com prazo limitado. O parâmetro ReportFileFormat controla os formatos dos ficheiros de relatório que são gerados e entregues (apenas CSV, CSV & XLSX, ou apenas XLSX). Quando o anexo CSV excede o limite de tamanho do e-mail e "CSV & XLSX" é selecionado, o e-mail recorre apenas ao livro de trabalho do Excel.

### Como funciona

Este runbook agendado espelha a associação de um **origem** objeto para um **destino** objeto numa única direção por execução. Em cada execução, ele:

1. Resolve os objetos de origem e de destino para a direção selecionada.
2. Lê o conjunto atual de membros de ambos os lados.
3. Adiciona todos os membros de origem que estão em falta no destino.
4. Remove opcionalmente todos os membros de destino que não existam na origem (modo espelho).

#### Direções

O `Direção` parâmetro seleciona o que é sincronizado para quê:

* **`SharedChannelToGroup`** - os membros de um Teams Shared Channel são copiados para um Security Group de destino.
* **`GroupToGroup`** - os membros de um grupo de origem são copiados para um grupo de destino (por exemplo, um grupo do Microsoft 365 para um Security Group, ou o inverso, trocando a origem e o destino).
* **`GroupToSharedChannel`** - os membros de um grupo de origem são copiados para um Teams Shared Channel.

#### Adição e remoção

A adição de membros em falta é sempre efetuada. A remoção de membros que existem apenas no destino é **opcional** via `RemoveExtraMembers` (por predefinição desligado). Com a remoção ativada, o destino é espelhado exatamente em relação à origem; com ela desativada, o runbook é apenas de adição.

#### Expansão de membros do grupo

Os membros do grupo do lado da origem são resolvidos **transitivamente**, pelo que os utilizadores que são membros através de grupos aninhados são incluídos. No lado de destino, apenas **diretos** membros são considerados, porque as operações de adição e remoção atuam na associação direta.

#### Gestão de convidados

`IncludeGuests` (por predefinição desligado) controla se os utilizadores convidados participam na sincronização. Quando está desligado, os convidados são ignorados em ambos os lados e nunca são adicionados nem removidos. Shared channels frequentemente rejeitam convidados, por isso isto está desligado por predefinição.

#### Especificidades do Shared Channel

* Quando um grupo é sincronizado **para** um Shared Channel, a associação à equipa é um pré-requisito para a associação ao canal, por isso o runbook primeiro garante que o utilizador é membro da equipa anfitriã e depois adiciona o utilizador ao canal.
* Quando os membros são **removidos** de um Shared Channel, por predefinição só a associação ao canal é removida. Ative `RemoveFromTeam` para também remover o utilizador da associação à equipa anfitriã.

#### Execução em modo de teste

Defina `WhatIfMode` para registar o que mudaria sem gravar nada.

#### Relatórios (opcional, ambos desativados por predefinição)

* **`SendEmailReport`** envia um e-mail com a marca RealmJoin (através de `Send-RjReportEmail`) com estatísticas da execução e um anexo CSV com cada alteração individual. O remetente é obtido a partir do `RJReport.EmailSender` .
* **`CreateDownloadLink`** carrega o mesmo CSV para uma Storage Account e devolve um link de download SAS com prazo limitado (também incorporado no e-mail quando ambas as opções estão ativadas). A Storage Account de destino é obtida a partir do `RJReport.StorageAccount.*` definições.

O carregamento para o armazenamento autentica-se com a identidade gerida da conta de Automação; essa identidade precisa da função Storage Blob Data Contributor do RBAC na Storage Account de destino (esta é uma atribuição de Azure RBAC, não uma permissão de aplicação do Graph). **Storage Blob Data Contributor** RBAC

#### Agendamento

Concebido para ser executado sem supervisão numa agenda. Como o runbook é idempotente, uma única agenda recorrente mantém o destino sincronizado com a origem à medida que os membros entram e saem.

### Localização

Organização → Geral → Sincronizar Membros de Canal ou Grupo (Agendado)

**Nome completo do runbook**

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

### Permissões

#### Permissões da aplicação

* **Tipo**: Microsoft Graph
  * Group.ReadWrite.All
  * GroupMember.ReadWrite.All
  * Channel.ReadBasic.All
  * ChannelMember.ReadWrite.All
  * TeamMember.ReadWrite.All
  * User.Read.All
  * Organization.Read.All
  * Mail.Send

### Parâmetros

#### Direção

Seleciona o que é sincronizado para quê. SharedChannelToGroup copia os membros de Shared Channel para o grupo de destino, GroupToGroup copia os membros do grupo de origem para o grupo de destino, e GroupToSharedChannel copia os membros do grupo de origem para o Shared Channel.

| Propriedade       | Valor  |
| ----------------- | ------ |
| Obrigatório       | true   |
| Valor predefinido |        |
| Tipo              | String |

#### TeamId

ID do objeto da equipa que aloja o Shared Channel. Utilizado apenas para as direções do Shared Channel.

| Propriedade       | Valor  |
| ----------------- | ------ |
| Obrigatório       | false  |
| Valor predefinido |        |
| Tipo              | String |

#### ChannelName

Nome de apresentação exato do Shared Channel dentro da equipa selecionada. Utilizado apenas para as direções do Shared Channel.

| Propriedade       | Valor  |
| ----------------- | ------ |
| Obrigatório       | false  |
| Valor predefinido |        |
| Tipo              | String |

#### SourceGroupId

ID do objeto do grupo de origem cujos membros são copiados. Utilizado para as direções do grupo de origem.

| Propriedade       | Valor  |
| ----------------- | ------ |
| Obrigatório       | false  |
| Valor predefinido |        |
| Tipo              | String |

#### TargetGroupId

ID do objeto do Security Group de destino que recebe os membros. Utilizado para as direções do grupo de destino.

| Propriedade       | Valor  |
| ----------------- | ------ |
| Obrigatório       | false  |
| Valor predefinido |        |
| Tipo              | String |

#### RemoveExtraMembers

Quando ativado, os membros que existem apenas no destino e não na origem são removidos para que o destino espelhe a origem. Quando desativado (predefinição), o runbook apenas adiciona os membros em falta.

| Propriedade       | Valor    |
| ----------------- | -------- |
| Obrigatório       | false    |
| Valor predefinido | Falso    |
| Tipo              | Booleano |

#### IncludeGuests

Quando ativado, os utilizadores convidados são incluídos na sincronização e podem ser adicionados ou removidos. Quando desativado (predefinição), os convidados são ignorados e nunca são adicionados nem removidos.

| Propriedade       | Valor    |
| ----------------- | -------- |
| Obrigatório       | false    |
| Valor predefinido | Falso    |
| Tipo              | Booleano |

#### RemoveFromTeam

Apenas relevante para GroupToSharedChannel. Quando ativado, remover um membro do Shared Channel também remove esse utilizador da associação à equipa anfitriã. Quando desativado (predefinição), apenas a associação ao canal é removida.

| Propriedade       | Valor    |
| ----------------- | -------- |
| Obrigatório       | false    |
| Valor predefinido | Falso    |
| Tipo              | Booleano |

#### WhatIfMode

Quando ativado, o runbook apenas regista as alterações que faria, sem escrever nada.

| Propriedade       | Valor    |
| ----------------- | -------- |
| Obrigatório       | false    |
| Valor predefinido | Falso    |
| Tipo              | Booleano |

#### SendEmailReport

Quando ativado, é enviado um relatório por e-mail com a marca RealmJoin via Send-RjReportEmail após a execução. Ativar isto revela os campos do endereço do destinatário e do formato do ficheiro do relatório.

| Propriedade       | Valor    |
| ----------------- | -------- |
| Obrigatório       | false    |
| Valor predefinido | Falso    |
| Tipo              | Booleano |

#### EmailTo

Endereço(s) de e-mail dos destinatários do relatório (separados por vírgulas). Utilizado apenas quando SendEmailReport está ativado.

| Propriedade       | Valor  |
| ----------------- | ------ |
| Obrigatório       | false  |
| Valor predefinido |        |
| Tipo              | String |

#### EmailFrom

Caixa de correio do remetente do relatório. Associada à definição da organização RJReport.EmailSender.

| Propriedade       | Valor  |
| ----------------- | ------ |
| Obrigatório       | false  |
| Valor predefinido |        |
| Tipo              | String |

#### ReportFileFormat

Controla quais formatos de ficheiro do relatório são gerados e entregues: "apenas CSV", "CSV & XLSX" (predefinição) ou "apenas XLSX".

| Propriedade       | Valor      |
| ----------------- | ---------- |
| Obrigatório       | false      |
| Valor predefinido | CSV & XLSX |
| Tipo              | String     |

#### CreateDownloadLink

Quando ativado, o(s) ficheiro(s) do relatório são carregados para uma Storage Account e são devolvidos links de download com prazo limitado (e incluídos no relatório por e-mail se essa opção também estiver ativada).

| Propriedade       | Valor    |
| ----------------- | -------- |
| Obrigatório       | false    |
| Valor predefinido | Falso    |
| Tipo              | Booleano |

#### ContainerName

Contentor de armazenamento utilizado para o carregamento. Configurado por runbook.

| Propriedade       | Valor                     |
| ----------------- | ------------------------- |
| Obrigatório       | false                     |
| Valor predefinido | channel-group-member-sync |
| Tipo              | String                    |

#### ResourceGroupName

Grupo de recursos que contém a Storage Account. Associado a RJReport.StorageAccount.ResourceGroup.

| Propriedade       | Valor  |
| ----------------- | ------ |
| Obrigatório       | false  |
| Valor predefinido |        |
| Tipo              | String |

#### StorageAccountName

Storage Account utilizada para o carregamento. Associada a RJReport.StorageAccount.StorageAccountName.

| Propriedade       | Valor  |
| ----------------- | ------ |
| Obrigatório       | false  |
| Valor predefinido |        |
| Tipo              | String |

#### LinkExpiryDays

Dias até o link de download gerado expirar. Associado a RJReport.StorageAccount.LinkExpiryDays.

| Propriedade       | Valor |
| ----------------- | ----- |
| Obrigatório       | false |
| Valor predefinido | 6     |
| Tipo              | Int32 |

[Voltar à visão geral da referência do Runbook](/pt/automacao/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/pt/automacao/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.
