こんにちは。アスカクリエイション 石原です。
本日はWindows8ストアアプリのサイドローディングについて書きたいと思います。
ストアアプリでは基本的にストアからダウンロードしインストールする仕様となっており、従来のデスクトップアプリのように直接実行ファイルをコピーしセットアップすることができず、入手経路が制限されています。ストアアプリはMicrosoftで審査を経て掲載されるので品質の低いアプリや悪意あるアプリが混入しづらい点や、ユーザーがWeb上に点在するアプリを見つけ出さなくても、ストアで検索することで目的のアプリを入手することができるという面や、開発者にとっても自分のアプリを発信する場として、また、アップデートや収益、ユーザーからのレスポンスを管理できるという面で便利です。が、反面デメリットもあります。
社内システム等の限られた環境向けのアプリの場合、ストアに掲載したくないでしょうし掲載しても関係のないユーザーにはまったく無意味なアプリとなってしまいます。また、セキュリティ面で好ましくない場合もあるでしょう。
そのようなニーズの為にサイドローディングという手段があります。サイドローディングの手法を使うことでストア経由ではなくアプリのパッケージファイルを手動でインストールすることが出来ます。
しかし、サイドローディングが行えるシステム要件はかなり厳しいものとなっており一般ユーザーや中小企業が導入するには敷居の高い感が否めません。要件を以下に記載します。
・Windows8 Enterpriseで、グループポリシーで”信頼できるすべてのアプリのインストールを許可する”が有効になっているアクティブディレクトリドメインに参加していること。
・Windows8 Enterpriseでアクティブディレクトリドメインに参加していない環境ではサイドローディングプロダクトキーを購入し導入していること。
・Windows8 Pro、 RTではアクティブディレクトリドメインに参加しているかに関わらずサイドローディングプロダクトキーを購入し導入していること。
表にすると以下のようになります。
Windows 8 | Windows RT | Windows 8 Pro | Windows 8 Enterprise | |
---|---|---|---|---|
ドメイン環境 | 非サポート | 非サポート | サイドローディングプロダクトキー | グループポリシーで許可 |
非ドメイン環境 | 非サポート | サイドローディングプロダクトキー | サイドローディングプロダクトキー | サイドローディングプロダクトキー |
無印のWindows8ではサイドローディングは出来きません。また、サイドローディングプロダクトキーは一般ユーザーが個別に購入するこは出来ず、Microsoftとボリュームライセンス契約を結んでいなければ購入出来ません。Microsoftに問い合わせてみたところボリュームライセンス契約にはいくつかの形態がありますが、サイドローディングプロダクトキーが入手できる契約には最低57万7千円かかるそうです。Windows8 Enterpriseも一般販売されていませんから、いずれにしても企業でMicrosoftと契約を結ぶ必要があり、一般ユーザーや小規模オフィスで気軽に導入できるものではないようです。
通常運用で使用する場合は上記のような要件が必要ですが、実は開発者ライセンスというものがあり、Visual Studio 2012 for Windows8等をインストールすると取得できます。開発者ライセンスは一定期間で期限が切れ、更新する必要がありますが、一時的にサイドローディングが可能になります。開発中のアプリをローカル環境で動作確認、デバッグするための配慮と思われます。
開発者ライセンスを取得した環境で手動サイドローディングを試してみたので手順を紹介します。
Step1. アプリの作成時にサイドローディング用のパッケージを作成する必要があります。 Visual Studioで「ストア」メニューから「パッケージの作成」ウィザードにて「Windowsストアにアップロードするパッケージを作成しますか?」で「いいえ」を選択。
Step2. ルート証明書をインストールする必要があります。(実運用では信頼できる署名をアプリにバインドしておくべきで、本来この手順は不要のはずです)作成したパッケージフォルダ内(AppPackages)の.cerファイルを右クリックし「証明書のインストール」を選択。ウィザードにて「保存場所」→「ローカルコンピュータ」(「現在のユーザー」ではサイドローディングに失敗した)を選択。「次へ」をクリック「証明書をすべての次のストアに配置する」で「参照」をクリック「信頼されたルート証明書機関」を選択「次へ」をクリック。→完了。
Step3. 現在のユーザーのアプリとしてインストールするにはPowerShellを起動し以下のコマンドを実行します。
> import-module appx
> add-appxpackage "アプリのパス\アプリ名.appx"
もしくは、全ユーザー向けにプリインストールされているアプリのようにシステムイメージにインストールすることも出来ます。その場合はまず、ファイル名を指定して実行からgpedit.mscと入力しローカルグループポリシーエディタを起動し、「コンピュータの構成」→「管理者用テンプレート」→「Windowsコンポーネント」→「アプリパッケージの展開」→「信頼できるすべてのアプリのインストールを許可する」を「未構成」から「有効」に変更します。
PowerShellからgpupdateコマンドを実行し設定を反映させた後、PowerShellを管理者権限で起動し以下のコマンドを実行します。
> DISM /Online /Add-ProvisionedAppxPackage /PackagePath:"アプリのパス\アプリ名.appx" /skiplicense
手順は以上です。上記手順ではコマンドを打つ必要がありますがMicrosoftのWindows IntuneやSystem Center 2012 Configuration Manager SP1という製品を使うとGUIでサイドローディング環境を構築できるようです。