> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Automatización desatendida de XUser

> Automatización desatendida de XUser

Para las pruebas, es posible que los juegos quieran automatizar la adición de usuarios al juego. Con el Microsoft Game Development Kit (GDK),
los usuarios solo se agregan cuando el juego llama a [XUserAddAsync](/reference/system/xuser/functions/xuseraddasync). Con respecto a
la automatización, esta función tiene las dos limitaciones principales siguientes.

* Si llama a `XUserAddAsync` con la marca `AddDefaultUserSilently`, no se muestra interfaz de usuario (lo que
  ayuda con la automatización). Sin embargo, solo puede obtener el usuario que inició el juego.
  Llamar a la API repetidamente con esta marca no cambia el resultado. Simplemente seguirá
  obteniendo nuevos identificadores para los mismos usuarios.
* Si llama a `XUserAddAsync` sin la marca `AddDefaultUserSilently`, la interfaz de usuario
  aparece y espera a que alguien presione un botón. Esto interrumpe la automatización.

Para ayudar con la automatización de la adición de usuarios en el código de prueba, el Microsoft Game Development Kit (GDK) admite la activación de una
opción desatendida en la que puede agregar usuarios sin que se muestre la interfaz de usuario que requiere la intervención del usuario. Los
pasos siguientes describen el enfoque básico.

1. Para agregar un usuario con sesión iniciada a la consola, puede usar la herramienta de línea de comandos [xbuser (tema con NDA)](/tools/tools-console/commandlinetools/xbuser)
   con la opción `signin`. Repita este paso para cada usuario.
2. Para suprimir la interfaz de usuario que normalmente se mostraría al agregar un usuario en el juego,
   puede usar la herramienta de línea de comandos [xbconfig (tema con NDA)](/tools/tools-console/commandlinetools/xbconfig) con la opción `HeadlessXuser`, como se muestra a continuación.

```
    xbconfig HeadlessXUser=true
```

3. Inicie el juego.
4. Dentro del juego, cada llamada a `XUserAddAsync` que no tenga la
   marca `AddDefaultUserSilently` devuelve el primer usuario que inició sesión en la consola y
   que no tiene objetos `XUserHandle` pendientes asociados por el juego.
5. Si el juego sigue llamando a `XUserAddAsync`, con el tiempo agota el número
   de usuarios que tienen sesión iniciada en la consola. Cuando esto sucede, `XUserAddAsync`
   devuelve `E_ABORT`. Este es exactamente el mismo error que `XUserAddAsync` habría devuelto
   si el usuario hubiera cancelado el inicio de sesión en la consola (o hubiera salido de la
   interfaz de usuario de otra forma).
6. Con fines de prueba, es posible que los juegos quieran conocer el número de [cuentas de prueba](/services/xbox-services/develop/test-accounts/live-setup-testaccounts) que
   tienen sesión iniciada en la consola. Para facilitarlo, los juegos pueden llamar a `CreateProcess` e iniciar
   la herramienta de línea de comandos `wduser` con la opción `list`.


## Related topics

- [Usuarios](/es/build/core-features/common/user/user-toc.md)
- [Identidad de usuario y API de XUser en el GDK](/es/build/core-features/common/user/index.md)
- [Identidad de usuario y XUser](/es/build/core-features/common/user/player-identity-xuser.md)
- [URI de configuración desatendida](/es/reference/deviceportal/unattendedsetup/atoc-rest-unattendedsetup.md)
- [XUser](/es/reference/system/xuser/xuser_members.md)
