Creare un file di configurazione di Shell Launcher

Per configurare Shell Launcher, è necessario creare e applicare un file XML di configurazione ai dispositivi. Il file di configurazione deve essere conforme a uno schema, come definito in Shell Launcher XML Schema Definition (XSD).The configuration file must conform to a schema, as defined in Shell Launcher XML Schema Definition (XSD).

Questo articolo descrive come configurare un file di configurazione di Shell Launcher, inclusi esempi pratici.

Per iniziare, esaminiamo la struttura di base del file XML. Un file di configurazione di Shell Launcher contiene:

  • Uno o più profiles. Ogni profile definisce:
    • l'applicazione che sostituisce la shell standard di Windows (Explorer.exe), che viene eseguita quando un utente accede
    • l'azione predefinita da eseguire quando l'applicazione viene chiusa e le azioni quando l'applicazione viene chiusa con un codice restituito specifico
  • Uno o più configs. Ogni config utente associa un account utente a un profile

Nota

Un profilo non ha alcun effetto se non è associato a un account utente.

Ecco un esempio di base di un file di configurazione di Shell Launcher, con un profilo e una configurazione:

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

Controllo delle versioni

Il codice XML di configurazione dell'utilità di avvio della shell ha una versione. La versione è definita nell'elemento radice XML e viene usata per determinare quale schema usare per convalidare il file XML. La versione viene usata anche per determinare quali funzionalità sono disponibili per la configurazione. Ecco una tabella delle versioni, degli alias usati negli esempi di documentazione e degli spazi dei nomi:

Versione Alias Spazio dei nomi
Windows 10 V2 http://schemas.microsoft.com/ShellLauncher/2019/Configuration
Windows 10 default http://schemas.microsoft.com/ShellLauncher/2018/Configuration

Per autorizzare un XML di configurazione compatibile che include elementi e attributi specifici della versione, includere sempre lo spazio dei nomi degli schemi dei componenti aggiuntivi e decorare gli attributi e gli elementi di conseguenza con l'alias dello spazio dei nomi. Ad esempio, per configurare l'applicazione in modalità tutto schermo per l'esecuzione a schermo intero, usare l'esempio seguente. Si noti l'alias V2 associato allo http://schemas.microsoft.com/ShellLauncher/2019/Configuration spazio dei nomi e l'alias viene contrassegnato nelle AppType proprietà e AllAppsFullScreen inline.

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

Qui è possibile trovare le definizioni XSD (Shell Launcher XML Schema Definitions).

Profili

Un file di configurazione può contenere uno o più profili. Ogni profilo ha un identificatore univoco Profile Id e, facoltativamente, un Nameoggetto . Ad esempio:

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

Suggerimento

Deve Profile Id essere univoco all'interno del file XML. È possibile generare un GUID con il cmdlet New-Guiddi PowerShell.

È possibile definire un Defaultprofile oggetto utilizzato quando nessun altro profilo è associato a un account utente. In questo modo ogni utente che usa il dispositivo usa la stessa applicazione. Esempio:

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

Shell

Ogni profilo definisce un Shell elemento che contiene i dettagli sull'applicazione da eseguire. L'elemento Shell ha le proprietà seguenti:

Proprietà Descrizione Dettagli
Shell Applicazione usata come shell di Windows. - Per le app piattaforma UWP (Universal Windows Platform) (UWP), è necessario specificare l'ID del modello utente dell'app (AUMID). Informazioni su come trovare l'ID modello utente dell'applicazione di un'app installata.
- Per le app desktop, specificare il percorso completo dell'eseguibile, che può contenere variabili di ambiente di sistema sotto forma di %variableName%. È anche possibile specificare tutti i parametri che l'app potrebbe richiedere.
V2:AppType Definisce il tipo di applicazione. I valori consentiti sono Desktop e UWP.
V2:AllAppsFullScreen Valore booleano che definisce se tutte le applicazioni vengono eseguite a schermo intero. - Se impostato su True, Shell Launcher esegue ogni app a schermo intero o ingrandita per le app desktop.
- Se impostato su False o non impostato, solo l'app shell personalizzata viene eseguita a schermo intero; le altre app avviate dall'utente vengono eseguite in modalità finestra.

Esempio:

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

Nell'esempio successivo l'app Meteo viene eseguita a schermo intero.

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

Nell'esempio successivo Microsoft Edge viene eseguito a schermo intero, aprendo un sito Web. Il sito Web viene ricaricato dopo 2 minuti di inattività.

<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

Shell Launcher definisce quattro azioni per gestire le uscite dell'app. È possibile personalizzare Shell Launcher e usare le azioni in base a codice di uscita diverso. Ecco le ReturnCodeActions enumere:

  • RestartShell
  • RestartDevice
  • ShutdownDevice
  • DoNothing

Le azioni possono essere usate come azione predefinita o mappate a un codice di uscita specifico. Fare riferimento a Shell Launcher per informazioni su come usare i codici di uscita con WMI dell'utilità di avvio della shell.

È possibile specificare al massimo quattro azioni personalizzate che eseguono il mapping a quattro codici di uscita e un'azione predefinita per tutti gli altri codici di uscita. Quando un'app viene chiusa e se il codice di uscita non viene trovato nel mapping delle azioni personalizzate o non è definita alcuna azione predefinita, non accade nulla. Per questo motivo, è necessario definire DefaultActionalmeno .

Esempio:

<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

In Configsdefinire uno o più account utente e la relativa associazione a un profilo.

I singoli account vengono specificati usando <Account Name=""/>.

Importante

Prima di applicare la configurazione di Shell Launcher, verificare che l'account utente specificato sia disponibile nel dispositivo, in caso contrario non riesce.

Sia per gli account di dominio che di Microsoft Entra, purché il dispositivo sia aggiunto ad Active Directory o Microsoft Entra aggiunto, l'account può essere individuato nella foresta o nel tenant di dominio a cui è aggiunto il dispositivo. Per gli account locali, è necessario che l'account esista prima di configurare l'account per Shell Launcher.

Utente locale

L'account locale può essere immesso come devicename\user, .\usero semplicemente user.

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

Utente di Active Directory

Gli account di dominio devono essere immessi nel formato domain\samAccountName.

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

Microsoft Entra utente

Microsoft Entra account deve essere specificato nel formato : AzureAD\{UPN}. AzureADdeve essere fornito così com'è, quindi seguire con il nome dell'entità utente (UPN) Microsoft Entra.

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

Quando l'account utente accede, viene applicato il profilo di avvio della shell associato, caricando l'applicazione specificata nel profilo.

Account di accesso automatico

Con <AutoLogonAccount>, Shell Launcher crea e gestisce un account utente per l'accesso automatico dopo il riavvio di un dispositivo. L'account è un utente standard locale denominato Kiosk.

Esempio:

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

Esempio

Ecco un esempio completo di un file di configurazione di Shell Launcher, con due profili e tre configurazioni:

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