PowerShellでMSIXアプリ(Storeアプリ)を起動する方法|AppUserModelIdとURIスキーム活用術

2025-05-07 サンプル画像

Windows 10や11で普及している「Microsoft Storeアプリ(MSIX形式)」は、従来のexeアプリとは異なり、直接パスから起動することができません。しかし、PowerShellを使えば、これらのMSIXアプリも自在にコントロール可能です。本記事では、Slackなどの代表的なStoreアプリをPowerShellから起動する2つの方法をご紹介します。

方法①:AppUserModelIdを使ってMSIXアプリを起動する

MSIX(Store)アプリは、固有の AppUserModelId によって識別されます。このIDを使えば、PowerShell経由でStoreアプリを起動することが可能です。

ステップ1:AppUserModelIdを取得

以下のコマンドをPowerShellで実行して、アプリのAppID(AppUserModelId)を確認します。

Get-StartApps

ただし、このコマンドではIDの一部が切れて表示されることがあります。完全なIDを取得したい場合は、PowerShell+COMを利用した以下のスクリプトを使いましょう。

$apps = New-Object -ComObject "Shell.Application"
$folder = $apps.Namespace("shell:AppsFolder")
$items = $folder.Items()

foreach ($item in $items) {
    $name = $item.Name
    $appId = $item.ExtendedProperty("System.AppUserModel.ID")
    if ($name -like "*retoolfavicon*") {
        Write-Output "$name : $appId"
    }
}

このスクリプトでStoreアプリのAppUserModelIdが正確に取得できます。


Get-ChildItemでレジストリからPackageIDを取得することもできます

Get-ChildItem "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Repository\Packages" -Recurse |
Where-Object { $_.Name -like "*retoolfavicon*" } |
Get-ItemProperty

ステップ2:PowerShellから起動

以下のコマンドでStoreアプリを起動できます。

Start-Process "explorer.exe" "shell:AppsFolder\18668B87B35FC.Retoolfavicon_wxbvragbbe488!App"

この形式で他のMSIXアプリも起動可能です。

方法②:URIスキーム(カスタムプロトコル)で起動する

一部のMSIXアプリは、カスタムのURIスキーム(例:slack://)を登録しています。SlackやTeamsなどがこれに該当します。

PowerShellでの実行例

Start-Process "slack://open"

この方法は、アプリがURIスキームを登録している場合にのみ機能します。確認するには、次のレジストリパスを調べます。

Get-ItemProperty "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\slack\UserChoice"

MSIXアプリもPowerShellで自在に起動できる!

Microsoft Storeアプリ(MSIX形式)は、従来の.exe形式とは異なるため扱いが難しいと感じるかもしれません。しかし、AppUserModelIdを利用することで、PowerShellから簡単に起動できます。また、URIスキームを活用すれば、さらに柔軟な起動が可能です。

開発・運用の自動化やバッチ処理、スクリプトによる統合など、あらゆる場面で活用できますので、ぜひ活用してみてください。


WinUI 3 / XAML の Grid.Width 設定方法

WinUI 3でMenuFlyoutをShowAtで表示する方法【コード付き解説】

MenuFlyoutWinUI 3 で便利なポップアップメニュー

WinUI 3の開発で混乱しがちな「空白のウィンドウ」と「空白のページ」の違い

PowerShellでMSIXアプリ(Storeアプリ)を起動する方法|AppUserModelIdとURIスキーム活用術

Microsoft Storeアプリ更新時のロールアウト設定まとめ

PowerShellでgrepのような文字列検索を実現する方法【UTF-8・Shift-JIS対応・サブフォルダ対応】