UWP アプリってなんだ

UWPアプリ

  • UWP アプリとは Universal Windows Platform で動くアプリのこと
  • 基本的に Microsoft Store から入手する
  • WinRT (Windows Runtime) API を利用する
  • アプリは Microsoft.SysinternalsSuite_2022.11.1.0_x64__8wekyb3d8bbwe のような AppX パッケージの名前で識別される。末尾のハッシュ値は、アプリの発行者ID (PublisherId) のハッシュ値
  • アプリは低い特権で、制約の多いアプリコンテナ―内で実行される
  • アプリのアクティブ化(起動)とライフサイクル(起動から終了まで)は、WindowsProcess Lifetime Management (PLM) によって制御され、アプリは Windows Runtime (WinRT) サブシステム内で実行される

AppExecutionAlias

  • AppExecutionAlias は Windows 10 Fall Creators Update(バージョン1709)から導入された
  • 環境変数の PATH に %USERPROFILE%\AppData\Local\Microsoft\WindowsApps が設定されている
  • %USERPROFILE%\AppData\Local\Microsoft\WindowsApps にサイズ 0 の実行ファイル名のファイルが存在する(Ex. notepad.exe など)。これは単純なショートカットではなく、アクティブ化(起動)に必要な情報(アプリの PackageFamilyName や ApplicationID など)を提供している

UWP アプリをコマンドで起動する

PowerShell で以下のコマンドを実行する。

$app = Get-AppxPackage -Name *<Search Word>*
$package = $app | Get-AppxPackageManifest
$app.PackageFamilyName
$package.Package.Applications.Application.Id
  • 3番目のコマンドで PackageFamilyName が取得できる
  • 4番目のコマンドで ApplicationID が取得できる

あるいは以下のように実行しても取得できる。

(Get-AppxPackage -Name *<Search Word>*).PackageFamilyName
(Get-AppxPackage -Name *<Search Word>* | Get-AppxPackageManifest).package.applications.application.id

上記で取得した情報を使って PowerShell から以下のコマンドで UWP アプリを起動できる。

Start-Process shell:AppsFolder\<PackageFamilyName>!<AppID>

UWP アプリのメモ帳を起動する例

$app = Get-AppxPackage -Name *notepad*
$package = $app | Get-AppxPackageManifest
$app.PackageFamilyName
$package.Package.Applications.Application.Id

Start-Process shell:AppsFolder\Microsoft.WindowsNotepad_8wekyb3d8bbwe!App

参考