2023年08月25日09時00分 / 提供:マイナビニュース
○パスからは起動できないアプリケーションもある
前回はアプリケーションのパスを指定してPower Automateでアプリケーションを起動する方法を取り上げた。レコーダーを使わずに組み上げた最初のプログラムということになる。
しかし、Windowsで使うアプリケーションの中には直接パスを指定しても起動できないアプリケーションがある。Windowsが最初から提供しているシステム設定系のアプリケーションや、基幹に関与するアプリケーションがそれに該当する。最初にレコーダーで操作した「設定アプリケーション」もそのうちの1つだ。
試しに、前回と同じ方法で「設定アプリケーション」のパスを調べてみよう。まず、設定アプリケーションを起動していない状態で「タスクマネージャ」を起動する。
この段階では設定アプリケーションは起動していないので、タスクマネージャには設定アプリケーションの存在は確認できない。
この状態で設定アプリケーションを起動する。
ここでタスクマネージャを確認すると、次のようにアプリの一覧に「設定」が追加されたことを確認できる。
前回と同じ要領で、設定の「プロパティ」を選択する。
起動してくるプロパティダイアログの「セキュリティ」タブから「オブジェクト名」を確認すると、次のようにパスを見つけられる。
「C:\Windows\ImmersiveControlPanel\SystemSettings.exe」が正しいパスに見えるが、ここからは起動できない。
○設定アプリケーションはパスから起動できない
ターミナルアプリケーションを起動して、先ほど調べたパスを貼り付けて実行してみよう。
しかし、何も起動しない。タスクマネージャで確認しても、設定アプリケーションの起動は確認できない。
○設定アプリケーションを起動する方法はms-settings:
では、どのように起動するかを解説していく。、設定アプリケーションの起動方法はGoogle検索やChatGPTを使うとすぐにわかる。まず公式のドキュメントとしては「Launch the Windows Settings app - UWP applications | Microsoft Learn」に説明がまとまっている。
またはChatGPTを使うと、次のような答えが得られる(現在MicrosoftはWindowsのシェルとしてPowerShellを使うことを推奨しているため、PowerShellの使用を想定して質問している)。
調査した内容に従って動作を確認してみよう。まずは指定された通りにコマンド(コマンドレット)を実行する。
すると今度は次のように設定アプリケーションが起動する。
「Launch the Windows Settings app - UWP applications | Microsoft Learn」を読むとわかるように、この方法で起動する場合「:(コロン)」の後にさらに単語を続けることで特定のページの指定が可能になる。こうして、設定アプリケーションを開くことができる。
たとえば「Start-Process ms-settings:personalization」のように実行すると、次のように「個人用設定」のページで設定アプリケーションが起動する。
これまでは設定アプリケーションの「個人用設定」→「背景」を自動化の対象として操作していたが、このページも次のように直接開くことができる。
ここまでわかればあとはPower Automateで自動化できそうだが、このままだと自動化できない。今回は、自動化できないところまでを確認してみよう。
○「Start-Process ms-settings:」はパスではないので使えない
Power Automateのアクション「アプリケーションの実行」には、実行するアプリケーションのパスを指定する必要がある。試しに、パスの部分を「Start-Process ms-settings:personalization」に変えてみよう。
この状態で「▷」を押してフローを実行する。
すると次のようにエラーが表示されて自動処理は失敗してしまう。
詳しい説明は省くが、「Start-Process ms-settings:personalization」という指示は、コマンドレット経由でPowerShellに処理をさせるものだ。実際に処理するのはpowershell.exeまたはpwsh.exeというコマンドであり、Start-Process.exeというコマンドは存在しない。
要するにPower Automateのアクション「アプリケーションの実行」を実行するためのアプリケーションパスには実行できるパスを指定する必要があるので、「Start-Process ms-settings:personalization」と入力しても失敗するわけだ。
○PowerShell経由で処理しなければいけないケースは少なくない
このように、実行したいものの実際に対応する実行ファイルが存在しないアプリケーションや機能のようなものは他にも存在している。その場合には上記に説明したようにPowerShell経由で処理を行うというのが1つの方法だ。Windowsの自動化においてもこの方法は知っておく必要があるので、最初に習得しておきたい。
設定アプリケーションをPower Automateから直接起動するための具体的な方法については、次回取り上げる。