Windows 10のMicrosoft Storeアプリをコマンドラインやバッチから起動するTech TIPS

よく使うMicrosoft Storeアプリをコマンドラインやバッチファイルから起動できると便利である。だがストアアプリは常に同じ場所にインストールされるわけではないので、決まったパスで起動することができない。そのような場合に利用できる便利な起動方法を紹介する。

» 2018年10月19日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象:Windows 10/Windows Server 2016


 Windows OS上にインストールされているアプリ(デスクトップアプリ)を起動する場合、通常はメニューやデスクトップなどに置かれているアイコン(もしくはデータファイル名)をクリックして起動するのが一般的だ。

 だがGUIで操作するのではなく、特定のファイルを開くようなショートカットを作成したり、コマンドラインやバッチファイルなどからアプリを起動したりしたいこともあるだろう。よくコマンドプロンプトを開いて作業しているなら、コマンド名を入力すると起動できるようにしておけば便利だ。

 また、特定のキーやボタンにマクロとしてコマンド名(バッチやスクリプトも含む)を割り当てておくと、ワンタッチでアプリを起動できるようになる。最近では、そのような運用を支援するために、カスタマイズ可能な追加のファンクションキーを備えたキーボードやマウス、拡張デバイスなどの製品もある。

カスタマイズ可能なキーを備えた入力デバイスの例 カスタマイズ可能なキーを備えた入力デバイスの例
これは「Elgato Stream Deck」という、USB接続の拡張入力デバイスの例(キー部分はLCDになっていて、任意の画像を表示できる)。キーを押すと、設定されたアプリケーションやスクリプトコマンドの起動、キースロークの入力などを行える。一般のキーボードやマウスでも、カスタマイズ可能な追加ボタンを備えた製品が販売されている(ゲーム/ホームエンターテイメント向け製品に多い)。

ストアアプリをコマンドラインから起動するには?

 従来のWindows OS向けのアプリなら、インストールされている場所や実行ファイルの名前が分かっていれば、それを直接コマンドプロンプトやバッチファイルなどに入力しておけば、簡単に起動することができる。

 しかし、Windows 10のMicrosoft Storeアプリ(ユニバーサルWindowsプラットフォームアプリ。以下、ストアアプリ)の場合は、インストールされている場所は固定的ではなく、更新やバージョンアップ、ユーザー設定などによってインストールされている場所が変わることがある。そのため、固定的なパス名を指定して起動するわけにはいかない。

 代わりにストアアプリでは、アプリ(の種類)ごとに「URIスキーム」と呼ばれる固有の名前(プロトコル名)が用意されているので、それを使えば簡単に起動することができる。

 例えば、Webブラウザを起動するには、[Windows]+[R]キーで[ファイル名を指定して実行]ダイアログを開き、「http:」と入力して実行する。コマンドプロンプトから起動するなら、「start http:」を実行すればよい(バッチにしてもよい)。これを実行すると、「デフォルトとして設定されているWebブラウザ」が起動する。

 他にも、例えば次のような操作を実行できる

※特定のWebサイトを開く
start http://www.atmarkit.co.jp/
※Microsoft Storeアプリ版の電卓アプリを開く
start calculator:
※[Windowsの設定]アプリを開く
start ms-settings:
※[Windowsの設定]アプリの[システム]−[バージョン情報]を開く
start ms-settings:about



 URIの機能や仕組みについては以下のサイトなどを参照のこと。

 以下に、Windows 10で利用できる主なURIスキーム名をまとめておく。単にアプリを起動するだけでなく、例えば[Windowsの設定]アプリの各設定ページを細かく指定して起動できるなど、(ヘルプ業務などで)便利に使えそうな機能も用意されている。

URIスキーム 起動対象
http: / https: 既定のWebブラウザ
mailto: 既定のメール送信アプリ
microsoft-edge: Microsoft Edge
outlookmail: 「メール」アプリ
ms-chat: 「メッセージング」アプリ
ms-people: 「People」アプリ
ms-photos: 「フォト」アプリ
ms-settings: 「Windowsの設定」アプリ
ms-settings:about [Windowsの設定]アプリの[システム]−[バージョン情報]
ms-settings-displays-topology:projection 「映す」画面設定([Windows]+[P])
ms-get-started: 「ヒント」アプリ
feedback-hub: 「フィードバックHub」アプリ
onenote: 「OneNote」アプリ
ms-windows-store: 「Microsoft Store」アプリ
ms-actioncenter: 「アクションセンター」通知
ms-clock: 「アラーム&クロック」アプリ
ms-availablenetworks: 「ネットワークとインターネットの設定」
ms-projection: 「プロジェクタ」
ms-cortana: Cortana検索機能
ms-contact-support: 「問い合わせ」アプリ
ms-paint: 「ペイント3D」アプリ
bingmaps: 「マップ」アプリ
bingnews: 「Microsoftニュース」アプリ
windowsdefender: 「Windows Defenderセキュリティセンター」画面
calculator: 「電卓」アプリ
outlookcal: 「カレンダー」アプリ
microsoft.windows.camera: 「カメラ」アプリ
bingweather: 「天気」アプリ
ms-callrecording: 「Windowsボイスレコーダー」アプリ
microsoftvideo: 「Microsoft Store」アプリの「映画とテレビ」タブ
mswindowsvideo: 「映画&テレビ」アプリ
mswindowsmusic: 「Grooveミュージック」アプリ
com.microsoft.3dviewer: 「Mixed Realityビューアー」アプリ
com.microsoft.builder3d: 「3D Builder」アプリ
xboxliveapp-1297287741: 「Microsoft Solitaire Collection」ゲーム
fb: 「Facebook」アプリ
twitter: 「twitter」アプリ
slack: 「slack」アプリ
アプリを起動するためのURIスキーム(主なもののみ)
コマンドプロンプト上で「start http:」などを実行すると、関連付けされているアプリを起動できる。「:」の後ろには、さらに対象やパラメーターを追加で指定することも可能(例:「start http://www.atmarkit.co.jp/」)。

 アプリによっては、スキーム名に続けてパラメーターを指定できる場合もあるが、全てのアプリがオプションパラメーターをサポートしているわけではない(パラメーターを解釈しないアプリも少なくない)。

 なお、プロトコルごとの既定のアプリではなく、特定のアプリを起動したければ、そのアプリが持つ固有の名前(スキーム名)を指定すればよい(前出のサイト参照)。だがそのような固有名を持たないアプリも少なくないので、常に期待するアプリが起動できるかどうかは分からない。

アプリのデータファイルを指定して起動する

 上の例では、startコマンドにURIスキームを付けて起動しているが、代わりにファイル名を付けて起動することも可能である(例「start c:\doc\test.docx」)。この場合は、そのファイルに関連付けられているアプリが起動する。

●[補足]コントロールパネルや特定のユーザーフォルダなどを素早く開く「shell:〜」表記

 startコマンドでは、アプリを素早く開くだけでなく、ユーザーのドキュメントフォルダやコントロールパネルを素早く開くこともできる。そのような使い方や(そちらが本来のstartコマンドの使い方)、startコマンドの基本的な使い方については、TIPS「スタートメニューやスタートアップなどの特殊フォルダーの場所を素早く開く」を参照していただきたい。例えば「start shell:Personal」というコマンドを実行すると、ユーザーの「ドキュメント」フォルダを素早く開くことができる。

アプリのURIスキーム名を調べるには?

 起動したいアプリがどのようなURIスキーム名を持っているかは、[Windowsの設定]アプリで確認できる。[アプリ]グループで[既定のアプリ]を開き、[プロトコルごとに既定のアプリを選ぶ]のリンクをクリックする。すると、アプリのURIスキーム名と説明、設定されている「既定のアプリ」の一覧が表示される。そのURIスキーム名に「:」を付けて呼び出せばよい。

URIスキーム名の確認(1) URIスキーム名の確認(1)
スキーム名の一覧は[設定]アプリで確認できる。

URIスキーム名の確認(2) URIスキーム名の確認(2)
[アプリ]グループの[既定のアプリ]で一覧を確認する。

URIスキーム名の確認(3) URIスキーム名の確認(3)
スキーム名と対応するアプリ。左側にある文字列のうち、上側がスキーム名で、下側がその説明文。スキーム名の最後に「:」を付けて[ファイル名を指定して実行]に入力するか、「start calculator:」のように実行すると、電卓アプリを起動できる(スキーム名は大文字でも小文字でもよい)。

 アプリ名の左側にURIスキーム名と説明文が表示されているが、そのスキーム名の最後に「 : 」を付けて、例えば「start bingmaps:」とすると、「マップ」アプリが起動する。

 既定のアプリが「既定を選ぶ」となっている場合は、既定アプリが未設定ということを表している。これを実行すると、どのアプリを既定アプリにするかを問い合わせるダイアログが表示されるので、適当なアプリを選択して実行させること。

アプリの「エイリアス名」で直接起動する

 以上のように、ストアアプリは通常、URIスキームを使って起動することになるが、アプリによっては、それぞれ固有の「エイリアス名(別名)」を持っている場合がある。これを使えば、既定のアプリの設定にかかわらず、常に対象のストアアプリを起動できる(フルパスで指定する必要もない)。

 例えばMicrosoft Edgeは「MicrosoftEdge.exe」というエイリアス名を持っているので、単に「microsoftedge」というコマンド名を(コマンドプロンプトやバッチ、[ファイル名を指定して実行]ダイアログで)入力するだけで起動できる。Windows OSの他の組み込みコマンドと同じように、フルパスでなくても実行できるし、前に「start 〜」を付ける必要もない。

 アプリのエイリアス名も[設定]アプリで確認できる。[設定]アプリで[アプリ]グループを開き、[アプリと機能]画面で[アプリ実行エイリアスの管理]のリンクをクリックする。すると、アプリとそのエイリアス名が表示される。右にあるスイッチをオフにするとそのエイリアスが無効になるので、同じエイリアス名のアプリが複数ある場合は、これで衝突を回避できる。

アプリ実行エイリアス名の確認(1) アプリ実行エイリアス名の確認(1)
アプリによっては、直接.exeファイルとして実行できるように、エイリアスを用意していることがある。エイリアス名を使えば、確実にそのアプリを起動できる。

アプリ実行エイリアス名の確認(2) アプリ実行エイリアス名の確認(2)
例えばWSL上にインストールされている各Linuxディストリビューションは、debian.exeやubuntu1804.exeというエイリアス名を持っているので、この名前で常に起動できる。だがエイリアス名を持つアプリはそう多くない。複数のアプリが同じエイリアス名を持っていて衝突している場合は、特定のアプリのエイリアスをオフ(無効)にできる。

 特定のアプリを確実に起動できるエイリアス機能であるが、この画面から分かるように、エイリアス名を持っているアプリはあまりない。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。