こんにちは、マイクロソフトマンです。
Windows10でMicrosoft StoreでアプリのInstallボタンをクリックしても、ダウンロードできない時の解決方法を紹介します。
本記事は、会社でMicorosoft Storeからアプリをダウンロードしようとすると失敗する人に向けて書いています。家からインターネットに接続している方については、この記事の内容ではおそらく解決しませんのでご注意ください。
会社の場合、インターネットに接続するときはプロキシサーバを経由しないとつながらないことが多いです。 Micorosoft Storeを利用するときも同じで、インターネット通信をプロキシサーバ経由にすれば、ダウンロードできるようになります。
プロキシサーバはインターネットへの接続を代わりに行うサーバのことです。ネット接続するPCのプライベートIPアドレスを隠蔽したり、アクセス先のログ保存、アクセスしたページのキャッシュ保持によるアクセス速度の向上などを目的に導入されています。
それでは、ストアアプリのダウンロードをプロキシサーバ経由にする設定方法を説明していきます。
Microsoft Storeからアプリがダウンロードできないときの解決方法
Micorosoft Storeのインターネット通信をプロキシ経由の通信にすれば、Microsoft Storeからアプリがダウンロードできない問題が解決します。
まず、コマンドプロンプトを管理者で起動します。管理者で起動するには、コマンドプロンプトの右クリックメニューから「管理者として実行」を選択します。
コマンドプロンプトが起動したら以下のコマンドを実行します。
netsh winhttp import proxy source=ie
これは、IEに設定されているプロキシの設定をWinHTTPに反映するコマンドになります。WinHTTPについては次の章で詳しく説明します。
プロキシの設定を行った後、再度Microsoft Storeからアプリをダウンロードしてみてください。おそらく、ダウンロードできるはずです。
ちなみにコマンドを打った時に、「プロキシ設定の書き込み中にエラーが発生しました。(5) アクセスが拒否されました。」のエラーが発生した場合は、コマンドプロンプトが管理者モードで起動していません。管理者モードで起動してから、コマンドを実行しましょう。
Microsoft Storeでアプリがダウンロードできない原因
通常、みなさんがインターネットを使用するときはブラウザを利用すると思います。
しかし、Microsoft Storeでダウンロードするときはブラウザのプロキシ設定は使われず、WinHTTPのプロキシ設定が使われます。ところが、WinHTTPのプロキシ設定がされていないので、Microsoft Storeでアプリがダウンロードできない問題が発生するのです。
とてもややこしいですよね。
そもそもWinHTTPってなんやねん!なんでブラウザとストアで設定が異なるの?同じ設定を使わない理由は何?と思われるのが普通の反応だと思います。
順番に説明します。
WinHTTPとは、Windowsを利用するプログラムがネットワークを介してHTTP通信をするときに使われるソフトウェアモジュール(部品)のことです。
Windowsで動くプログラムは、HTTP通信をするときに、ブラウザの機能を呼び出すことができません。そこでプログラムから使うことができる専用の機能として、WinHTTPが用意されています。
また、ブラウザはブラウザで、HTTP通信するための専用の機能をもっています。そしたら、ブラウザもWinHTTPを使えばいいじゃん?と思いませんか?
ここからは推測ですが、ブラウザはマルチプラットフォーム(Windows,Linux,Mac等)で動作させるように作るのが一般的なので、Windowsでしか使えないWinHTTPを利用せずに、どんなOSでも共通のインターフェースとなるように設計したのではないかと思います。
まとめ
Windows10でマイクロソフトのストアアプリがダウンロードできないときは、WinHTTPにプロキシの設定を行うことで、ダウンロードできるようになるという結論でした。
また、ブラウザではインターネットに接続できていると思いますので、ブラウザのプロキシ設定をWinHTTPに反映するためのコマンドを紹介しました。
もし、コマンドを打ってもストアアプリがダウンロードできない場合は、WinHTTPのプロキシ設定を以下のコマンドで確認してみてください。
netsh winhttp show proxy
WinHTTPに設定したときに、設定値が一緒に出力されますが、その結果と同じになるので、あまり意味はないかもしれません・・。
また、IEのプロキシ設定をコピーするのではなく、コマンドで直接設定する場合は以下のコマンドを実行します。参考情報として載せておきます。
netsh winhttp set proxy proxy-server=”[プロキシサーバIP]:[ポート番号]” bypass-list=”*.[ドメイン名]”
<実行コマンドの例>
netsh winhttp set proxy proxy-server=”10.10.255.1:8080″ bypass-list=”*.mydomain.local”
バイパスリストに設定するのは、プロキシサーバを介さずにインターネットにアクセスさせるドメインの一覧です。必要に応じて設定します。複数ある場合は「;」で区切り、全体を「”」で囲みます。