プラグイン: Install Launcher

想定読者: IT管理者およびデプロイ担当者。本ページでは InstallLauncher について取り扱います。RedirectEvaluator プラグインと連携するヘルパーコンポーネントで、標準ユーザーが .msi インストーラーを対話的に実行できるようにし、入れ子のUACプロンプトは表示されません。

InstallLauncher プラグインの役割

最小権限が適用されたユーザーが .msi ファイルを開こうとすると、通常はWindows UAC経由で管理者認証情報の入力を求められ、標準ユーザーはこれを満たせません。InstallLauncher はリダイレクト機能で昇格要求を取り込み、すでに昇格済みのプロセス内から msiexec.exe を実行することで、入れ子のUACプロンプトを回避します。

その結果、ユーザーには選択したパッケージ向けの標準的なWindows Installerインターフェースが表示され、インストール時点で管理者認証情報を求められることなく、昇格はEPMによって透過的に処理されます。

動作の流れ

InstallLauncher は LaunchPrivilegeElevation フロー内のリダイレクト先として動作します。

  1. ユーザーが .msi ファイルをダブルクリックするか、右クリックして [Install] を選択します。

  2. EPMが特権昇格要求を取り込みます。

  3. 昇格ポリシーによって要求が許可されます。LaunchPrivilegeElevationジョブ内のcheck-redirectタスクが実行され、有効なリダイレクトルールが評価されます。

  4. 組み込みの MSI ルールが一致します。sourceExePatternmsiexec.exe に、commandLinePattern が任意の .msi ファイルパスに一致します。

  5. EPMは元の msiexec.exe 起動を拒否し、代わりにInstallLauncherlaunch-elevated で昇格起動します。

  6. InstallLauncherUseShellExecute を使って msiexec.exe を呼び出し、元の要求からMSIパスとコマンドライン引数を渡します。

  7. ユーザーにはパッケージ向けのネイティブなWindows Installer UIが表示されます。

msiexec.exe はすでに昇格済みのプロセス内から起動されるため、インストーラーやその子プロセスに対する二次的なUACプロンプトは発生しません。

リダイレクト機能の背景およびリダイレクトルールの評価方法については、リファレンス: リダイレクト機能をご参照ください。

デプロイ

InstallLauncher は他のEPMコンポーネントとあわせてビルドおよびデプロイされます。

  • ビルド出力先: publishoutput/Jobs/bin/InstallLauncher/

  • 実行時の配置先: 他のEPMジョブツールと同じ Jobs/bin/ ディレクトリへデプロイ

RedirectEvaluator プラグインは Jobs/bin/ から短い名前で InstallLauncher を解決します。標準の配置場所にデプロイしていれば、追加のパス設定は不要です。

組み込み MSI リダイレクトルール

デフォルトの RedirectEvaluator プラグイン定義 (KeeperPrivilegeManager/Plugins/RedirectEvaluator.json) には、metadata.redirect.rules 配下に .msi ファイル向けのリダイレクトルールがあらかじめ含まれています。

このルールは、コマンドライン上で .msi パスを伴って msiexec.exe が呼び出される特権昇格要求に一致し、ファイルパスと元のコマンドラインを引数として InstallLauncher へリダイレクトします。

特定のディレクトリに限定する、nonAdminOnly を追加する、他のインストーラータイプ向けのルールを追加するなど、このルールを変更または拡張する場合は、エンドポイント上で Plugins/RedirectEvaluator.json を直接編集するか、SettingsUpdate ポリシーで更新した構成をプッシュします。ルール変更を一元的にデプロイする方法の詳細は、プラグイン: RedirectEvaluatorをご参照ください。

プレースホルダートークン

リダイレクトルールの targetArguments フィールドでは、以下のトークンが利用できます。RedirectEvaluator はこれらを展開してから InstallLauncher に渡します。

トークン

{FilePath}

昇格要求から取得した .msi ファイルのフルパス

{FileName}

ベースファイル名のみ (例: installer.msi)

{Directory}

ファイルを含むディレクトリ

{CommandLine}

元の昇格要求のコマンドライン (空の場合あり)

デフォルトルールは "{FilePath}" {CommandLine} を使用し、スペースを含むパスに対応するためフルパスを引用符で囲み、ユーザーまたは呼び出し元アプリケーションが指定した追加引数を続けて渡します。

昇格対象のファイル拡張子

EPMのコンパニオンアプリ (Keeper AgentおよびKeeper Client) は、アプリケーション実行ファイルと同じ場所にデプロイされる elevation-allowed-extensions.json を使い、特権昇格要求の対象となるファイル拡張子を判定します。.msi 拡張子はデフォルトでこの一覧に含まれています。

デプロイ向けに許可する拡張子をカスタマイズする場合は、以下の構造の JSON ファイルを作成し、環境変数 KEEPER_ELEVATION_EXTENSIONS_CONFIG でそのパスを指定します。

プラットフォームキーを省略した場合、そのプラットフォームの組み込みデフォルトは維持されます。環境変数 KEEPER_ELEVATION_EXTENSIONS_CONFIG にカスタムファイルのフルパスを設定すると、実行時にデフォルトを上書きできます。

ユーザーインターフェース

InstallLauncherUseShellExecute を使って msiexec.exe を起動するため、Windows Installer UIは完全にネイティブです。.msi パッケージとその引数が指定するインターフェースが、そのままユーザーに表示されます。

  • カスタム引数なし → 標準的な対話型インストールウィザード

  • コマンドラインに /quiet または /qn → パッケージ定義に従ったサイレントまたはUI削減インストール

EPM独自のUIは追加されません。InstallLauncher はユーザーから透過的に見えます。

サイレントモード / 自動化

デフォルトでは、通常の対話型昇格中に InstallLauncher はstderrへ何も出力しません。ユーザーが余分な表示や操作を行う必要はありません。

コンソールが接続された自動化やスクリプト実行の文脈で失敗の詳細を表示したい場合は、以下のいずれかの方法でサイレントモードを有効にします。

方法

コマンドラインフラグ

--silent または --quiet-ui または /silent

環境変数

KEEPER_INSTALL_LAUNCHER_SILENT=1 または KEEPER_INSTALL_LAUNCHER_SILENT=true

サイレントモードでは、msiexec.exe がゼロ以外の終了コードで終了した場合、InstallLauncher がstderrに短い失敗サマリーを書き出します。プロセスの終了コードは、この設定にかかわらず常にWindows Installerの終了コードです。

CLI リファレンス

InstallLauncher はリダイレクトフローとは独立して、コマンドプロンプトやスクリプトから直接呼び出すこともできます。テスト、自動化、スクリプトによるデプロイに有用です。

基本的なインストール

サイレントインストール

msiexecの完全制御 (修復、アンインストール、プロダクトコード)

/ または - で始まる引数を InstallLauncher が自身のフラグとして解釈せず、msiexec.exe に直接渡す必要がある場合は、-- を区切りとして使います。-- 以降はすべてそのまま転送されます。

引数
説明

<path>.msi [args]

.msi ファイルへのパス。必要に応じてmsiexec引数を続ける

-- <msiexec args>

msiexec.exe へ引数を直接渡す (修復、アンインストール、プロダクトコード向け)

--silent / --quiet-ui / /silent

msiexecがゼロ以外で終了したとき、失敗の詳細をstderrに出力

まとめ

項目
内容

役割

すでに昇格済みのプロセスから msiexec.exe を実行し、.msi ファイルをUACプロンプトなしでインストール

トリガー

LaunchPrivilegeElevationフロー内の RedirectEvaluator 組み込みMSIリダイレクトルール経由

デプロイ先

他のEPMジョブツールと同じ Jobs/bin/InstallLauncher/

デフォルトルール

Plugins/RedirectEvaluator.json に同梱。コマンドライン上の msiexec.exe + .msi に一致

UI

ネイティブなWindows Installer UI。EPMインターフェースは追加されない

サイレントモード

--silent または KEEPER_INSTALL_LAUNCHER_SILENT=1 — stderrへの失敗サマリーのみ。終了コードは常にmsiexecの結果

許可する拡張子

elevation-allowed-extensions.json で構成。KEEPER_ELEVATION_EXTENSIONS_CONFIG でパスを上書き

最終更新