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
. Ogniprofile
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
- l'applicazione che sostituisce la shell standard di Windows (
- Uno o più
configs
. Ogniconfig
utente associa un account utente a unprofile
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 Name
oggetto . 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-Guid
di 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 UWP (Universal Windows Platform), è 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 DefaultAction
almeno .
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 Configs
definire 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 per gli account Microsoft Entra, purché il dispositivo sia aggiunto ad Active Directory o aggiunto a Microsoft Entra, l'account può essere individuato nella foresta di dominio o nel tenant 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
, .\user
o 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>
Utente di Microsoft Entra
Gli account Microsoft Entra devono essere specificati con il formato : AzureAD\{UPN}
.
AzureAD
deve essere fornito così com'è, quindi seguire con il nome dell'entità utente (UPN) di 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>