Creación de un archivo de configuración del iniciador de shell

Para configurar el iniciador de shell, debe crear y aplicar un archivo XML de configuración a los dispositivos. El archivo de configuración debe ajustarse a un esquema, tal como se define en Definición de esquema XML del iniciador de shell (XSD).

En este artículo se describe cómo configurar un archivo de configuración del iniciador de shell, incluidos ejemplos prácticos.

Para empezar, observemos la estructura básica del archivo XML. Un archivo de configuración del iniciador de shell contiene:

  • Uno o varios profiles. Cada uno profile define:
    • la aplicación que reemplaza el shell estándar de Windows (Explorer.exe), que se ejecuta cuando un usuario inicia sesión
    • la acción predeterminada que se debe realizar cuando la aplicación se cierra y las acciones cuando la aplicación sale con un código devuelto específico
  • Uno o varios configs. Cada uno config asocia una cuenta de usuario a un profile

Nota

Un perfil no tiene ningún efecto si no está asociado a una cuenta de usuario.

Este es un ejemplo básico de un archivo de configuración del iniciador de shell, con un perfil y una configuración:

<?xml version="1.0" encoding="utf-8" ?>
<ShellLauncherConfiguration
  xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
  xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
  <Profiles>
    <Profile Id="{GUID}">
      <!-- Add configuration here as needed -->
    </Profile>
  </Profiles>
  <Configs>
    <Config>
      <!-- Add configuration here as needed -->
    </Config>
  </Configs>
</ShellLauncherConfiguration>

Control de versiones

Se ha versionado el XML de configuración del iniciador de shell. La versión se define en el elemento raíz XML y se usa para determinar qué esquema usar para validar el archivo XML. La versión también se usa para determinar qué características están disponibles para la configuración. Esta es una tabla de las versiones, alias usados en los ejemplos de documentación y espacios de nombres:

Versión Alias Espacio de nombres
Windows 10 V2 http://schemas.microsoft.com/ShellLauncher/2019/Configuration
Windows 10 predeterminado http://schemas.microsoft.com/ShellLauncher/2018/Configuration

Para autorizar un XML de configuración compatible que incluya elementos y atributos específicos de la versión, incluya siempre el espacio de nombres de los esquemas del complemento y decore los atributos y elementos en consecuencia con el alias de espacio de nombres. Por ejemplo, para configurar la aplicación de pantalla completa para que se ejecute en pantalla completa, use el ejemplo siguiente. Tenga en cuenta el alias V2 asociado al http://schemas.microsoft.com/ShellLauncher/2019/Configuration espacio de nombres y el alias se etiqueta en las AppType propiedades y AllAppsFullScreen insertadas.

<?xml version="1.0" encoding="utf-8" ?>
<ShellLauncherConfiguration
  xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
  xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
  <Profiles>
    <Profile Id="{GUID}">
      <!-- Add configuration here as needed -->
      <Shell Shell="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" V2:AppType="Desktop" V2:AllAppsFullScreen="true">
    </Profile>
  </Profiles>
  <Configs>
    <Config>
      <!-- Add configuration here as needed -->
    </Config>
  </Configs>
</ShellLauncherConfiguration>

Aquí puede encontrar las definiciones de esquema XML del iniciador de shell (XSD).

Perfiles

Un archivo de configuración puede contener uno o varios perfiles. Cada perfil tiene un identificador Profile Id único y, opcionalmente, un Name. Por ejemplo:

<Profiles>
  <Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" Name="Microsoft Learn example">
    <!-- Add configuration here as needed -->
  </Profile>
</Profiles>

Sugerencia

Profile Id debe ser único en el archivo XML. Puede generar un GUID con el cmdlet New-Guidde PowerShell .

Puede definir un Defaultprofile objeto que se usa cuando no hay ningún otro perfil asociado a una cuenta de usuario. Esto garantiza que todos los usuarios que usan el dispositivo usen la misma aplicación. Por ejemplo:

<Profiles>
  <DefaultProfile>
    <!-- Add configuration here as needed -->
  </DefaultProfile>
</Profiles>

Shell

Cada perfil define un Shell elemento, que contiene detalles sobre la aplicación que se va a ejecutar. El Shell elemento tiene las siguientes propiedades:

Propiedad Descripción Detalles
Shell Aplicación que se usa como shell de Windows. - Para las aplicaciones de la Plataforma universal de Windows (UWP), debes proporcionar el identificador de modelo de usuario de la aplicación (AUMID). Obtenga información sobre cómo buscar el identificador de modelo de usuario de la aplicación de una aplicación instalada.
- Para las aplicaciones de escritorio, especifique la ruta de acceso completa del archivo ejecutable, que puede contener variables de entorno del sistema en forma de %variableName%. También puede especificar los parámetros que la aplicación pueda necesitar.
V2:AppType Define el tipo de aplicación. Los valores permitidos son Desktop y UWP.
V2:AllAppsFullScreen Valor booleano que define si todas las aplicaciones se ejecutan en pantalla completa. - Cuando se establece en true, Shell Launcher ejecuta todas las aplicaciones en pantalla completa o maximizadas para las aplicaciones de escritorio.
- Cuando se establece false en o no se establece, solo la aplicación de shell personalizada se ejecuta en pantalla completa; otras aplicaciones iniciadas por el usuario se ejecutan en modo ventana.

Por ejemplo:

<Profile Id="{GUID}">
  <Shell Shell="" V2:AppType="" V2:AllAppsFullScreen="">
    <!-- Add configuration here as needed -->
  </Shell>
</Profile>

En el siguiente ejemplo, la aplicación Weather se ejecuta en pantalla completa.

<?xml version="1.0" encoding="utf-8"?>
<ShellLauncherConfiguration xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration"
xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
  <Profiles>
    <DefaultProfile>
      <Shell Shell="Microsoft.BingWeather_8wekyb3d8bbwe!App" V2:AppType="UWP">
        <DefaultAction Action="RestartShell"/>
      </Shell>
    </DefaultProfile>
  </Profiles>
  <Configs/>
</ShellLauncherConfiguration>

En el ejemplo siguiente, Microsoft Edge se ejecuta en pantalla completa, abriendo un sitio web. El sitio web se vuelve a cargar después de 2 minutos de inactividad.

<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
    <Shell Shell="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe --kiosk https://www.contoso.com --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" V2:AppType="Desktop" V2:AllAppsFullScreen="true">
        <DefaultAction Action="RestartShell"/>
    </Shell>
</Profile>

ReturnCodeActions

El iniciador de shell define cuatro acciones para controlar las salidas de la aplicación. Puede personalizar el iniciador de Shell y usar las acciones basadas en código de salida diferente. Estas son las ReturnCodeActions enumeraciones:

  • RestartShell
  • RestartDevice
  • ShutdownDevice
  • DoNothing

Las acciones se pueden usar como acción predeterminada o asignarse a un código de salida específico. Consulte El iniciador de shell para obtener información sobre cómo usar códigos de salida con WMI del iniciador de shell.

Puede especificar como máximo cuatro acciones personalizadas que se asignan a cuatro códigos de salida y una acción predeterminada para todos los demás códigos de salida. Cuando se cierra una aplicación y no se encuentra el código de salida en la asignación de acciones personalizadas o no hay ninguna acción predeterminada definida, no ocurre nada. Por este motivo, debe definir DefaultActional menos .

Por ejemplo:

<Profile Id="{GUID}">
  <Shell Shell="" V2:AppType="" V2:AllAppsFullScreen="">
    <ReturnCodeActions>
      <ReturnCodeAction ReturnCode="0" Action="RestartShell"/>
      <ReturnCodeAction ReturnCode="-1" Action="RestartDevice"/>
      <ReturnCodeAction ReturnCode="255" Action="ShutdownDevice"/>
      <ReturnCodeAction ReturnCode="1" Action="DoNothing"/>
    </ReturnCodeActions>
    <DefaultAction Action="RestartDevice"/>
  </Shell>
</Profile>

Configs

En Configs, defina una o varias cuentas de usuario y su asociación con un perfil.

Las cuentas individuales se especifican mediante <Account Name=""/>.

Importante

Antes de aplicar la configuración del iniciador de shell, asegúrese de que la cuenta de usuario especificada está disponible en el dispositivo; de lo contrario, se produce un error.

Tanto para las cuentas de dominio como de Microsoft Entra, siempre y cuando el dispositivo esté unido a Active Directory o a Microsoft Entra, la cuenta se puede detectar en el bosque de dominio o el inquilino al que está unido el dispositivo. Para las cuentas locales, es necesario que la cuenta exista antes de configurar la cuenta para shell Launcher.

Usuario local

La cuenta local se puede especificar como devicename\user, .\usero simplemente user.

<Config>
  <Account Name="Learn Example"/>
  <Profile Id="{GUID}"/>
</Config>

Usuario de Active Directory

Las cuentas de dominio deben escribirse con el formato domain\samAccountName.

<Config>
  <Account Name="contoso\user"/>
  <Profile Id="{GUID}"/>
</Config>

Usuario de Microsoft Entra

Las cuentas de Microsoft Entra deben especificarse con el formato : AzureAD\{UPN}. AzureAD debe proporcionarse tal cual y, a continuación, seguir con el nombre principal de usuario (UPN) de Microsoft Entra.

<Config>
  <Account Name="azuread\user@contoso.onmicrosoft.com"/>
  <Profile Id="{GUID}"/>
</Config>

Cuando la cuenta de usuario inicia sesión, se aplica el perfil de iniciador de shell asociado, cargando la aplicación especificada en el perfil.

Cuenta de Autologon

Con <AutoLogonAccount>, Shell Launcher crea y administra una cuenta de usuario para iniciar sesión automáticamente después de reiniciar un dispositivo. La cuenta es un usuario estándar local denominado Kiosk.

Por ejemplo:

<Configs>
  <Config>
    <!--account managed by Shell Launcher-->
    <AutoLogonAccount/>
    <Profile Id="{GUID}"/>
  </Config>
  <Configs>
    <!--local account-->
    <Account Name="Learn Example"/>
    <Profile ID="{GUID}"/>
  </Configs>
  <Configs>
    <!--Microsoft Entra account-->
    <Account Name="azuread\kiosk@contoso.com"/>
    <Profile ID="{GUID}"/>
  </Configs>
</Configs>

Por ejemplo:

Este es un ejemplo completo de un archivo de configuración del iniciador de shell, con dos perfiles y tres configuraciones:

<?xml version="1.0" encoding="utf-8"?>
<ShellLauncherConfiguration xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration" xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
  <Profiles>
    <DefaultProfile>
      <Shell Shell="%SystemRoot%\explorer.exe" />
    </DefaultProfile>
    <Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F79}" Name="Weather">
      <Shell Shell="Microsoft.BingWeather_8wekyb3d8bbwe!App" V2:AppType="UWP">
        <DefaultAction Action="RestartShell" />
      </Shell>
    </Profile>
    <Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" Name="Edge">
      <Shell Shell="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe --kiosk https://www.contoso.com --edge-kiosk-type=fullscreen --kiosk-idle-timeout-minutes=2" V2:AppType="Desktop" V2:AllAppsFullScreen="true">
        <ReturnCodeActions>
          <ReturnCodeAction ReturnCode="0" Action="RestartShell" />
          <ReturnCodeAction ReturnCode="-1" Action="RestartDevice" />
          <ReturnCodeAction ReturnCode="255" Action="ShutdownDevice" />
        </ReturnCodeActions>
        <DefaultAction Action="RestartShell" />
      </Shell>
    </Profile>
  </Profiles>
  <Configs>
    <Config>
      <AutoLogonAccount />
      <Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" />
    </Config>
    <Config>
      <Account Name="azuread\kiosk1@contoso.onmicrosoft.com" />
      <Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F79}" />
    </Config>
    <Config>
      <Account Name="azuread\kiosk2@contoso.onmicrosoft.com" />
      <Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" />
    </Config>
  </Configs>
</ShellLauncherConfiguration>