Erstellen einer Shell-Startprogrammkonfigurationsdatei

Zum Konfigurieren des Shell-Startprogramms müssen Sie eine XML-Konfigurationsdatei erstellen und auf Ihre Geräte anwenden. Die Konfigurationsdatei muss einem Schema entsprechen, wie unter Shell Launcher XML Schema Definition (XSD) definiert.

In diesem Artikel wird beschrieben, wie Sie eine Shell-Startprogramm-Konfigurationsdatei konfigurieren, einschließlich praktischer Beispiele.

Betrachten wir zunächst die grundlegende Struktur der XML-Datei. Eine Shell-Startprogramm-Konfigurationsdatei enthält Folgendes:

  • Eine oder mehrere profiles. Jede profile definiert Folgendes:
    • Die Anwendung, die die Standardmäßige Windows-Shell (Explorer.exe) ersetzt, die ausgeführt wird, wenn sich ein Benutzer anmeldet
    • Die Standardaktion, die ausgeführt werden soll, wenn die Anwendung beendet wird, und Aktionen, wenn die Anwendung mit einem bestimmten Rückgabecode beendet wird
  • Eine oder mehrere configs. Jeder config ordnet einem ein Benutzerkonto zu profile

Hinweis

Ein Profil hat keine Auswirkung, wenn es nicht einem Benutzerkonto zugeordnet ist.

Hier sehen Sie ein einfaches Beispiel für eine Shell-Startprogramm-Konfigurationsdatei mit einem Profil und einer Konfiguration:

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

Versionsverwaltung

Die XML-Konfiguration des Shell-Startprogramms ist versionset. Die Version wird im XML-Stammelement definiert und verwendet, um zu bestimmen, welches Schema zum Überprüfen der XML-Datei verwendet werden soll. Die Version wird auch verwendet, um zu bestimmen, welche Features für die Konfiguration verfügbar sind. Hier ist eine Tabelle der Versionen, Aliase, die in den Dokumentationsbeispielen verwendet werden, und Namespaces:

Version Alias Namespace
Windows 10 V2 http://schemas.microsoft.com/ShellLauncher/2019/Configuration
Windows 10 Standardeinstellung http://schemas.microsoft.com/ShellLauncher/2018/Configuration

Um ein kompatibles Konfigurations-XML zu autorisieren, das versionsspezifische Elemente und Attribute enthält, schließen Sie immer den Namespace der Add-On-Schemas ein, und ergänzen Sie die Attribute und Elemente entsprechend mit dem Namespacealias. Verwenden Sie beispielsweise das folgende Beispiel, um die Kioskanwendung für die Ausführung im Vollbildmodus zu konfigurieren. Notieren Sie sich den dem Namespace zugeordneten http://schemas.microsoft.com/ShellLauncher/2019/Configuration AliasV2, und der Alias ist in den AppType Eigenschaften und AllAppsFullScreen inline gekennzeichnet.

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

Hier finden Sie die XML-Schemadefinitionen (XSDs) des Shell-Startprogramms.

Profile

Eine Konfigurationsdatei kann ein oder mehrere Profile enthalten. Jedes Profil verfügt über einen eindeutigen Bezeichner Profile Id und optional einen Name. Zum Beispiel:

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

Tipp

Muss Profile Id innerhalb der XML-Datei eindeutig sein. Sie können eine GUID mit dem PowerShell-Cmdlet New-Guidgenerieren.

Sie können ein Defaultprofile definieren, das verwendet wird, wenn einem Benutzerkonto kein anderes Profil zugeordnet ist. Dadurch wird sichergestellt, dass jeder Benutzer, der das Gerät verwendet, dieselbe Anwendung verwendet. Beispiel:

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

Shell

Jedes Profil definiert ein Shell -Element, das Details zur auszuführenden Anwendung enthält. Das Shell -Element verfügt über die folgenden Eigenschaften:

Eigenschaft Beschreibung Details
Shell Anwendung, die als Windows-Shell verwendet wird. – Für UWP-Apps (Universelle Windows-Plattform) müssen Sie die App User Model ID (AUMID) angeben. Erfahren Sie, wie Sie die Anwendungsbenutzermodell-ID einer installierten App finden.
– Geben Sie für Desktop-Apps den vollständigen Pfad der ausführbaren Datei an, die Systemumgebungsvariablen in Form von %variableName%enthalten kann. Sie können auch alle Parameter angeben, die die App möglicherweise benötigt.
V2:AppType Definiert den Anwendungstyp. Zulässige Werte sind Desktop und UWP.
V2:AllAppsFullScreen Boolescher Wert, der definiert, ob alle Anwendungen im Vollbildmodus ausgeführt werden. – Wenn auf truefestgelegt ist, führt das Shell-Startprogramm jede App im Vollbildmodus oder maximiert für Desktop-Apps aus.
– Wenn auf false festgelegt oder nicht festgelegt, wird nur die benutzerdefinierte Shell-App im Vollbildmodus ausgeführt. Andere Apps, die vom Benutzer gestartet werden, werden im Fenstermodus ausgeführt.

Beispiel:

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

Im nächsten Beispiel wird die Wetter-App im Vollbildmodus ausgeführt.

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

Im nächsten Beispiel wird Microsoft Edge im Vollbildmodus ausgeführt und eine Website geöffnet. Die Website wird nach 2 Minuten Inaktivität erneut geladen.

<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

Das Shell-Startprogramm definiert vier Aktionen zum Verarbeiten von App-Exits. Sie können das Shell-Startprogramm anpassen und die Aktionen basierend auf unterschiedlichem Exitcode verwenden. Hier sind die ReturnCodeActions Enumerationen:

  • RestartShell
  • RestartDevice
  • ShutdownDevice
  • DoNothing

Die Aktionen können als Standardaktion verwendet oder einem bestimmten Exitcode zugeordnet werden. Unter Shell-Startprogramm erfahren Sie, wie Sie Exitcodes mit dem Shell-Startprogramm WMI verwenden.

Sie können höchstens vier benutzerdefinierte Aktionen angeben, die vier Exitcodes zugeordnet sind, und eine Standardaktion für alle anderen Exitcodes. Wenn eine App beendet wird und der Exitcode nicht in der benutzerdefinierten Aktionszuordnung gefunden wird oder keine Standardaktion definiert ist, geschieht nichts. Aus diesem Grund sollten Sie zumindest definieren DefaultAction.

Beispiel:

<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

Definieren Sie unter Configsmindestens ein Benutzerkonto und deren Zuordnung zu einem Profil.

Einzelne Konten werden mithilfe von <Account Name=""/>angegeben.

Wichtig

Stellen Sie vor dem Anwenden der Shell-Startprogrammkonfiguration sicher, dass das angegebene Benutzerkonto auf dem Gerät verfügbar ist. Andernfalls tritt ein Fehler auf.

Sowohl für Domänen- als auch für Microsoft Entra-Konten kann das Konto in der Domänengesamtstruktur oder dem Mandanten ermittelt werden, mit dem bzw. dem das Gerät verknüpft ist, solange das Gerät in Active Directory oder In Microsoft Entra eingebunden ist. Für lokale Konten ist es erforderlich, dass das Konto vorhanden ist, bevor Sie das Konto für das Shell-Startprogramm konfigurieren.

Lokaler Benutzer

Das lokale Konto kann als devicename\user, .\useroder einfach userals eingegeben werden.

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

Active Directory-Benutzer

Domänenkonten müssen im Format domain\samAccountNameeingegeben werden.

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

Microsoft Entra-Benutzer

Microsoft Entra-Konten müssen im folgenden Format angegeben werden: AzureAD\{UPN}. AzureAD muss unverändert bereitgestellt werden, und folgen Sie dann mit dem Benutzerprinzipalnamen (USER Principal Name, UPN) von Microsoft Entra.

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

Wenn sich das Benutzerkonto anmeldet, wird das zugeordnete Shell-Startprogrammprofil angewendet, wobei die im Profil angegebene Anwendung geladen wird.

Konto mit automatischer Anmeldung

Mit <AutoLogonAccount>erstellt und verwaltet das Shell-Startprogramm ein Benutzerkonto, das sich nach dem Neustart eines Geräts automatisch anmeldet. Das Konto ist ein lokaler Standardbenutzer namens Kiosk.

Beispiel:

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

Beispiel

Hier sehen Sie ein vollständiges Beispiel für eine Shell-Startprogramm-Konfigurationsdatei mit zwei Profilen und drei Konfigurationen:

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