次の方法で共有


シェル起動ツール構成ファイルを作成する

シェル起動ツールを構成するには、構成 XML ファイルを作成してデバイスに適用する必要があります。 構成ファイルは、シェル起動ツール XML スキーマ定義 (XSD) で定義されているスキーマに準拠している必要があります。

この記事では、実際の例を含め、シェル起動ツール構成ファイルを構成する方法について説明します。

XML ファイルの基本構造を見てみましょう。 シェル起動ツール構成ファイルには、次のものが含まれています。

  • 1 つまたは複数の profiles。 各 profile は次を定義します。
    • ユーザーがサインインしたときに実行される標準の Windows シェル (Explorer.exe) を置き換えるアプリケーション
    • アプリケーションが終了したときに実行する既定のアクションと、アプリケーションが特定のリターン コードで終了したときのアクション
  • 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 を承認するには、常にアドオン スキーマの名前空間を含め、それに応じて名前空間エイリアスで属性と要素を装飾します。 たとえば、全画面表示で実行するようにキオスク アプリケーションを構成するには、次の例を使用します。 エイリアスV2http://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 アプリケーションの種類を定義します。 使用できる値は、 DesktopUWPです。
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>