シェル起動ツール構成ファイルを作成する
シェル起動ツールを構成するには、構成 XML ファイルを作成してデバイスに適用する必要があります。 構成ファイルは、シェル起動ツール XML スキーマ定義 (XSD) で定義されているスキーマに準拠している必要があります。
この記事では、実際の例を含め、シェル起動ツール構成ファイルを構成する方法について説明します。
XML ファイルの基本構造を見てみましょう。 シェル起動ツール構成ファイルには、次のものが含まれています。
- 1 つまたは複数の
profiles
。 各profile
は次を定義します。- ユーザーがサインインしたときに実行される標準の Windows シェル (
Explorer.exe
) を置き換えるアプリケーション - アプリケーションが終了したときに実行する既定のアクションと、アプリケーションが特定のリターン コードで終了したときのアクション
- ユーザーがサインインしたときに実行される標準の Windows シェル (
- 1 つまたは複数の
configs
。 各config
は、ユーザー アカウントを に関連付けます。profile
注
プロファイルがユーザー アカウントに関連付けられていない場合、そのプロファイルは無効になります。
1 つのプロファイルと 1 つの構成を含むシェル起動ツール構成ファイルの基本的な例を次に示します。
<?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>
バージョン
シェル起動ツール構成 XML がバージョン管理されています。 バージョンは XML ルート要素で定義されており、XML ファイルの検証に使用するスキーマを決定するために使用されます。 バージョンは、構成に使用できる機能を決定するためにも使用されます。 バージョン、ドキュメントの例で使用されるエイリアス、名前空間の表を次に示します。
バージョン | Alias | 名前空間 |
---|---|---|
Windows 10 | V2 |
http://schemas.microsoft.com/ShellLauncher/2019/Configuration |
Windows 10 | default | http://schemas.microsoft.com/ShellLauncher/2018/Configuration |
バージョン固有の要素と属性を含む互換性のある構成 XML を承認するには、常にアドオン スキーマの名前空間を含め、それに応じて名前空間エイリアスで属性と要素を装飾します。 たとえば、全画面表示で実行するようにキオスク アプリケーションを構成するには、次の例を使用します。 エイリアスV2
http://schemas.microsoft.com/ShellLauncher/2019/Configuration
名前空間に関連付けられていることに注意してください。エイリアスは、AppType
プロパティと AllAppsFullScreen
プロパティにインラインでタグ付けされます。
<?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>
ここでは、 シェル起動ツール XML スキーマ定義 (XSD) を見つけることができます。
プロファイル
構成ファイルには、1 つ以上のプロファイルを含めることができます。 各プロファイルには、一意の識別子 Profile Id
があり、必要に応じて Name
があります。 次に、例を示します。
<Profiles>
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" Name="Microsoft Learn example">
<!-- Add configuration here as needed -->
</Profile>
</Profiles>
ヒント
Profile Id
は XML ファイル内で一意である必要があります。 PowerShell コマンドレット New-Guid
を使用して GUID を生成できます。
他のプロファイルがユーザー アカウントに関連付けられていない場合に使用される Defaultprofile
を定義できます。 これにより、デバイスを使用するすべてのユーザーが同じアプリケーションを使用できるようになります。 例:
<Profiles>
<DefaultProfile>
<!-- Add configuration here as needed -->
</DefaultProfile>
</Profiles>
Shell
各プロファイルは、実行するアプリケーションに関する詳細を含む Shell
要素を定義します。
Shell
要素には、次のプロパティがあります。
プロパティ | 説明 | 詳細 |
---|---|---|
Shell |
Windows シェルとして使用されるアプリケーション。 | - ユニバーサル Windows プラットフォーム (UWP) アプリの場合は、アプリ ユーザー モデル ID (AUMID) を指定する必要があります。
インストールされているアプリのアプリケーション ユーザー モデル ID を検索する方法について説明します。 - デスクトップ アプリの場合は、実行可能ファイルの完全なパスを指定します。このパスには、 %variableName% の形式でシステム環境変数を含めることができます。 また、アプリで必要になる可能性があるパラメーターを指定することもできます。 |
V2:AppType |
アプリケーションの種類を定義します。 | 使用できる値は、 Desktop と UWP です。 |
V2:AllAppsFullScreen |
すべてのアプリケーションが全画面表示で実行されるかどうかを定義するブール値。 | - true に設定すると、シェル起動ツールはすべてのアプリを全画面表示で実行するか、デスクトップ アプリ用に最大化されます。- false に設定されている場合、カスタム シェル アプリのみが全画面表示で実行され、ユーザーによって起動された他のアプリはウィンドウ モードで実行されます。 |
例:
<Profile Id="{GUID}">
<Shell Shell="" V2:AppType="" V2:AllAppsFullScreen="">
<!-- Add configuration here as needed -->
</Shell>
</Profile>
次の例では、Weather アプリが全画面表示で実行されます。
<?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>
次の例では、Microsoft Edge が全画面表示で実行され、Web サイトが開きます。 Web サイトは、非アクティブ状態が 2 分後に再読み込みされます。
<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
シェル起動ツールは、アプリの終了を処理する 4 つのアクションを定義します。 シェル起動ツールをカスタマイズし、異なる終了コードに基づいてアクションを使用できます。
ReturnCodeActions
列挙型を次に示します。
RestartShell
RestartDevice
ShutdownDevice
DoNothing
アクションは、既定のアクションとして使用することも、特定の終了コードにマップすることもできます。 シェル起動ツール WMI で終了コードを使用する方法については、「シェル起動ツール」を参照してください。
4 つの終了コードへの最大 4 つのカスタム アクション マッピングと、他のすべての終了コードに対して 1 つの既定のアクションを指定できます。 アプリが終了し、終了コードがカスタム アクション マッピングで見つからない場合、または既定のアクションが定義されていない場合は、何も起こりません。 このため、少なくとも DefaultAction
を定義する必要があります。
例:
<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
[ Configs
] で、1 つ以上のユーザー アカウントとプロファイルとの関連付けを定義します。
個々のアカウントは、 <Account Name=""/>
を使用して指定されます。
重要
シェル起動ツールの構成を適用する前に、指定したユーザー アカウントがデバイスで使用できることを確認します。それ以外の場合は失敗します。
ドメインアカウントと Microsoft Entra アカウントの両方で、デバイスが Active Directory に参加しているか、Microsoft Entra に参加している限り、デバイスが参加しているドメイン フォレストまたはテナントでアカウントを検出できます。 ローカル アカウントの場合は、シェル起動ツールのアカウントを構成する前に、アカウントが存在する必要があります。
ローカル ユーザー
ローカル アカウントは、 devicename\user
、 .\user
、または単に user
として入力できます。
<Config>
<Account Name="Learn Example"/>
<Profile Id="{GUID}"/>
</Config>
Active Directory ユーザー
ドメイン アカウントは、 domain\samAccountName
形式を使用して入力する必要があります。
<Config>
<Account Name="contoso\user"/>
<Profile Id="{GUID}"/>
</Config>
Microsoft Entra ユーザー
Microsoft Entra アカウントは、 AzureAD\{UPN}
という形式で指定する必要があります。
AzureAD
は、 そのまま指定する必要があります。その後、Microsoft Entra ユーザー プリンシパル名 (UPN) に従ってください。
<Config>
<Account Name="azuread\user@contoso.onmicrosoft.com"/>
<Profile Id="{GUID}"/>
</Config>
ユーザー アカウントがサインインすると、関連付けられているシェル起動ツール プロファイルが適用され、プロファイルで指定されたアプリケーションが読み込まれます。
自動ログオン アカウント
<AutoLogonAccount>
では、シェル起動ツールは、デバイスの再起動後に自動的にサインインするユーザー アカウントを作成および管理します。 アカウントは、 Kiosk
という名前のローカル標準ユーザーです。
例:
<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>
例
シェル起動ツール構成ファイルの完全な例を次に示します。2 つのプロファイルと 3 つの構成があります。
<?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>