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
. Jedeprofile
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
- Die Anwendung, die die Standardmäßige Windows-Shell (
- Eine oder mehrere
configs
. Jederconfig
ordnet einem ein Benutzerkonto zuprofile
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-Guid
generieren.
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 true festgelegt 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 Configs
mindestens 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
, .\user
oder einfach user
als eingegeben werden.
<Config>
<Account Name="Learn Example"/>
<Profile Id="{GUID}"/>
</Config>
Active Directory-Benutzer
Domänenkonten müssen im Format domain\samAccountName
eingegeben 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>