> 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 canal ou membros do grupo agendado

{% hint style="info" %}
Este é um runbook agendado. Ele foi projetado para ser executado em um agendamento recorrente, em vez de ser acionado para um único objeto. Veja [Agendamento](/pt/automacao/runbooks/scheduling.md) para detalhes sobre como configurar os agendamentos do runbook.
{% endhint %}

### 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 do Teams Shared Channel para um grupo de segurança, a sincronização dos membros de um grupo para outro grupo (por exemplo, um grupo Microsoft 365 para um grupo de segurança ou vice-versa) e a sincronização de membros de grupos 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. O tratamento de convidados e se as remoções do canal também removem 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 uma ligação de download com tempo limitado. O parâmetro ReportFileFormat controla quais formatos de ficheiro de relatório são gerados e entregues (apenas CSV, CSV e 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 à pasta 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 estejam em falta no destino.
4. Opcionalmente remove todos os membros do destino que não existam na origem (modo espelho).

#### Direções

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

* **`SharedChannelToGroup`** - os membros de um Teams Shared Channel são copiados para um grupo de segurança de destino.
* **`GroupToGroup`** - os membros de um grupo de origem são copiados para um grupo de destino (por exemplo, um grupo Microsoft 365 para um grupo de segurança, ou o inverso, trocando origem e 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** por meio de `RemoveExtraMembers` (desativado por predefinição). 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**, por isso os utilizadores que são membros através de grupos aninhados são incluídos. Do lado do destino, apenas **diretos** membros são considerados, porque as operações de adição e remoção atuam sobre a associação direta.

#### Tratamento de convidados

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

#### Detalhes específicos de canal partilhado

* Quando um grupo é sincronizado **para** um canal partilhado, 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 canal partilhado, por predefinição apenas a associação ao canal é removida. Ative `RemoveFromTeam` para também remover o utilizador da associação à equipa anfitriã.

#### Execução 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 que lista cada alteração individual. O remetente é retirado da `RJReport.EmailSender` definição.
* **`CreateDownloadLink`** carrega o mesmo CSV para uma conta de armazenamento e devolve uma ligação de download SAS com tempo limitado (também incorporada no e-mail quando ambas as opções estão ativadas). A conta de armazenamento de destino é retirada da `RJReport.StorageAccount.*` definições.

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

#### Agendamento

Concebido para ser executado sem supervisão segundo um agendamento. Como o runbook é idempotente, um único agendamento recorrente mantém o destino sincronizado com a origem à medida que os membros entram e saem.

### Branding do e-mail

O e-mail do relatório respeita as configurações opcionais `RJReport.Branding.*` do tenant: uma imagem de cabeçalho personalizada, uma imagem de rodapé personalizada (URLs HTTPS públicas, PNG/JPEG/GIF, máx. 200 KB cada), um link de rodapé personalizado e cores personalizadas de destaque e de texto (valores hexadecimais de 6 dígitos, por ex. `#0052cc`). Quando essas configurações não estão definidas, são usadas as imagens e cores padrão do RealmJoin. Uma imagem de branding que não possa ser transferida por download ou validada, ou um valor de cor que não seja uma cor hex válida, nunca impede o e-mail do relatório - em vez disso, é usado o padrão correspondente.

Consulte a [documentação das Configurações de Relatório RealmJoin](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) para detalhes de configuração.

### Localização

Organização → Geral → Sincronizar Membros do Canal Ou Grupo (Agendado)

**Nome completo do runbook**

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

### Detalhes

| Propriedade         | Valor                                                                                                             |
| ------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Versão              | 1.3.0                                                                                                             |
| Módulos necessários | <p>RealmJoin.RunbookHelper (>= 0.8.9)<br>Microsoft.Graph.Authentication (>= 2.39.0)<br>Az.Accounts (>= 5.5.2)</p> |
| Agendável           | sim                                                                                                               |

### Permissões

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

* **Tipo**: Microsoft Graph
  * Group.ReadWrite.All
    * *Resolve os grupos de origem/destino e a equipa anfitriã e escreve a associação direta via /groups/{id}/members/$ref*
  * GroupMember.ReadWrite.All
    * *Adiciona e remove membros diretos do grupo de destino durante a sincronização*
  * Channel.ReadBasic.All
    * *Lista /teams/{id}/channels para resolver o canal partilhado e verificar se é um canal partilhado*
  * ChannelMember.ReadWrite.All
    * *Lê, adiciona e remove membros do canal partilhado via /teams/{id}/channels/{id}/members*
  * TeamMember.ReadWrite.All
    * *Adiciona/remove a associação à equipa anfitriã como pré-requisito ou limpeza para membros do canal partilhado*
  * User.Read.All
    * *Lê objetos de utilizador membros (id, UPN, userType) para detetar convidados e calcular o delta da associação*
  * Organization.Read.All
    * *Lê /organization para incluir o nome do locatário no e-mail do relatório*
  * Mail.Send *(opcional — funcionalidade: relatório por e-mail)*
    * *Envia o relatório de sincronização via Send-RjReportEmail quando o relatório por e-mail está ativado*

### Parâmetros

#### Direção

Seleciona o que é sincronizado para o quê. SharedChannelToGroup copia os membros do canal partilhado 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 canal partilhado.

| Propriedade                | Valor                       |
| -------------------------- | --------------------------- |
| Obrigatório                | verdadeiro                  |
| Valor padrão               |                             |
| Tipo                       | String                      |
| Nome de exibição no portal | O que deve ser sincronizado |

**Opções do portal**

| Opção do portal                                 | Valor |
| ----------------------------------------------- | ----- |
| Membros do Shared Channel -> grupo de segurança |       |
| Membros do grupo -> grupo                       |       |
| Membros do grupo -> Shared Channel              |       |

#### TeamId

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

| Propriedade                | Valor                               |
| -------------------------- | ----------------------------------- |
| Obrigatório                | falso                               |
| Valor padrão               |                                     |
| Tipo                       | String                              |
| Nome de exibição no portal | Equipa que aloja o canal partilhado |

#### ChannelName

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

| Propriedade                | Valor                                    |
| -------------------------- | ---------------------------------------- |
| Obrigatório                | falso                                    |
| Valor padrão               |                                          |
| Tipo                       | String                                   |
| Nome de exibição no portal | Nome de apresentação do canal partilhado |

#### SourceGroupId

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

| Propriedade                | Valor                                           |
| -------------------------- | ----------------------------------------------- |
| Obrigatório                | falso                                           |
| Valor padrão               |                                                 |
| Tipo                       | String                                          |
| Nome de exibição no portal | Grupo de origem                                 |
| Oculto no portal           | sim (predefinido via personalização do runbook) |

#### TargetGroupId

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

| Propriedade                | Valor                         |
| -------------------------- | ----------------------------- |
| Obrigatório                | falso                         |
| Valor padrão               |                               |
| Tipo                       | String                        |
| Nome de exibição no portal | Grupo de segurança de destino |

#### 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 membros em falta.

| Propriedade                | Valor                                                             |
| -------------------------- | ----------------------------------------------------------------- |
| Obrigatório                | falso                                                             |
| Valor padrão               | Falso                                                             |
| Tipo                       | Booleano                                                          |
| Nome de exibição no portal | Remover membros que existem apenas no destino (espelhar a origem) |

#### 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                | falso                           |
| Valor padrão               | Falso                           |
| Tipo                       | Booleano                        |
| Nome de exibição no portal | Incluir utilizadores convidados |

#### RemoveFromTeam

Relevante apenas para GroupToSharedChannel. Quando ativado, remover um membro do canal partilhado 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                | falso                                                               |
| Valor padrão               | Falso                                                               |
| Tipo                       | Booleano                                                            |
| Nome de exibição no portal | Ao remover do canal, remover também o utilizador da equipa anfitriã |
| Oculto no portal           | sim (predefinido via personalização do runbook)                     |

#### WhatIfMode

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

| Propriedade                | Valor                                             |
| -------------------------- | ------------------------------------------------- |
| Obrigatório                | falso                                             |
| Valor padrão               | Falso                                             |
| Tipo                       | Booleano                                          |
| Nome de exibição no portal | Execução em seco (apenas registo, sem alterações) |

#### SendEmailReport

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

| Propriedade                | Valor                       |
| -------------------------- | --------------------------- |
| Obrigatório                | falso                       |
| Valor padrão               | Falso                       |
| Tipo                       | Booleano                    |
| Nome de exibição no portal | Enviar relatório por e-mail |

**Opções do portal**

| Opção do portal                    | Valor |
| ---------------------------------- | ----- |
| Sim - enviar o relatório por email |       |
| Não - não enviar email             |       |

#### EmailTo

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

| Propriedade                | Valor                                           |
| -------------------------- | ----------------------------------------------- |
| Obrigatório                | falso                                           |
| Valor padrão               |                                                 |
| Tipo                       | String                                          |
| Nome de exibição no portal | Enviar relatório para (endereço(s) de e-mail)   |
| Oculto no portal           | sim (predefinido via personalização do runbook) |

#### EmailFrom

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

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     |                                                 |
| Tipo             | String                                          |
| Oculto no portal | sim (predefinido via personalização do runbook) |

#### BrandingHeaderImageUrl

URL HTTPS pública opcional de uma imagem de cabeçalho personalizada (PNG/JPEG/GIF, máx. 200 KB) para o e-mail do relatório. Obtida da configuração do tenant RJReport.Branding.HeaderImageUrl. Quando vazia, é usada a imagem padrão de cabeçalho do RealmJoin.

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     |                                                 |
| Tipo             | String                                          |
| Oculto no portal | sim (predefinido via personalização do runbook) |

#### BrandingFooterImageUrl

URL HTTPS pública opcional de uma imagem de rodapé personalizada (PNG/JPEG/GIF, máx. 200 KB) para o e-mail do relatório. Obtida da configuração do tenant RJReport.Branding.FooterImageUrl. Quando vazia, é usada a imagem padrão de rodapé do RealmJoin.

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     |                                                 |
| Tipo             | String                                          |
| Oculto no portal | sim (predefinido via personalização do runbook) |

#### BrandingFooterLink

URL opcional para onde a imagem de rodapé aponta. Obtida da configuração do tenant RJReport.Branding.FooterLink. Quando vazia, é usado o link padrão (<https://www.realmjoin.com>).

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     |                                                 |
| Tipo             | String                                          |
| Oculto no portal | sim (predefinido via personalização do runbook) |

#### BrandingAccentColor

Substituição opcional da cor de destaque (hexadecimal de 6 dígitos, por ex. '#0052cc') para o modelo de e-mail do relatório. Obtida da configuração do tenant RJReport.Branding.AccentColor. Quando vazia ou inválida, é usada a cor de destaque padrão do RealmJoin.

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     |                                                 |
| Tipo             | String                                          |
| Oculto no portal | sim (predefinido via personalização do runbook) |

#### BrandingTextColor

Substituição opcional da cor do texto (hexadecimal de 6 dígitos) para o modelo de e-mail do relatório. Obtida da configuração do tenant RJReport.Branding.TextColor. Quando vazia ou inválida, é usada a cor de texto padrão do RealmJoin.

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     |                                                 |
| Tipo             | String                                          |
| Oculto no portal | sim (predefinido via personalização do runbook) |

#### ReportFileFormat

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

| Propriedade                | Valor                                           |
| -------------------------- | ----------------------------------------------- |
| Obrigatório                | falso                                           |
| Valor padrão               | CSV & XLSX                                      |
| Tipo                       | String                                          |
| Nome de exibição no portal | Formato do ficheiro de relatório                |
| Oculto no portal           | sim (predefinido via personalização do runbook) |

**Opções do portal**

| Opção do portal | Valor |
| --------------- | ----- |
| CSV & XLSX      |       |
| Apenas CSV      |       |
| Apenas XLSX     |       |

#### CreateDownloadLink

Quando ativado, o(s) ficheiro(s) do relatório são carregados para uma conta de armazenamento e são devolvidas ligações de download com tempo limitado (e incluídas no relatório por e-mail se essa opção também estiver ativada).

| Propriedade                | Valor                                                                                |
| -------------------------- | ------------------------------------------------------------------------------------ |
| Obrigatório                | falso                                                                                |
| Valor padrão               | Falso                                                                                |
| Tipo                       | Booleano                                                                             |
| Nome de exibição no portal | Criar uma ligação de download do relatório (carregar o relatório para armazenamento) |

**Opções do portal**

| Opção do portal                                           | Valor |
| --------------------------------------------------------- | ----- |
| Sim - carregar o relatório e devolver um link de download |       |
| Não - não criar um link de download                       |       |

#### ContainerName

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

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     | channel-group-member-sync                       |
| Tipo             | String                                          |
| Oculto no portal | sim (predefinido via personalização do runbook) |

#### ResourceGroupName

Grupo de recursos que contém a conta de armazenamento. Associado a RJReport.StorageAccount.ResourceGroup.

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     |                                                 |
| Tipo             | String                                          |
| Oculto no portal | sim (predefinido via personalização do runbook) |

#### StorageAccountName

Conta de armazenamento usada para o carregamento. Associada a RJReport.StorageAccount.StorageAccountName.

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     |                                                 |
| Tipo             | String                                          |
| Oculto no portal | sim (predefinido via personalização do runbook) |

#### LinkExpiryDays

Dias até a ligação de download gerada expirar. Associado a RJReport.StorageAccount.LinkExpiryDays.

| Propriedade      | Valor                                           |
| ---------------- | ----------------------------------------------- |
| Obrigatório      | falso                                           |
| Valor padrão     | 6                                               |
| Tipo             | Int32                                           |
| Oculto no portal | sim (predefinido via personalização do runbook) |

[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.
