> 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

{% hint style="info" %}
Este es un runbook programado. Está diseñado para ejecutarse según una programación recurrente en lugar de activarse para un único objeto. Consulte [Programación](/es/automatizacion/runbooks/scheduling.md) para obtener detalles sobre cómo configurar las programaciones del runbook.
{% endhint %}

### 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 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 miembros de un grupo en un Teams Shared Channel. Siempre se agregan los miembros que faltan, mientras que quitar los miembros que solo existen en el destino es opcional y está controlado por un parámetro. El tratamiento de invitados y si las eliminaciones del canal también eliminan la membresía del equipo anfitrión son configurables, y el runbook puede opcionalmente enviar 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 del informe se generan y 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 "CSV & XLSX" se selecciona, el correo electrónico recurre solo al libro de Excel.

### Cómo funciona

Este runbook programado refleja la pertenencia de un **origen** objeto en un **destino** objeto 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 todos los miembros de origen que faltan en el destino.
4. Quita opcionalmente todos los miembros del destino que no existen en el origen (modo espejo).

#### Direcciones

El `Dirección` el 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 al revés 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 **optativo** mediante `RemoveExtraMembers` (desactivado de forma predeterminada). Con la eliminación habilitada, el destino se refleja exactamente contra el origen; con ella deshabilitada, el runbook es solo de adición.

#### Expansión de miembros del grupo

Los miembros del grupo en el lado de origen se resuelven **transitivamente**, de modo 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 membresía 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 rechazan con frecuencia a los invitados, por lo que esto está desactivado de forma predeterminada.

#### Detalles específicos del canal compartido

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

#### Ejecución de prueba

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 (mediante `Send-RjReportEmail`) con estadísticas de 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 Storage Account 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 Storage Account de destino se toma de la `RJReport.StorageAccount.*` configuración.

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

#### Programación

Diseñado para ejecutarse sin supervisión según un programa. Debido a que el runbook es idempotente, un único programador recurrente mantiene el destino sincronizado con el origen a medida que los miembros entran y salen.

### Branding del correo electrónico

El correo electrónico del informe tiene en cuenta la configuración opcional `RJReport.Branding.*` de Tenant: una imagen de encabezado personalizada, una imagen de pie de página personalizada (URL HTTPS públicas, PNG/JPEG/GIF, máx. 200 KB cada una), un enlace personalizado en el pie de página y colores personalizados de acento y de texto (valores hexadecimales de 6 dígitos, p. ej. `#0052cc`). Cuando estas configuraciones no están definidas, se usan los gráficos y colores predeterminados de RealmJoin. Una imagen de branding que no se pueda descargar o validar, o un valor de color que no sea un color hexadecimal válido, nunca impide el envío del correo del informe; en su lugar, se usa el valor predeterminado correspondiente.

Consulta la [documentación de RealmJoin Report Settings](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) para ver los detalles de configuración.

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

### Detalles

| Propiedad          | Valor                                                                                                             |
| ------------------ | ----------------------------------------------------------------------------------------------------------------- |
| Versión            | 1.3.0                                                                                                             |
| Módulos requeridos | <p>RealmJoin.RunbookHelper (>= 0.8.9)<br>Microsoft.Graph.Authentication (>= 2.39.0)<br>Az.Accounts (>= 5.5.2)</p> |
| Programable        | sí                                                                                                                |

### Permisos

#### Permisos de aplicación

* **Tipo**: Microsoft Graph
  * Group.ReadWrite.All
    * *Resuelve los grupos de origen/destino y el equipo anfitrión y escribe la membresía directa mediante /groups/{id}/members/$ref*
  * GroupMember.ReadWrite.All
    * *Agrega y quita miembros directos del grupo de destino durante la sincronización*
  * Channel.ReadBasic.All
    * *Enumera /teams/{id}/channels para resolver el canal compartido y verificar que es un canal compartido*
  * ChannelMember.ReadWrite.All
    * *Lee, agrega y quita miembros del canal compartido mediante /teams/{id}/channels/{id}/members*
  * TeamMember.ReadWrite.All
    * *Agrega/quita la membresía del equipo anfitrión como requisito previo o limpieza para los miembros del canal compartido*
  * User.Read.All
    * *Lee objetos de usuario miembro (id, UPN, userType) para detectar invitados y calcular el delta de membresía*
  * Organization.Read.All
    * *Lee /organization para incluir el nombre del Tenant en el correo electrónico del informe*
  * Mail.Send *(opcional — función: informe por correo electrónico)*
    * *Envía el informe de sincronización mediante Send-RjReportEmail cuando la generación de informes por correo electrónico está habilitada*

### Parámetros

#### Dirección

Selecciona qué se sincroniza con qué. SharedChannelToGroup copia los miembros de Shared Channel en el grupo de destino, GroupToGroup copia los miembros del grupo de origen en el grupo de destino, y GroupToSharedChannel copia los miembros del grupo de origen en Shared Channel.

| Propiedad                        | Valor                   |
| -------------------------------- | ----------------------- |
| Requerido                        | true                    |
| Valor predeterminado             |                         |
| Tipo                             | Cadena                  |
| Nombre para mostrar en el portal | Qué se debe sincronizar |

**Opciones del portal**

| Opción del portal                            | Valor |
| -------------------------------------------- | ----- |
| Miembros de Shared Channel -> Security Group |       |
| Miembros del grupo -> grupo                  |       |
| Miembros del grupo -> Shared Channel         |       |

#### TeamId

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

| Propiedad                        | Valor                                  |
| -------------------------------- | -------------------------------------- |
| Requerido                        | falso                                  |
| Valor predeterminado             |                                        |
| Tipo                             | Cadena                                 |
| Nombre para mostrar en el portal | Equipo que hospeda el canal compartido |

#### ChannelName

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

| Propiedad                        | Valor                                    |
| -------------------------------- | ---------------------------------------- |
| Requerido                        | falso                                    |
| Valor predeterminado             |                                          |
| Tipo                             | Cadena                                   |
| Nombre para mostrar en el portal | Nombre para mostrar del canal compartido |

#### SourceGroupId

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

| Propiedad                        | Valor                                                    |
| -------------------------------- | -------------------------------------------------------- |
| Requerido                        | falso                                                    |
| Valor predeterminado             |                                                          |
| Tipo                             | Cadena                                                   |
| Nombre para mostrar en el portal | Grupo de origen                                          |
| Oculto en el portal              | sí (preestablecido mediante personalización del runbook) |

#### TargetGroupId

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

| Propiedad                        | Valor                     |
| -------------------------------- | ------------------------- |
| Requerido                        | falso                     |
| Valor predeterminado             |                           |
| Tipo                             | Cadena                    |
| Nombre para mostrar en el portal | Security Group de destino |

#### 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                                                               |
| -------------------------------- | ------------------------------------------------------------------- |
| Requerido                        | falso                                                               |
| Valor predeterminado             | Falso                                                               |
| Tipo                             | Booleano                                                            |
| Nombre para mostrar en el portal | Quitar miembros que solo existen en el destino (reflejar el origen) |

#### IncludeGuests

Cuando está habilitado, los usuarios invitados se incluyen en la sincronización y se les puede agregar o quitar. Cuando está deshabilitado (predeterminado), los invitados se omiten y nunca se les agrega ni se les quita.

| Propiedad                        | Valor                      |
| -------------------------------- | -------------------------- |
| Requerido                        | falso                      |
| Valor predeterminado             | Falso                      |
| Tipo                             | Booleano                   |
| Nombre para mostrar en el portal | Incluir usuarios invitados |

#### RemoveFromTeam

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

| Propiedad                        | Valor                                                               |
| -------------------------------- | ------------------------------------------------------------------- |
| Requerido                        | falso                                                               |
| Valor predeterminado             | Falso                                                               |
| Tipo                             | Booleano                                                            |
| Nombre para mostrar en el portal | Al quitar del canal, quitar también al usuario del equipo anfitrión |
| Oculto en el portal              | sí (preestablecido mediante personalización del runbook)            |

#### WhatIfMode

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

| Propiedad                        | Valor                                   |
| -------------------------------- | --------------------------------------- |
| Requerido                        | falso                                   |
| Valor predeterminado             | Falso                                   |
| Tipo                             | Booleano                                |
| Nombre para mostrar en el portal | Simulación (solo registro, sin cambios) |

#### 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 de formato de archivo del informe.

| Propiedad                        | Valor                                 |
| -------------------------------- | ------------------------------------- |
| Requerido                        | falso                                 |
| Valor predeterminado             | Falso                                 |
| Tipo                             | Booleano                              |
| Nombre para mostrar en el portal | Enviar informe por correo electrónico |

**Opciones del portal**

| Opción del portal                             | Valor |
| --------------------------------------------- | ----- |
| Sí - enviar el informe por correo electrónico |       |
| No - no enviar un correo electrónico          |       |

#### EmailTo

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

| Propiedad                        | Valor                                                    |
| -------------------------------- | -------------------------------------------------------- |
| Requerido                        | falso                                                    |
| Valor predeterminado             |                                                          |
| Tipo                             | Cadena                                                   |
| Nombre para mostrar en el portal | Enviar informe a (dirección(es) de correo electrónico)   |
| Oculto en el portal              | sí (preestablecido mediante personalización del runbook) |

#### EmailFrom

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

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado |                                                          |
| Tipo                 | Cadena                                                   |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

#### BrandingHeaderImageUrl

URL HTTPS pública opcional de una imagen de encabezado personalizada (PNG/JPEG/GIF, máx. 200 KB) para el correo del informe. Procede de la configuración de Tenant RJReport.Branding.HeaderImageUrl. Cuando está vacía, se usa la imagen de encabezado predeterminada de RealmJoin.

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado |                                                          |
| Tipo                 | Cadena                                                   |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

#### BrandingFooterImageUrl

URL HTTPS pública opcional de una imagen de pie de página personalizada (PNG/JPEG/GIF, máx. 200 KB) para el correo del informe. Procede de la configuración de Tenant RJReport.Branding.FooterImageUrl. Cuando está vacía, se usa la imagen de pie de página predeterminada de RealmJoin.

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado |                                                          |
| Tipo                 | Cadena                                                   |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

#### BrandingFooterLink

URL opcional a la que enlaza la imagen del pie de página. Procede de la configuración de Tenant RJReport.Branding.FooterLink. Cuando está vacía, se usa el enlace predeterminado (<https://www.realmjoin.com>).

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado |                                                          |
| Tipo                 | Cadena                                                   |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

#### BrandingAccentColor

Reemplazo opcional del color de acento (hex de 6 dígitos, p. ej. '#0052cc') para la plantilla del correo del informe. Procede de la configuración de Tenant RJReport.Branding.AccentColor. Cuando está vacío o es inválido, se usa el color de acento predeterminado de RealmJoin.

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado |                                                          |
| Tipo                 | Cadena                                                   |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

#### BrandingTextColor

Reemplazo opcional del color de texto (hex de 6 dígitos) para la plantilla del correo del informe. Procede de la configuración de Tenant RJReport.Branding.TextColor. Cuando está vacío o es inválido, se usa el color de texto predeterminado de RealmJoin.

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado |                                                          |
| Tipo                 | Cadena                                                   |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

#### ReportFileFormat

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

| Propiedad                        | Valor                                                    |
| -------------------------------- | -------------------------------------------------------- |
| Requerido                        | falso                                                    |
| Valor predeterminado             | CSV y XLSX                                               |
| Tipo                             | Cadena                                                   |
| Nombre para mostrar en el portal | Formato del archivo del informe                          |
| Oculto en el portal              | sí (preestablecido mediante personalización del runbook) |

**Opciones del portal**

| Opción del portal | Valor |
| ----------------- | ----- |
| CSV y XLSX        |       |
| solo CSV          |       |
| solo XLSX         |       |

#### CreateDownloadLink

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

| Propiedad                        | Valor                                                                         |
| -------------------------------- | ----------------------------------------------------------------------------- |
| Requerido                        | falso                                                                         |
| Valor predeterminado             | Falso                                                                         |
| Tipo                             | Booleano                                                                      |
| Nombre para mostrar en el portal | Crear un enlace de descarga del informe (cargar el informe en almacenamiento) |

**Opciones del portal**

| Opción del portal                                       | Valor |
| ------------------------------------------------------- | ----- |
| Sí - cargar el informe y devolver un enlace de descarga |       |
| No - no crear un enlace de descarga                     |       |

#### ContainerName

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

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado | channel-group-member-sync                                |
| Tipo                 | Cadena                                                   |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

#### ResourceGroupName

Grupo de recursos que contiene la Storage Account. Vinculado a RJReport.StorageAccount.ResourceGroup.

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado |                                                          |
| Tipo                 | Cadena                                                   |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

#### StorageAccountName

Storage Account usada para la carga. Vinculada a RJReport.StorageAccount.StorageAccountName.

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado |                                                          |
| Tipo                 | Cadena                                                   |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

#### LinkExpiryDays

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

| Propiedad            | Valor                                                    |
| -------------------- | -------------------------------------------------------- |
| Requerido            | falso                                                    |
| Valor predeterminado | 6                                                        |
| Tipo                 | Int32                                                    |
| Oculto en el portal  | sí (preestablecido mediante personalización del runbook) |

[Volver a la vista general de la 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.
