> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Apps の概要

> Mac および Windows 向け Iru Endpoint の Custom Apps の概要。サポートされるパッケージ形式、インストールスクリプト、展開オプション、バージョン管理について説明します。

<Callout icon="list-check" color="#B84A7A" iconType="regular">Custom App Library Item は Mac コンピュータと Windows コンピュータで利用できます</Callout>

Iru Endpoint では、カスタムアプリケーションをアップロードして登録済みデバイスに展開できます。Mac コンピュータには **Mac Custom App** Library Item を、Windows コンピュータには **Windows Custom App** Library Item を使用します。どちらもデバイスごとに 1 回インストールするか、アプリを継続的に適用するかを選択でき、最大アップロードサイズは **5 GB** です。

### Custom Apps とは

Custom Apps は、Library でアップロードして設定するインストーラーベースの Library Item です。Blueprint に割り当てて Mac または Windows コンピュータに展開します。オプションには、デバイスごとに 1 回のインストール、継続的な適用、または（Mac の場合）Self Service でのアプリの提供があります。

### プラットフォーム別

インストーラーの種類、設定オプション、手順ガイドについては、以下でプラットフォームを選択してください。

<Tabs>
  <Tab title="Mac" icon="apple" iconType="brands">
    **Mac Custom App** Library Item を使用すると、カスタムアプリケーション（PKG、DMG、ZIP）を Mac コンピュータに展開できます。インストーラーをアップロードし、監査とインストールのオプション（インストール前およびインストール後のスクリプトを含む）を設定して、Library Item を Blueprint に割り当てます。アプリは Self Service で提供することも、チェックイン時に自動的に適用することもできます。以下のセクションでは、サポートされるインストーラーの種類、実行オプション、スクリプト、Self Service、トラブルシューティングについて説明します。

    ### インストーラー

    Iru Endpoint は Mac 向けにいくつかの異なるインストーラーの種類をサポートしています。

    * **.PKG**: Iru Endpoint は圧縮された PKG ファイルと MPKG ファイルをサポートしています。
    * **.ZIP**: ZIP ファイルでは、内容を展開する場所を指定できます。
    * **.DMG**: DMG ファイルは /Applications フォルダに展開されます。DMG に PKG が含まれている場合は、まず PKG を取り出し、そちらをアップロードしてください。

    <Note>
      Iru Endpoint の最大ファイルアップロードサイズは 5 GB です。
    </Note>

    ### インストールオプション

    #### 実行頻度

    展開するアプリに応じて、Iru Endpoint が 1 回だけインストールするか、継続的に監視してインストールされた状態を保証するかを指定できます。

    * **デバイスごとに1回インストール**: Iru Endpoint は Custom App を 1 回インストールします。アプリが Mac から削除されても、自動的に再インストールされることはありません。継続的に実行すべきでないソフトウェアパッチに使用します。

      * インストール前スクリプトが失敗した場合、Iru Agent は Custom App のインストールを試行せず、次回のチェックイン時にこの Custom App Library Item を再度実行します。
      * インストール後スクリプトが失敗した場合、Custom App が正常にインストールされたかどうかに関係なく、Iru Agent は次回のチェックイン時にこの Custom App Library Item を再度実行します。
    * **Audit and enforce**: Iru Endpoint は、最初のインストール前を含む各チェックイン時に監査スクリプトを実行し、合格する（0 で終了する）ことを確認します。監査スクリプトが 0 以外で終了した場合、Iru Endpoint はアプリケーションを自動的に再インストールします。
    * **Self Serviceからオンデマンドでインストール**: この項目は Self Service からのオプションのインストールとしてのみ提供されます。実行後、**Install** ボタンは **Reinstall** に変わります。

    #### 監査スクリプトに関する考慮事項

    監査スクリプトを使用すると、何を合格とするかを制御できます。アプリは特定の場所にある必要がありますか？特定のチェックサムを持つ必要がありますか？特定のバージョンである必要がありますか？これらはすべて監査スクリプトで確認できます。

    例: この監査スクリプトはアプリの存在を確認し、存在しない場合は Iru に再インストールを促します。

    ```bash audit-app-presence.sh icon="terminal" lines theme={null}
    #!/bin/bash
    APPPATH="/Applications/zoom.us.app"
    if [ -e "$APPPATH" ]; then
    exit 0
    else
    exit 1
    fi
    ```

    インストール済みアプリの特定のバージョンを適用するには、[Iru Support GitHub](https://github.com/kandji-inc/support/) で入手できる [Minimum Enforced Version スクリプト](https://github.com/kandji-inc/support/blob/main/Scripts/audit-enforce-scripts/minimum_enforced_version.zsh)を使用してください。

    #### インストール前およびインストール後のスクリプト

    インストール前およびインストール後のスクリプトを使用すると、Custom Apps のインストールプロセスをカスタマイズできます。インストール前スクリプトは、置き換えられる別のアプリを削除するために使用します。インストール後スクリプトでは、インストールしたばかりの Custom App を設定できます。

    #### Self Service に関する考慮事項

    Custom Apps を Self Service で使用する場合には、重要な考慮事項があります。

    * Custom App の適用オプションが **インストールして継続的に適用** または **デバイスごとに1回インストール** に設定されている場合でも、この項目を Self Service に表示できます。これは、ユーザーがソフトウェアを再インストールする必要がある場合に便利です。
    * Custom App の **Enforcement** オプションが **Self Serviceからオンデマンドでインストール** に設定されている場合、ユーザーが Self Service からインストールするまでアプリはインストールされません。

      * Self Service からインストールすると、アプリの最新バージョンがインストールされます。
      * **Self Serviceからオンデマンドでインストール** に設定されている場合、Iru Endpoint は App Store 以外でライセンスされたアプリの管理を自動的に引き継ぎます（バンドル ID が Apps and Books のバージョンと一致する場合）。グローバルまたはアプリごとのアップデート設定が尊重されます。

    #### 再起動

    一部のアプリケーションは、正しく動作するためにインストール後の再起動が必要です。Iru Endpoint は、適切な機能を確保するために再起動をトリガーできます。Custom App のインストール後に Iru Endpoint がコンピュータを再起動するようにするには、**インストール成功後に再起動** チェックボックスをオンにします。

    <Note>
      再起動が行われる前に、ユーザーには 30 分のカウントダウンが表示されます。
    </Note>

    #### Liftoff 設定

    Mac Custom App の下部で **Advanced Settings** を展開します。**Liftoff設定** に **このLibrary Itemを処理** があります。この設定は、[Iru Liftoff](/ja/endpoint/library/library-items-profiles/configure-the-liftoff-library-item) を基準としてアプリをインストールするタイミングを選択します。Automated Device Enrollment と手動登録に適用されます。

    * **During Liftoff**（デフォルト）: Custom App は Liftoff 中に処理され、完了するまで Liftoff は完了しません。**Liftoffで非表示** が選択されていない限り、Install 画面に表示されます。
      * **Liftoffで非表示**: 選択すると、この Library Item は Liftoff 中に処理されますが、Install 画面には表示されません。処理中、Liftoff は画面下部に **続行する前に、必要な追加構成を処理しています…** と表示します。この設定は順序には影響しません。
      * **Friendly name**（オプション）: 指定すると、Liftoff は Library Item の **名前** の代わりにこの名前を表示します。Iru Agent はチェックイン中、引き続き **名前** の順に Library Item を並べます。
    * **Liftoff後**: Custom App は Liftoff 中に処理されず、Install 画面にも表示されません。後のエージェントのチェックイン時にインストールされます。

    <Note>
      この Custom App が [Automated Device Enrollment Library Item](/ja/endpoint/enrollment/apple/configuring-apple-enrollment#install-library-items-during-setup-assistant) の **設定アシスタント中にLibrary Itemsをインストール** にも含まれている場合、設定アシスタント中にもインストールされます。**このLibrary Itemを処理** はそのインストールを変更しません。
    </Note>

    #### ステータス

    Custom App Library Item のステータスタブには、アプリのインストールを待機している Mac デバイス、インストールに成功したデバイス、インストールの問題により **エラー** ステータスになっているデバイスが表示されます。**エラー** ステータスはアラートを生成します。詳細については、[グローバルアラート](/ja/endpoint/devices/global-alerts)のサポート記事を参照してください。

    ### 手順

    手順については、[Mac Custom App Library Item の設定](/ja/endpoint/library/library-items-profiles/configure-the-custom-apps-library-item)を参照してください。

    ### トラブルシューティング

    <AccordionGroup>
      <Accordion title="zip からインストールする際の Gatekeeper の警告">
        zip ファイルにパッケージが含まれており、カスタムアプリのインストールプロセス中に Mac で Gatekeeper の警告通知が表示される場合は、インストールファイルを zip 圧縮して Iru にアップロードする前に、パッケージに対してターミナルセッションから次のコマンドを実行して quarantine ビットを消去してください。

        ```bash clear-quarantine.sh icon="terminal" theme={null}
        xattr -dr com.apple.quarantine "/path/to/package.pkg"
        ```
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="Windows" icon="microsoft" iconType="brands">
    **Windows Custom App** Library Item を使用すると、Windows コンピュータで Windows アプリケーション（MSI、EXE）を展開および管理できます。zip 圧縮したインストーラーをアップロードし、インストールコマンドとアンインストールコマンドを設定し、検出ロジックを定義して、Library Item を Blueprint に割り当てます。zip 圧縮したインストーラーには、単一のファイルまたはファイルのディレクトリを含めることができます。オンラインのデバイスでは 15 分以内に適用が開始されます。すべてのインストーラーは System コンテキストで実行されます。以下のセクションでは、インストーラー、適用と検出の設定、コマンド、アーキテクチャ、セキュリティ、トラブルシューティングについて説明します。

    保留中の **Auto App** または **Windows Custom App** のアップデートがある場合にエンドユーザーに表示される内容（Iru システムトレイの **アップデート** リストや[実行中のアプリを先に閉じる必要がある場合](/ja/endpoint/library/library-items-profiles/user-experience-with-windows-apps#when-an-app-must-close)を含む）については、[Windows アプリのユーザーエクスペリエンス](/ja/endpoint/library/library-items-profiles/user-experience-with-windows-apps#app-updates-in-the-iru-system-tray)を参照してください。

    ### インストーラー

    インストーラー（MSI または EXE）とサポートファイルやフォルダを含む **.zip** ファイルをアップロードします。インストーラーはデバイスにダウンロードされ、インストールコマンドの実行前にローカルで展開されるため、インストールは実行時のネットワークの可用性に依存しません。アップロードは再開可能で、ネットワークの中断が発生した場合は中断した箇所から再開されます。

    <Note>
      Iru Endpoint の最大ファイルアップロードサイズは 5 GB です。
    </Note>

    ### インストールオプション

    対象デバイスで Iru がアプリを適用する方法を制御します。

    * **デバイスごとに1回インストール**: Iru は、アプリがまだインストールされていないデバイスにアプリをインストールします。インストール後、ユーザーが手動でアプリを削除しても、Iru は再インストールしません。
    * **インストールして継続的に適用**（デフォルト）: Iru はアプリをインストールし、削除された場合やその後のチェックインで存在しないことが検出された場合に再インストールします。

    ### 適用の時間枠

    このバージョンのアプリを即座に適用するか、猶予期間後に適用するかを制御します。**Enforcement deadline** を次のいずれかに設定します。

    * **Immediately**（デフォルト）: 割り当て後、できるだけ早くアプリが適用されます。オンラインのデバイスでは 15 分以内に新規インストールが開始されます。
    * **By enforcement deadline**: アプリが開いていない場合、適用期限までにアプリのインストールが試行されます。期限になると、まだインストールしていないデバイスではインストールが必須になります。

    **By enforcement deadline** を選択すると、2 つの追加フィールドが表示されます。

    * **Enforcement after version is saved**: Library Item が保存されてから適用が開始されるまでの期間。デフォルト: **2 weeks**。
    * **Enforcement deadline time**: 期限日に適用が有効になる時刻。デフォルト: **12:00 PM (Noon)**。

    ### アプリケーションの詳細

    * **発行元**: アプリケーションを作成した組織または個人。
    * **名前**: アプリケーションの表示名。Library およびデバイスのステータスビューに表示されます。
    * **バージョン**: このリリースのアプリのバージョン文字列。自由形式のテキストで、セマンティックバージョニングに対して検証されません。
    * **App icon**: Library でアプリを表す `.png` 画像をアップロードします。ファイルをアップロード領域にドラッグするか、**choose file** を選択します。
    * **Upload app**: インストーラーとサポートファイルやフォルダを含む `.zip` ファイルをアップロードします。ファイルをアップロード領域にドラッグするか、**choose file** を選択します。
      * zip には、インストーラー（MSI、EXE）と、インストールコマンドが参照するすべてのファイルを含める必要があります。
      * デバイスで内容が展開された後に、インストールコマンド内の相対パスが正しく解決されるように zip を構成してください。

    ### 検出ロジック

    検出ロジックは、アプリケーションがデバイスに存在するかどうかを Iru に伝えます。少なくとも 1 つの検出方法が必要です。Iru は、エージェントのチェックイン時に検出を実行し、アプリをインストールする必要があるか、すでに存在するかを判断します。

    **Detection logic rules** ドロップダウンから検出の種類を選択します。オプションは上から順に **MSI**、**File**、**Folder**、**Registry** と表示されます。

    #### MSI

    特定の MSI パッケージがインストールされているかどうかを Product Code で検出します。

    * **MSI product code**: 波括弧で囲まれた GUID 形式のパッケージの Product Code（`{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}`）。Web アプリが形式を検証します。コードは MSI のプロパティまたは製品のドキュメントで確認してください。
    * **Check MSI product version**: **いいえ** の場合、Product Code のみが評価されます。**はい** の場合、演算子 **equals** または **is greater than or equal to** と入力したバージョン文字列を使用して、インストールされている製品バージョンも比較します。

    #### File

    指定したパスにあるファイルを使用して検出します。

    * **Path to file**: ファイル名を含むファイルのフルパス（例: `C:\Program Files\YourApp\YourApp.exe`）。
    * **Detection method**: ファイルの評価方法を選択します。
      * **File exists**: 指定したパスにファイルが見つかった場合に合格します。
      * **File does not exist**: ファイルが見つからない場合に合格します。アンインストールの検出に使用します。
      * **バージョン**: ファイルのバージョンが比較条件を満たす場合に合格します。演算子を **equals** または **is greater than or equal to** に設定し、バージョン文字列を入力します。
      * **Size in MB**: ファイルサイズ（MB）が比較条件を満たす場合に合格します。演算子を **equals** または **is greater than or equal to** に設定し、サイズを入力します。

    #### Folder

    指定したパスにあるフォルダを使用して検出します。

    * **Path to folder**: フォルダが存在するはずのディレクトリのフルパス（例: `C:\Program Files\YourApp`）。
    * **検出方法**:
      * **Folder exists**: 指定したパスにフォルダが見つかった場合に合格します。
      * **Folder does not exist**: フォルダが見つからない場合に合格します。

    #### Registry

    レジストリキーまたは値に基づいてアプリを検出します。

    * **Key path**: 必須。確認するレジストリのフルパス（例: `HKLM\SOFTWARE\YourApp`）。パスは大文字と小文字を区別しません。
    * **値**: キー内のレジストリ値の名前（オプション）。
    * **検出方法**:
      * **Key exists**: キーが存在する場合に合格します。**値** を指定した場合は、そのキーの下に値が存在する必要があります。
      * **String comparison**: キーの値が指定した文字列と一致する場合に合格します。

    ### 開いているアプリの検出用の実行ファイル

    * フィールドごとに 1 つの実行ファイル名を入力します（例: `yourapp.exe`）。Iru はインストールまたはアンインストールの実行時にこれらのプロセスを確認し、ユーザーに閉じるよう促すことができます。
    * 行を追加するには **追加** を使用し、必要に応じて削除コントロールで行を削除します。
    * 最大 100 個の実行ファイルを入力できます。

    ### コマンド

    Web アプリでは、これらは **Install command line parameters** および **Uninstall command line parameters** と表示されます。サイレントインストールとサイレントアンインストールのコマンドラインを入力します。

    **インストールコマンド**

    アプリケーションをサイレントインストールするために使用する完全なコマンドライン。MSI パッケージの場合、標準的なサイレントインストールは次のようになります。

    ```powershell icon="terminal" theme={null}
    msiexec /i yourapp.msi /qn
    ```

    インストーラーの zip 内にサポートファイルやフォルダが含まれている場合は、相対パスを使用して参照します。例:

    ```powershell icon="terminal" theme={null}
    msiexec /i lance.msi TRANSFORMS=".\mytransforms\transform.mst" /qn
    ```

    msiexec を直接呼び出す代わりに、zip 内の PowerShell スクリプトを実行することもできます。スクリプトはインストーラーをサイレントで実行する必要があります。

    ```powershell icon="terminal" theme={null}
    .\installapp.ps1
    ```

    **アンインストールコマンド**

    アプリケーションを削除するために使用する完全なコマンドライン。MSI パッケージの場合:

    ```powershell icon="terminal" theme={null}
    msiexec /x {ProductCode} /qn
    ```

    <Note>
      インストールまたはアンインストールコマンド内のインストーラー、アンインストーラー、スクリプトへのパスにスペースが含まれている場合は、そのパスを二重引用符で囲んでください（例: `"my installer.exe"`）。
    </Note>

    ### アーキテクチャ

    **Architecture** で、インストーラーの **x64** または **arm64** を選択します。MSI メタデータが利用可能な場合、Iru は正しい値の自動検出を試みます。保存する前に選択内容を確認するか上書きしてください。

    ### 適用の動作

    * オンラインのデバイスでは、割り当てから **15 分**以内に適用が開始されます。新規インストールの場合、その時間枠内にダウンロードプロセスが開始されることを意味します。インストール時間はファイルサイズとデバイスのパフォーマンスによって異なります。
    * インストールまたはアンインストールが失敗した場合、Iru は 15 分ごとに再試行します。
    * サーバー上のファイルが変更されていない限り、再試行時にインストーラーは再ダウンロードされません。
    * Library Item を削除するか Blueprint の割り当てを削除しても、デバイスからアプリはアンインストール**されません**。アプリはデバイスに残り、適用が停止するだけです。

    インストールまたはアンインストールの失敗によって Iru Endpoint でアラートが生成される場合の詳細については、[グローバルアラート](/ja/endpoint/devices/global-alerts)のサポート記事を参照してください。

    ### セキュリティ

    * **ハッシュ検証**: Iru はインストールコマンドを実行する前に、インストーラーの SHA-256 ハッシュを検証します。ハッシュが一致しない場合、インストールは直ちに失敗します。
    * **暗号化された配信**: インストーラーファイルは HTTPS 経由で配信されます。Library Item の対象となっているデバイスのみがインストーラーをダウンロードできます。

    ### 考慮事項

    * Library Item を削除するか Blueprint の割り当てを削除しても、アプリはアンインストールされません。アプリはデバイスに残り、適用されなくなります。
    * インストーラーの zip は、実行前にデバイス上で展開されます。インストールコマンド内の相対パスが zip 内のフォルダ構造と一致していることを確認してください。
    * 複数のアプリが同時にデバイスの対象になっている場合、適用はキューに入れられます。15 分の SLO は、キュー内の最初のアプリのダウンロード開始に適用されます。

    ### ベストプラクティス

    <CardGroup cols={2}>
      <Card title="MSI パッケージには MSI 検出を使用する" icon="check">
        MSI ベースのインストーラーでは、Product Code によりインストールパスに関係なくインストール済みパッケージを識別できます。
      </Card>

      <Card title="展開前にインストールコマンドとアンインストールコマンドをテストする" icon="flask">
        Iru にアップロードする前に、テストデバイスでインストールコマンドとアンインストールコマンドを手動で実行してください。あるインストーラーの種類で機能するサイレントフラグが、別の種類では機能しない場合があります。フリートに展開する前に検証してください。
      </Card>

      <Card title="コマンドに合わせて zip を構成する" icon="folder">
        インストールコマンドが相対パスを使用してサポートファイルを参照する場合は、zip のフォルダ構造がそれらのパスと完全に一致していることを確認してください。一致しない場合、インストールは失敗します。
      </Card>

      <Card title="まずパイロットグループでテストする" icon="users">
        フリート全体に拡大する前に、テストデバイスを含む小規模な Blueprint に Library Item を割り当ててください。インストール、検出、レポートがすべて想定どおりに動作することを確認します。
      </Card>

      <Card title="検出を具体的に保つ" icon="bullseye">
        範囲が広すぎる検出ルール（例: 複数のアプリが共有するフォルダの確認）は、誤検知につながる可能性があります。検出には利用可能な最も具体的な方法を使用してください。
      </Card>
    </CardGroup>

    ### 手順

    手順については、[Windows Custom App Library Item の設定](/ja/endpoint/library/library-items-profiles/configure-the-windows-custom-app-library-item)を参照してください。

    ### トラブルシューティング

    <AccordionGroup>
      <Accordion title="対象デバイスにアプリがインストールされない">
        **考えられる原因:**

        * Library Item がデバイスの Blueprint に割り当てられていない
        * 対象デバイスが最近チェックインしていない

        **解決策:**

        * Library Item が正しい Blueprint に割り当てられていること、および対象デバイスが過去 15 分以内にチェックインしていることを確認する
        * デバイスごとのステータスビューで終了コードまたはエラーメッセージを確認する
      </Accordion>

      <Accordion title="エラーコードでインストールが失敗する">
        デバイスごとのステータスビューで終了コードを確認してください。一般的な MSI の終了コードは次のとおりです。

        * **1603**: 一般的なエラー。多くの場合、アプリがすでに実行中である、ディスク容量が不足している、または権限の問題が原因です。
        * **1618**: 別のインストールがすでに進行中です。エージェントが再試行します。
        * **1638**: より新しいバージョンのアプリがすでにインストールされています。検出ロジックとアップグレードパスを確認してください。
      </Accordion>

      <Accordion title="インストール成功後に検出が一致しない">
        **考えられる原因:**

        * 検出ルールが実際のインストール状態と一致していない
        * Product Code、パス、またはレジストリ値が正しくない

        **解決策:**

        * MSI パッケージの場合は、Product Code が正しいことを確認する
        * ファイルまたはレジストリの検出の場合は、インストール後に表示されるとおりにパスと値を正確に確認する
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>

### 関連記事

<CardGroup cols={2}>
  <Card title="Mac Custom App Library Item の設定" icon="apple" href="/ja/endpoint/library/library-items-profiles/configure-the-custom-apps-library-item">
    Mac Custom Apps（PKG、DMG、ZIP）の設定手順
  </Card>

  <Card title="Windows Custom App Library Item の設定" icon="microsoft" href="/ja/endpoint/library/library-items-profiles/configure-the-windows-custom-app-library-item">
    Windows Custom Apps（MSI、EXE）の設定手順
  </Card>

  <Card title="Library の概要" icon="books" href="/ja/endpoint/library/library-items-profiles/library-overview">
    Library Item を選別、作成、管理し、Blueprint に追加します
  </Card>

  <Card title="Self Service: Library Item" icon="box" href="/ja/endpoint/settings/self-service/self-service-library-items">
    Self Service 用に Library Item を設定します（macOS）
  </Card>

  <Card title="グローバルアラート" icon="bell" href="/ja/endpoint/devices/global-alerts">
    Custom Apps やその他の Library Item が問題を報告した際に Iru Endpoint がアラートを表示する方法を設定します
  </Card>
</CardGroup>
