ストア形式といえば、忘れ去れてている感がある Microsoft Store ですが、現状ではサン土木すで制限された UWP アプリの他にネイティブ Windows アプリを登録できます。
UWP アプリは、「UWP」は「ユニバーサル Windows プラットフォーム」の略で、iPhone の App Store や Android の Google Play で配布されているアプリのように、安全にダウンロード&インストールしたのち、安全にプログラムが実行される(ユーザーがアプリの権限を不許可にしたりして制限ができるなど)アプリのことです。Windows 8 からの Microsoft 肝いり企画だったわけですが、Mobile Windows の廃止により、その価値は激減しています。
実行ファイルを配布するときに、どれを選ぶのかがややこしいのですが、
- ストアでUWPアプリ
一番制限がきついパターンだが、一番安全に配布できる - ストアでWindows アプリ
一応セキュリティ審査/署名があるが、実行はネイティブなので、UWP アプリより少し制限が緩い - インストーラーを作って配布
従来の一般的な配布。ただし、ストアよりも目に惹かれないので、できればストア配布を推奨…とされる - EXEファイルを直接配布
社内での配布の場合はこれで十分なことが多い。
久しく制限のきつい開発環境≒大手IT会社のハコヅメ環境をやっていないので、今の実情はわからないのですが、社内でツールの制限をかけるときに「何処からダウンロードするのか?」「どのツールを使うのか?」が求めらえるところでしょう。
例えば Line Desktop は Windows アプリ
Microsoft Store で「Line」を検索すると「LINE Desktop」がでてきます。このアプリは従来ならば UWP アプリで作るところですが、このアプリはネイティブの Windows アプリです。
判別が難しいのが難点なのですが、追加情報のところの「このアプリでは次のことができます」の中で「すべてのシステムリソースを使用する」となっていると、ネイティブな Windows アプリです。
一見すると、このアプリが Windows の秘密機能をあれこれやってキーロガーとか個人情報とかを抜きとるように見えますが(実際、できるんだけど)、実はそうではありません。ネイティブの Windows アプリなので「特に制限されてない」だけです。制限はされていませんが、一般的な Windows アプリと同様に、Administor 権限とか System 権限が必要なものは、それが使えるユーザー(管理ユーザー)でしか動きません。
一方で電卓アプリは UWP アプリ
一方で電卓アプリは、UWP アプリとして登録されています。
同じように機能の制限を見ると、「インターネット接続にアクセスする」ことだけが許可されています。
この文言は非常に解り辛いのですが、
- 「すべてのシステムリソースを使用する」の表示があれば、Windows アプリ
- それ以外の制限が書いてあれば、UWP アプリ
という違いがあります。前述した通り、UWP アプリとして作られている電卓アプリのほうが安全です。
プロセスを比較する
タスクマネージャで両者のプロセスを見ていきましょう。
LINE Desktop の場合は、各種のプロエスが動いています。
プロセスのプロパティを見ると、「C:\Users\masuda\AppData\Local\LINE\bin\current」のような場所で動いています。
エクスプローラーでフォルダーを見ると、Qt フレームワークを使って書かれていることがわかります。他にも DLL があって、一般的な Windows アプリと同じです。
同じように「電卓」をみてみましょう。
プロパティを見てみると、「C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_11.2405.2.0_x64__8wekyb3d8bbwe」のように、C:\Program Files\WindowsApps フォルダーの配下にアプリケーションが配置されています。
この WindowsApps フォルダーがサンドボックスの役割をしています。このフォルダーは閲覧が制限されていて Powershell などを管理者モードにしないと見ることができません。
ls コマンドなどで、インストールされているアプリの正式名を知ることができます。このそれぞれのフォルダーに UWP アプリの実体が含まれています。
ためしに Temas のフォルダーを見ていきましょう。
この中で使われている DLL や JS コードなどを見ることで、ああ JavaScript で作られているな、とか判断したりするわけです。