> 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/add-primary-users-of-devices-to-group_scheduled.md).

# Programado para agregar los usuarios principales de los dispositivos a un grupo

Sincronizar los usuarios principales de dispositivos administrados por Intune por plataforma en un grupo de Entra ID

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

### Descripción

Este runbook recopila los usuarios principales de todos los dispositivos administrados por Intune que coinciden con la(s) plataforma(s) seleccionada(s) y los sincroniza en un grupo de destino Entra ID. Los usuarios que ya no están asignados como usuario principal en ningún dispositivo coincidente se eliminan del grupo. Un grupo de inclusión opcional restringe qué usuarios son elegibles, y un grupo de exclusión opcional impide que usuarios específicos se agreguen o mantiene su eliminación. Un modo solo informe permite previsualizar los cambios propuestos por correo electrónico (el cuerpo del correo muestra como máximo 10 usuarios por lista; las listas completas se adjuntan como archivo CSV y/o XLSX) sin realizar ninguna modificación.

### Configuración relativa al envío de correos electrónicos

Enviar un informe por correo electrónico es opcional y solo ocurre cuando la `ReportOnly` opción está habilitada; entonces se requiere un destinatario (`EmailTo`). La dirección del remitente se toma de la `RJReport.EmailSender` configuración del tenant.

Este runbook envía correos electrónicos usando la API de Microsoft Graph. Para enviar correos mediante Graph API, necesitas configurar una dirección de correo electrónico existente en la personalización del runbook.

Consulta la [documentación de configuración de informes de RealmJoin](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings) para obtener detalles sobre todas las configuraciones disponibles.

#### Marca del correo electrónico

El correo electrónico del informe respeta las configuraciones opcionales `RJReport.Branding.*` del tenant:

* **Imagen de encabezado y pie de página** – URL HTTPS públicas, PNG/JPEG/GIF, máx. 200 KB cada una
* **Enlace del pie de página** – destino de la imagen del pie de página
* **Color de acento y de texto** – valores hexadecimales de 6 dígitos, por ejemplo `#0052cc`

Cuando estas configuraciones no están definidas, se usan los gráficos y colores predeterminados de RealmJoin. Una imagen que no se pueda descargar o validar, o un valor de color no válido, nunca impide el correo electrónico del informe; en su lugar, se usa el valor predeterminado correspondiente.

Instrucciones de configuración y requisitos de imagen: [Marca del correo electrónico](https://docs.realmjoin.com/automation/runbooks/runbook-report-settings#email-branding-optional).

### Ubicación

Organización → General → Agregar usuarios principales de dispositivos al grupo (Programado)

**Nombre completo del runbook**

rjgit-org\_general\_add-primary-users-of-devices-to-group\_scheduled

### Detalles

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

### Notas

Tipo de runbook: Programado (recomendado: diario)

Casos de uso comunes:

* Mantener un grupo de destino de distribución o de Conditional Access alineado con "quién tiene actualmente un dispositivo administrado", filtrado por plataforma, un filtro OData avanzado o un ámbito de grupo de inclusión/exclusión.
* Validar un filtro/ámbito nuevo o modificado antes de que se le permita escribir en un grupo de producción.

Opciones de piloto y pruebas:

* Habilite ReportOnly para calcular la misma diferencia de agregar/eliminar que produciría una ejecución real, sin aplicar ningún cambio al grupo. En su lugar, se envía a EmailTo un correo electrónico de vista previa en Markdown que enumera los usuarios afectados (por UPN); cada lista (se agregarían / se eliminarían) muestra como máximo 10 usuarios en el cuerpo del correo, con un "... y N más" cuando una lista es más larga, y las listas completas se adjuntan como archivo(s) de informe en el formato elegido por ReportFileFormat. Ejecútelo una vez en este modo después de cambiar la selección de plataforma, AdvancedFilter o los grupos de inclusión/exclusión, revise la vista previa y luego deshabilite ReportOnly para permitir que la sincronización se aplique.

Interacciones de parámetros:

* AdvancedFilter, cuando se establece, reemplaza por completo la selección de plataforma Windows/MacOS/iOS/Android en lugar de combinarse con ella.
* RemoveUsersWhenNoDeviceMatch controla tanto la ejecución real como la vista previa de ReportOnly: cuando está deshabilitado, no se elimina a ningún usuario en ninguno de los casos, por lo que la vista previa siempre refleja lo que haría una ejecución real.

Requisitos previos:

* EmailFrom requiere que la configuración del Tenant RJReport.EmailSender esté configurada; esto solo es necesario cuando se usa ReportOnly para enviar el correo electrónico de vista previa.

### Permisos

#### Permisos de aplicación

* **Tipo**: Microsoft Graph
  * DeviceManagementManagedDevices.Read.All
    * *Lee los dispositivos administrados por Intune filtrados por SO para recopilar el usuario principal de cada dispositivo*
  * Group.Read.All
    * *Valida los grupos de destino/inclusión/exclusión y lee sus listas de miembros*
  * GroupMember.ReadWrite.All
    * *Agrega y quita usuarios en el grupo de destino mediante llamadas por lotes /groups/{id}/members/$ref*
  * User.Read.All
    * *Lee el id del miembro y el UPN para identificar a los miembros de usuario y registrar las eliminaciones*

### Parámetros

#### TargetGroupId

El grupo Entra ID en el que sincronizar los usuarios principales. Los miembros de este grupo serán administrados exclusivamente por este runbook.

| Propiedad                    | Valor                                                     |
| ---------------------------- | --------------------------------------------------------- |
| Obligatorio                  | true                                                      |
| Valor predeterminado         |                                                           |
| Tipo                         | String                                                    |
| Nombre mostrado en el portal | Grupo de destino (sincronizar usuarios principales en él) |

#### Windows

Incluir usuarios principales de dispositivos Windows. (Filtro OData utilizado "operatingSystem eq 'Windows'")

| Propiedad                    | Valor                        |
| ---------------------------- | ---------------------------- |
| Obligatorio                  | false                        |
| Valor predeterminado         | Falso                        |
| Tipo                         | Booleano                     |
| Nombre mostrado en el portal | Incluir dispositivos Windows |

#### macOS

Incluir usuarios principales de dispositivos macOS. (Filtro OData utilizado "operatingSystem eq 'macOS'")

| Propiedad                    | Valor                      |
| ---------------------------- | -------------------------- |
| Obligatorio                  | false                      |
| Valor predeterminado         | Falso                      |
| Tipo                         | Booleano                   |
| Nombre mostrado en el portal | Incluir dispositivos macOS |

#### iOS

Incluir usuarios principales de dispositivos iOS y iPadOS. (Filtro OData utilizado "operatingSystem eq 'iOS'")

| Propiedad                    | Valor                    |
| ---------------------------- | ------------------------ |
| Obligatorio                  | false                    |
| Valor predeterminado         | Falso                    |
| Tipo                         | Booleano                 |
| Nombre mostrado en el portal | Incluir dispositivos iOS |

#### Android

Incluir usuarios principales de dispositivos Android. (Filtro OData utilizado "operatingSystem eq 'Android'")

| Propiedad                    | Valor                        |
| ---------------------------- | ---------------------------- |
| Obligatorio                  | false                        |
| Valor predeterminado         | Falso                        |
| Tipo                         | Booleano                     |
| Nombre mostrado en el portal | Incluir dispositivos Android |

#### AdvancedFilter

Opcional. Filtro OData personalizado que se aplicará al recuperar dispositivos. Reemplaza los filtros basados en la plataforma si se proporciona. Ejemplo: startsWith(deviceName,'FWP-') and operatingSystem eq 'Windows' .

| Propiedad                    | Valor                                                           |
| ---------------------------- | --------------------------------------------------------------- |
| Obligatorio                  | false                                                           |
| Valor predeterminado         |                                                                 |
| Tipo                         | String                                                          |
| Nombre mostrado en el portal | Filtro personalizado (anula la selección del sistema operativo) |

#### RemoveUsersWhenNoDeviceMatch

Cuando está habilitado (predeterminado), los usuarios que ya no tienen un dispositivo principal que coincida con la(s) plataforma(s) seleccionada(s) se eliminan del grupo de destino. Deshabilítelo para el modo solo agregar: los miembros existentes nunca se eliminan.

| Propiedad                    | Valor                                                         |
| ---------------------------- | ------------------------------------------------------------- |
| Obligatorio                  | false                                                         |
| Valor predeterminado         | True                                                          |
| Tipo                         | Booleano                                                      |
| Nombre mostrado en el portal | Eliminar usuarios que ya no tienen un dispositivo coincidente |

#### IncludeGroupId

Opcional. Solo los usuarios que sean miembros de este grupo podrán agregarse al grupo de destino. Déjelo vacío para considerar a todos los usuarios principales.

| Propiedad                    | Valor                                                       |
| ---------------------------- | ----------------------------------------------------------- |
| Obligatorio                  | false                                                       |
| Valor predeterminado         |                                                             |
| Tipo                         | String                                                      |
| Nombre mostrado en el portal | Incluir usuarios de un grupo (opcional)                     |
| Oculto en el portal          | sí (preconfigurado mediante la personalización del runbook) |

#### ExcludeGroupId

Opcional. Los usuarios que sean miembros de este grupo no se agregarán y se eliminarán del grupo de destino si ya están presentes.

| Propiedad                    | Valor                                                       |
| ---------------------------- | ----------------------------------------------------------- |
| Obligatorio                  | false                                                       |
| Valor predeterminado         |                                                             |
| Tipo                         | String                                                      |
| Nombre mostrado en el portal | Excluir usuarios de un grupo (opcional)                     |
| Oculto en el portal          | sí (preconfigurado mediante la personalización del runbook) |

#### ReportOnly

Si se establece en true, el script calcula qué cambiaría pero no aplica ninguna modificación. Los cambios propuestos se envían al destinatario EmailTo en un correo de vista previa que muestra como máximo 10 usuarios por lista en el cuerpo, con las listas completas adjuntas como archivo(s) CSV y/o XLSX según ReportFileFormat. Si es false, el runbook aplica todos los cambios inmediatamente.

| Propiedad                    | Valor                                                 |
| ---------------------------- | ----------------------------------------------------- |
| Obligatorio                  | false                                                 |
| Valor predeterminado         | Falso                                                 |
| Tipo                         | Booleano                                              |
| Nombre mostrado en el portal | Solo informe (previsualizar cambios, no aplicar nada) |

#### EmailFrom

La dirección de correo electrónico del remitente para los correos de vista previa de solo informe. Esto debe configurarse en la personalización del runbook.

| Propiedad            | Valor                                                       |
| -------------------- | ----------------------------------------------------------- |
| Obligatorio          | false                                                       |
| Valor predeterminado |                                                             |
| Tipo                 | String                                                      |
| Oculto en el portal  | sí (preconfigurado mediante la personalización del runbook) |

#### BrandingHeaderImageUrl

URL de una imagen de encabezado personalizada para los correos del informe. Configurada como una configuración del tenant; deje vacío para usar la marca predeterminada de RealmJoin.

| Propiedad            | Valor                                                       |
| -------------------- | ----------------------------------------------------------- |
| Obligatorio          | false                                                       |
| Valor predeterminado |                                                             |
| Tipo                 | String                                                      |
| Oculto en el portal  | sí (preconfigurado mediante la personalización del runbook) |

#### BrandingFooterImageUrl

URL de una imagen de pie de página personalizada para los correos del informe. Configurada como una configuración del tenant; deje vacío para usar la marca predeterminada de RealmJoin.

| Propiedad            | Valor                                                       |
| -------------------- | ----------------------------------------------------------- |
| Obligatorio          | false                                                       |
| Valor predeterminado |                                                             |
| Tipo                 | String                                                      |
| Oculto en el portal  | sí (preconfigurado mediante la personalización del runbook) |

#### BrandingFooterLink

Destino del enlace aplicado a la imagen de pie de página en los correos del informe, por ejemplo el sitio web de la empresa. Configurada como una configuración del tenant; deje vacío para usar la marca predeterminada de RealmJoin.

| Propiedad            | Valor                                                       |
| -------------------- | ----------------------------------------------------------- |
| Obligatorio          | false                                                       |
| Valor predeterminado |                                                             |
| Tipo                 | String                                                      |
| Oculto en el portal  | sí (preconfigurado mediante la personalización del runbook) |

#### BrandingAccentColor

Color de acento utilizado para títulos y resaltados en los correos del informe. Configurada como una configuración del tenant; deje vacío para usar la marca predeterminada de RealmJoin.

| Propiedad            | Valor                                                       |
| -------------------- | ----------------------------------------------------------- |
| Obligatorio          | false                                                       |
| Valor predeterminado |                                                             |
| Tipo                 | String                                                      |
| Oculto en el portal  | sí (preconfigurado mediante la personalización del runbook) |

#### BrandingTextColor

Color del texto del cuerpo utilizado en los correos del informe. Configurada como una configuración del tenant; deje vacío para usar la marca predeterminada de RealmJoin.

| Propiedad            | Valor                                                       |
| -------------------- | ----------------------------------------------------------- |
| Obligatorio          | false                                                       |
| Valor predeterminado |                                                             |
| Tipo                 | String                                                      |
| Oculto en el portal  | sí (preconfigurado mediante la personalización del runbook) |

#### EmailTo

Dirección de correo electrónico del destinatario para el correo de vista previa de solo informe. El correo muestra como máximo 10 usuarios por lista en el cuerpo, con las listas completas adjuntas como archivo(s) CSV y/o XLSX según ReportFileFormat. Solo se usa cuando ReportOnly está establecido en true.

| Propiedad                    | Valor                                                                              |
| ---------------------------- | ---------------------------------------------------------------------------------- |
| Obligatorio                  | false                                                                              |
| Valor predeterminado         |                                                                                    |
| Tipo                         | String                                                                             |
| Nombre mostrado en el portal | Enviar informe de vista previa a (solo se usa cuando Solo informe está habilitado) |

#### ReportFileFormat

Formato de archivo del informe adjunto al correo de vista previa de solo informe. Los archivos adjuntos contienen las listas completas de usuarios que se agregarían o eliminarían, mientras que el cuerpo del correo muestra como máximo 10 usuarios por lista. Solo se usa cuando ReportOnly está habilitado y EmailTo está establecido.

| Propiedad                    | Valor                                                                                             |
| ---------------------------- | ------------------------------------------------------------------------------------------------- |
| Obligatorio                  | false                                                                                             |
| Valor predeterminado         | CSV & XLSX                                                                                        |
| Tipo                         | String                                                                                            |
| Nombre mostrado en el portal | Formato del archivo del informe de vista previa (solo se usa cuando Solo informe está habilitado) |

**Opciones del portal**

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

[Volver a la vista general 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/add-primary-users-of-devices-to-group_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.
