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