Stream DeckのプロファイルにWindows Terminal/PowerShellを登録できない問題
結論
Stream Deckのアプリケーション連動プロファイルでWindows Terminal(wt.exe)を指定するのは難しい。
理由:
wt.exeはWindowsAppsフォルダ内にあるUWPアプリのスタブ- Stream Deckからはアクセス権限の制限で参照できない
- 実際のプロセス
WindowsTerminal.exeも同様に保護されている
問題の状況
Stream Deckには「アプリケーション連動プロファイル」機能がある。特定のアプリがアクティブになると、自動的にプロファイルが切り替わる便利な機能だ。

PowerShell用のプロファイルを作り、アプリケーションとして登録しようとした。
wt.exe を指定しようとした場合
Stream Deckの「App/ファイル」欄で wt を指定すると、パスが自動補完される。

しかし、このファイルを選択しようとすると「ファイルにアクセスできません」エラーが発生する。

WindowsApps フォルダの権限
wt.exe は C:\Users\<user>\AppData\Local\Microsoft\WindowsApps\ に存在するが、これはUWPアプリへのスタブ(起動用のリンク)だ。
WindowsApps フォルダのセキュリティ設定を確認すると、特殊な保護がかかっている。

| 項目 | 内容 |
|---|---|
| 所有者 | TrustedInstaller(システム専用) |
| 通常ユーザー | 読み取りと実行のみ(条件付き) |
| 条件 | WIN://SYSAPPID = UWPアプリ経由でのみアクセス可 |
この権限を変更すればアクセスできるが、以下のリスクがある:
- Windows Updateで Store アプリの更新が失敗する可能性
- セキュリティ上の保護が外れる
- 他の Store アプリに影響する可能性
権限変更は推奨しない。
代替案の検討
案1: pwsh.exe を直接指定
PowerShell 7 本体を直接指定する方法。
C:\Program Files\PowerShell\7\pwsh.exe
問題点: pwsh.exe を直接起動すると、Windows Terminalの設定(開始ディレクトリなど)が効かない。

カレントディレクトリが C:\Program Files\PowerShell\7\ になってしまう。
この問題については Stream DeckでWindows Terminal(PowerShell 7)を任意のディレクトリで開く方法 で詳しく解説している。
案2: プロセス名で認識させる
フルパスではなく、プロセス名 WindowsTerminal だけで認識されるか試す方法。
Stream Deckのアプリケーション欄にプロセス名を直接入力してみる価値はある。
案3: プロファイル連動を諦める
アプリケーション連動は使わず、手動でプロファイルを切り替える方法。
Stream Deckのボタンでプロファイル切替アクションを設定すれば、1タップで切り替えられる。
まとめ
| 方法 | 結果 |
|---|---|
wt.exe を指定 | アクセス拒否エラー |
WindowsTerminal.exe を指定 | 同様にアクセス拒否 |
| WindowsAppsの権限変更 | 非推奨(システムに影響) |
pwsh.exe を指定 | 動くがWindows Terminalの設定が効かない |
| プロセス名で指定 | 要検証 |
| 手動切替 | 確実に動作 |
Stream DeckのプロファイルでWindows Terminalを認識させるには、UWPアプリの制限を回避する必要がある。現時点では手動切替が最も確実な方法だ。