Criar um arquivo de configuração do Iniciador de Shell

Para configurar o Iniciador de Shell, você deve criar e aplicar um arquivo XML de configuração aos seus dispositivos. O arquivo de configuração deve estar em conformidade com um esquema, conforme definido na Definição de Esquema XML (XSD) do Iniciador de Shell.

Este artigo descreve como configurar um arquivo de configuração do Iniciador de Shell, incluindo exemplos práticos.

Vamos começar examinando a estrutura básica do arquivo XML. Um arquivo de configuração do Iniciador de Shell contém:

  • Um ou vários profiles. Cada um profile define:
    • o aplicativo que substitui o shell padrão do Windows (Explorer.exe), que é executado quando um usuário entra
    • A ação padrão a ser tomada quando o aplicativo é encerrado e ações quando o aplicativo é encerrado com um código de retorno específico
  • Um ou vários configs. Cada config um associa uma conta de usuário a uma profile

Observação

Um perfil não terá efeito se não estiver associado a uma conta de usuário.

Aqui está um exemplo básico de um arquivo de configuração do Iniciador de Shell, com um perfil e uma configuração:

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

Controle de versão

O XML de configuração do Iniciador de Shell é versionado. A versão é definida no elemento raiz XML e é usada para determinar qual esquema usar para validar o arquivo XML. A versão também é usada para determinar quais recursos estão disponíveis para a configuração. Aqui está uma tabela das versões, aliases usados nos exemplos de documentação e namespaces:

Versão Alias Namespace
Windows 10 V2 http://schemas.microsoft.com/ShellLauncher/2019/Configuration
Windows 10 padrão http://schemas.microsoft.com/ShellLauncher/2018/Configuration

Para autorizar um XML de configuração compatível que inclua elementos e atributos específicos da versão, sempre inclua o namespace dos esquemas de complemento e decore os atributos e elementos de acordo com o alias do namespace. Por exemplo, para configurar o aplicativo de quiosque para executar em tela inteira, use o exemplo abaixo. Observe o alias V2 associado ao http://schemas.microsoft.com/ShellLauncher/2019/Configuration namespace e o alias é marcado no AppTypeAllAppsFullScreen e propriedades embutidas.

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

Aqui você pode encontrar as definições de esquema XML (XSDs) do Iniciador de Shell.

Perfis

Um arquivo de configuração pode conter um ou mais perfis. Cada perfil tem um identificador Profile Id exclusivo e, opcionalmente, um Namearquivo . Por exemplo:

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

Dica

O Profile Id deve ser exclusivo no arquivo XML. Você pode gerar um GUID com o cmdlet New-Guiddo PowerShell .

Você pode definir uma Defaultprofile que é usada quando nenhum outro perfil está associado a uma conta de usuário. Isso garante que todos os usuários que usam o dispositivo usem o mesmo aplicativo. Exemplo:

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

Shell

Cada perfil define um Shell elemento, que contém detalhes sobre o aplicativo a ser executado. O Shell elemento tem as seguintes propriedades:

Propriedade Descrição Detalhes
Shell Aplicativo que é usado como um shell do Windows. - Para aplicativos de Plataforma Universal do Windows (UWP), você deve fornecer a AUMID (ID de modelo de usuário do aplicativo). Saiba como localizar a ID do Modelo de Usuário do Aplicativo de um aplicativo instalado.
- Para aplicativos de desktop, especifique o caminho completo do executável, que pode conter variáveis de ambiente do sistema na forma de %variableName%. Você também pode especificar quaisquer parâmetros que o aplicativo possa exigir.
V2:AppType Define o tipo de aplicativo. Os valores permitidos são Desktop e UWP.
V2:AllAppsFullScreen Valor booleano que define se todos os aplicativos são executados em tela inteira. - Quando definido como , o trueIniciador de Shell executa todos os aplicativos em tela cheia ou maximizado para aplicativos de área de trabalho.
- Quando definido como false ou não definido, somente o aplicativo shell personalizado é executado em tela inteira; outros aplicativos iniciados pelo usuário são executados em modo de janela.

Exemplo:

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

No exemplo a seguir, o aplicativo Clima é executado em tela inteira.

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

No próximo exemplo, o Microsoft Edge é executado em tela inteira, abrindo um site. O site é recarregado após 2 minutos de inatividade.

<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

O Iniciador de Shell define quatro ações para lidar com saídas de aplicativo. Você pode personalizar o Iniciador de Shell e usar as ações com base em diferentes códigos de saída. Aqui estão as ReturnCodeActions enumerações:

  • RestartShell
  • RestartDevice
  • ShutdownDevice
  • DoNothing

As ações podem ser usadas como ação padrão ou mapeadas para um código de saída específico. Consulte o Iniciador de Shell para saber como usar códigos de saída com o WMI do Iniciador de Shell.

Você pode especificar no máximo quatro ações personalizadas mapeadas para quatro códigos de saída e uma ação padrão para todos os outros códigos de saída. Quando um aplicativo é encerrado e se o código de saída não for encontrado no mapeamento de ação personalizado ou se não houver nenhuma ação padrão definida, nada acontecerá. Por esse motivo, você deve pelo menos definir DefaultAction.

Exemplo:

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

Configurações

Em Configs, defina uma ou mais contas de usuário e sua associação a um perfil.

Contas individuais são especificadas usando <Account Name=""/>.

Importante

Antes de aplicar a configuração do Iniciador de Shell, verifique se a conta de usuário especificada está disponível no dispositivo, caso contrário, ele falhará.

Para as contas de domínio e do Microsoft Entra, desde que o dispositivo seja associado ao Active Directory ou ao Microsoft Entra, a conta pode ser descoberta na floresta de domínio ou no locatário em que o dispositivo ingressou. Para contas locais, é necessário que a conta exista antes de configurar a conta para o Iniciador de Shell.

Usuário local

A conta local pode ser inserida como devicename\user, .\user, ou apenas user.

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

Usuário do Active Directory

As contas de domínio devem ser inseridas usando o formato domain\samAccountName.

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

Usuário do Microsoft Entra

As contas do Microsoft Entra devem ser especificadas com o formato: AzureAD\{UPN}. AzureADdeve ser fornecido como está e, em seguida, seguir com o nome UPN (nome principal do usuário) do Microsoft Entra.

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

Quando a conta do usuário entra, o perfil associado do Iniciador de Shell é aplicado, carregando o aplicativo especificado no perfil.

Conta de logon automático

Com <AutoLogonAccount>o , o Iniciador de Shell cria e gerencia uma conta de usuário para entrar automaticamente após a reinicialização de um dispositivo. A conta é um usuário padrão local chamado Kiosk.

Exemplo:

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

Exemplo

Aqui está um exemplo completo de um arquivo de configuração do Iniciador de Shell, com dois perfis e três configurações:

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