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

# Sincronizar miembros de canal o grupo programado

### Descripción

Este runbook programado refleja la pertenencia de un objeto de origen en un objeto de destino en una sola dirección por ejecución. Admite sincronizar los miembros de Teams Shared Channel en un Security Group, sincronizar los miembros de un grupo en otro grupo (por ejemplo, un grupo de Microsoft 365 en un Security Group o viceversa) y sincronizar los miembros de un grupo en un Teams Shared Channel. Agregar los miembros que faltan siempre se realiza, mientras que quitar los miembros que solo existen en el destino es opcional y se controla mediante un parámetro. El tratamiento de invitados y si las eliminaciones del canal también quitan la pertenencia al equipo anfitrión son configurables, y el runbook puede enviar opcionalmente un informe por correo electrónico y cargar los resultados como un enlace de descarga con tiempo limitado. El parámetro ReportFileFormat controla qué formatos de archivo de informe se generan y se entregan (solo CSV, CSV y XLSX, o solo XLSX). Cuando el archivo adjunto CSV supera el límite de tamaño del correo electrónico y se selecciona "CSV y XLSX", el correo electrónico recurre solo al libro de Excel.

### Cómo funciona

Este runbook programado refleja la pertenencia de un **objeto de** origen en un **objeto de** destino en una sola dirección por ejecución. En cada ejecución:

1. Resuelve los objetos de origen y destino para la dirección seleccionada.
2. Lee el conjunto actual de miembros de ambos lados.
3. Agrega a cada miembro de origen que falte en el destino.
4. Opcionalmente, quita a cada miembro del destino que no exista en el origen (modo espejo).

#### Direcciones

El `Direction` parámetro selecciona qué se sincroniza con qué:

* **`SharedChannelToGroup`** - los miembros de un Teams Shared Channel se copian en un Security Group de destino.
* **`GroupToGroup`** - los miembros de un grupo de origen se copian en un grupo de destino (por ejemplo, un grupo de Microsoft 365 en un Security Group, o a la inversa intercambiando origen y destino).
* **`GroupToSharedChannel`** - los miembros de un grupo de origen se copian en un Teams Shared Channel.

#### Adición y eliminación

Siempre se agregan los miembros que faltan. Quitar los miembros que existen solo en el destino es **opcional** mediante `RemoveExtraMembers` (desactivado de forma predeterminada). Con la eliminación habilitada, el destino se refleja exactamente respecto al origen; con ella deshabilitada, el runbook solo agrega.

#### Expansión de miembros de grupo

Los miembros del grupo del lado de origen se resuelven **transitivamente**, por lo que se incluyen los usuarios que son miembros a través de grupos anidados. En el lado de destino solo se consideran los miembros **directos** , porque las operaciones de agregar y quitar actúan sobre la pertenencia directa.

#### Tratamiento de invitados

`IncludeGuests` (desactivado de forma predeterminada) controla si los usuarios invitados participan en la sincronización. Cuando está desactivado, los invitados se omiten en ambos lados y nunca se agregan ni se quitan. Los canales compartidos a menudo rechazan invitados, por lo que esta opción está desactivada de forma predeterminada.

#### Detalles específicos de canal compartido

* Cuando un grupo se sincroniza **en** un canal compartido, la pertenencia al equipo es un requisito previo para la pertenencia al canal, por lo que el runbook primero garantiza que el usuario sea miembro del equipo anfitrión y luego agrega al usuario al canal.
* Cuando los miembros se **quitan** de un canal compartido, de forma predeterminada solo se quita la pertenencia al canal. Habilita `RemoveFromTeam` para quitar también al usuario de la pertenencia al equipo anfitrión.

#### Ejecución en seco

Establezca `WhatIfMode` para registrar qué cambiaría sin escribir nada.

#### Informes (opcional, ambos desactivados de forma predeterminada)

* **`SendEmailReport`** envía un correo con la marca de RealmJoin (a través de `Send-RjReportEmail`) con estadísticas de la ejecución y un archivo adjunto CSV que enumera cada cambio individual. El remitente se toma de la `RJReport.EmailSender` configuración.
* **`CreateDownloadLink`** carga el mismo CSV en una cuenta de almacenamiento y devuelve un enlace de descarga SAS con tiempo limitado (también incrustado en el correo electrónico cuando ambas opciones están habilitadas). La cuenta de almacenamiento de destino se toma de la `RJReport.StorageAccount.*` configuraciones.

La carga en el almacenamiento se autentica con la identidad administrada de la cuenta de Automation; esa identidad necesita el rol RBAC de **Storage Blob Data Contributor** en la Storage Account de destino (esta es una asignación de Azure RBAC, no un permiso de aplicación de Microsoft Graph).

#### Programación

Diseñado para ejecutarse de forma desatendida según una programación. Como el runbook es idempotente, una sola programación recurrente mantiene el destino sincronizado con el origen a medida que los miembros entran y salen.

### Ubicación

Organización → General → Sincronizar miembros de canal o grupo (programado)

**Nombre completo del runbook**

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

### Permisos

#### Permisos de aplicación

* **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

#### Direction

Selecciona qué se sincroniza con qué. SharedChannelToGroup copia los miembros de Teams Shared Channel al Security Group de destino, GroupToGroup copia los miembros del grupo de origen al Security Group de destino, y GroupToSharedChannel copia los miembros del grupo de origen a Teams Shared Channel.

| Propiedad            | Valor  |
| -------------------- | ------ |
| Obligatorio          | true   |
| Valor predeterminado |        |
| Tipo                 | Cadena |

#### TeamId

Id. de objeto del equipo que hospeda el Teams Shared Channel. Solo se usa para las direcciones del canal compartido.

| Propiedad            | Valor  |
| -------------------- | ------ |
| Obligatorio          | false  |
| Valor predeterminado |        |
| Tipo                 | Cadena |

#### ChannelName

Nombre exacto para mostrar del Teams Shared Channel dentro del equipo seleccionado. Solo se usa para las direcciones del canal compartido.

| Propiedad            | Valor  |
| -------------------- | ------ |
| Obligatorio          | false  |
| Valor predeterminado |        |
| Tipo                 | Cadena |

#### SourceGroupId

Id. de objeto del grupo de origen cuyos miembros se copian. Se usa para las direcciones de origen del grupo.

| Propiedad            | Valor  |
| -------------------- | ------ |
| Obligatorio          | false  |
| Valor predeterminado |        |
| Tipo                 | Cadena |

#### TargetGroupId

Id. de objeto del Security Group de destino que recibe a los miembros. Se usa para las direcciones de destino del grupo.

| Propiedad            | Valor  |
| -------------------- | ------ |
| Obligatorio          | false  |
| Valor predeterminado |        |
| Tipo                 | Cadena |

#### RemoveExtraMembers

Cuando está habilitado, los miembros que existen solo en el destino y no en el origen se quitan para que el destino refleje al origen. Cuando está deshabilitado (predeterminado), el runbook solo agrega los miembros que faltan.

| Propiedad            | Valor    |
| -------------------- | -------- |
| Obligatorio          | false    |
| Valor predeterminado | False    |
| Tipo                 | Booleano |

#### IncludeGuests

Cuando está habilitado, los usuarios invitados se incluyen en la sincronización y pueden agregarse o quitarse. Cuando está deshabilitado (predeterminado), los invitados se omiten y nunca se agregan ni se quitan.

| Propiedad            | Valor    |
| -------------------- | -------- |
| Obligatorio          | false    |
| Valor predeterminado | False    |
| Tipo                 | Booleano |

#### RemoveFromTeam

Solo relevante para GroupToSharedChannel. Cuando está habilitado, quitar a un miembro del canal compartido también quita a ese usuario de la pertenencia al equipo anfitrión. Cuando está deshabilitado (predeterminado), solo se quita la pertenencia al canal.

| Propiedad            | Valor    |
| -------------------- | -------- |
| Obligatorio          | false    |
| Valor predeterminado | False    |
| Tipo                 | Booleano |

#### WhatIfMode

Cuando está habilitado, el runbook solo registra los cambios que haría sin escribir nada.

| Propiedad            | Valor    |
| -------------------- | -------- |
| Obligatorio          | false    |
| Valor predeterminado | False    |
| Tipo                 | Booleano |

#### SendEmailReport

Cuando está habilitado, se envía un informe por correo electrónico con la marca RealmJoin mediante Send-RjReportEmail después de la ejecución. Al activar esto, se muestran los campos de dirección del destinatario y formato de archivo del informe.

| Propiedad            | Valor    |
| -------------------- | -------- |
| Obligatorio          | false    |
| Valor predeterminado | False    |
| Tipo                 | Booleano |

#### EmailTo

Direcciones de correo electrónico de los destinatarios del informe (separadas por comas). Solo se usa cuando SendEmailReport está habilitado.

| Propiedad            | Valor  |
| -------------------- | ------ |
| Obligatorio          | false  |
| Valor predeterminado |        |
| Tipo                 | Cadena |

#### EmailFrom

Buzón del remitente para el informe. Vinculado a la configuración de la organización RJReport.EmailSender.

| Propiedad            | Valor  |
| -------------------- | ------ |
| Obligatorio          | false  |
| Valor predeterminado |        |
| Tipo                 | Cadena |

#### ReportFileFormat

Controla qué formatos de archivo del informe se generan y entregan: "solo CSV", "CSV y XLSX" (predeterminado) o "solo XLSX".

| Propiedad            | Valor      |
| -------------------- | ---------- |
| Obligatorio          | false      |
| Valor predeterminado | CSV & XLSX |
| Tipo                 | Cadena     |

#### CreateDownloadLink

Cuando está habilitado, los archivos de informe se cargan en una cuenta de almacenamiento y se devuelven enlaces de descarga con tiempo limitado (e incluidos en el informe por correo electrónico si eso también está habilitado).

| Propiedad            | Valor    |
| -------------------- | -------- |
| Obligatorio          | false    |
| Valor predeterminado | False    |
| Tipo                 | Booleano |

#### ContainerName

Contenedor de almacenamiento usado para la carga. Configurado por cada runbook.

| Propiedad            | Valor                     |
| -------------------- | ------------------------- |
| Obligatorio          | false                     |
| Valor predeterminado | channel-group-member-sync |
| Tipo                 | Cadena                    |

#### ResourceGroupName

Grupo de recursos que contiene la cuenta de almacenamiento. Vinculado a RJReport.StorageAccount.ResourceGroup.

| Propiedad            | Valor  |
| -------------------- | ------ |
| Obligatorio          | false  |
| Valor predeterminado |        |
| Tipo                 | Cadena |

#### StorageAccountName

Cuenta de almacenamiento usada para la carga. Vinculada a RJReport.StorageAccount.StorageAccountName.

| Propiedad            | Valor  |
| -------------------- | ------ |
| Obligatorio          | false  |
| Valor predeterminado |        |
| Tipo                 | Cadena |

#### LinkExpiryDays

Días hasta que el enlace de descarga generado expire. Vinculado a RJReport.StorageAccount.LinkExpiryDays.

| Propiedad            | Valor |
| -------------------- | ----- |
| Obligatorio          | false |
| Valor predeterminado | 6     |
| Tipo                 | Int32 |

[Volver al resumen de referencia del runbook](/es/automatizacion/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/es/automatizacion/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.
