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 unoprofile
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
- la aplicación que reemplaza el shell estándar de Windows (
- Uno o varios
configs
. Cada unoconfig
asocia una cuenta de usuario a unprofile
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-Guid
de 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 DefaultAction
al 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
, .\user
o 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>