「プロキシ経由中にWindows Updateや、OSのライセンス認証が失敗してしまい困っている」
「直接接続をしようにも、プロキシによる接続が必須の組織環境のため、どうしたらいいかわからない」
という方に向けた記事です。
目次
プロキシ経由中に各種認証に失敗する場合どうする?
プロキシサーバー経由でのネット接続時に、インターネットオプションによるプロキシ設定をしている状態の場合は、各種認証(Windows Updateや、OSのライセンス認証)に失敗するケースがあります。
プロキシサーバー経由での接続を使用せず、直接接続すれば認証できますが、会社や学校などの場合、プロキシが必須な環境もあるため、そのような場合には直接接続で解決というわけにはいきませんよね。
そこで、コマンドプロンプトによるWinHTTPプロキシ設定での解決法を紹介します。
そもそも認証失敗の原因は?
インターネットオプションにて設定したプロキシ情報は、Internet ExplorerやChrome、Firefoxなどのブラウザ上でのみ設定が反映されます。
それに対して、WinHTTPにて設定したプロキシ情報は、WindowsUpdateや、各種認証などで使用されます。
このポイントさえ押さえておけば、「インターネットオプションでプロキシ設定したのに認証が通らない… なぜだ?」ということもなくなります。
インターネットオプションではなく、WinHTTPでのプロキシ設定を行う
WinHTTPプロキシを設定するには、コマンドプロンプトでの作業が必要となります。
まずは、コマンドプロンプトを呼び出しましょう。
Windowsキー + R を押すと「ファイル名を指定して実行」ウィンドウが出現しますので、その入力欄に「cmd」と入力してEnterキーを押せばコマンドプロンプトを起動できるのですが、今回の設定には管理者権限でコマンドプロンプトを実行する必要があります。
ですので、「ファイル名を指定して実行」ウィンドウに「cmd」と入力し、
Ctrl + Shift + Enter キーを押して、コマンドプロンプトを管理者権限で起動してください。
現在のプロキシ設定を確認するコマンド
上記の方法でコマンドプロンプトを呼び出したら、
netsh
とコマンドを入力してEnterキーを押します。
するとコマンドプロンプトの > の左側の文字が「netsh」に変化しますので、それに続けて
winhttp
とコマンドを入力してEnterキーを押します。
これでコマンドプロンプトの > の左側の文字が「netsh winhttp」に変化しますので、
ここで
show proxy
とコマンドを入力してEnterキーを押せば、WinHTTPプロキシ情報が表示されます。
もしプロキシを経由しておらず、直接接続している場合には、上記の画像のように
現在の WinHTTP プロキシ設定:
直接アクセス(プロキシ サーバーなし)。
と表示されます。
コマンドプロンプトだけでなく、Windows Power Shellからでも同様の操作が可能です。
Windows Power Shell(ウィンドウズ パワーシェル)は、マイクロソフトにより開発された「拡張可能なコマンドラインインターフェイス」で、Windows7以降に標準で搭載されている。
オブジェクト指向に基づいた設計がされている。
コマンドプロンプトでできることはほぼ可能なため、コマンドプロンプトの上位互換と言える。
コマンドプロンプトと比較した場合のメリットとしては、
・オブジェクト指向型のため、データの受け渡しがテキストに変換されることなくそのまま行える
・ファイルシステムなどの階層的データ構造の処理が可能
・レジストリへのアクセスが可能
・各種処理の自動化が可能
Windows Power Shellの起動方法その1(キーボードだけで起動):
Windowsキー + R を押すと「ファイル名を指定して実行」ウィンドウが出現しますので、その入力欄に「powershell」と入力して、Ctrl + Shift + Enterキーを押せばWindows Power Shellを管理者権限で起動できます。
Windows Power Shellの起動方法その2(Windows10にて、マウスで起動):
スタートボタンをクリックし、メニューを下にスクロールして「W」の項目まで移動します。
「Windows PowerShell」をクリックするとメニューが展開され、各種Windows PowerShellが出てきますので、お好きなものを右クリックしてから、「管理者として実行する」をクリックします。
・Windows PowerShell
(64bit版)
・Windows PowerShell(x86)
(32bit版)
・Windows PowerShell ISE
(Windows PowerShell専用の総合開発環境。64bit版)
ISEは、PowerShellスクリプトやモジュールを記述可能な専用のコードエディタおよび実行環境のほか、デバッグ環境等を統合したGUI環境です。下記32bit版も同様。
・Windows PowerShell ISE(x86)
(Windows PowerShell専用の総合開発環境。32bit版)
また、コマンドプロンプトやWindows Power Shellいずれかのコマンドラインインターフェイスを起動したあと、階層をたどらずに
netsh winhttp show proxy
と入力してEnterキーを押すという方法もあります。
好きなほうのやり方でプロキシ設定を確認してみましょう。
プロキシ設定をリセットするコマンド
WinHTTPプロキシの設定を初期化したい場合には、コマンドプロンプトにて、
netsh winhttp reset proxy
と入力してEnterキーを押せば、WinHTTPプロキシの設定が初期化されます。
あらかじめ netsh や winhttp コマンドで階層を潜っていた場合には、
reset proxy
とだけ入力する必要があります。
コマンドプロンプトやWindows Power Shellで階層を潜っている場合、フルで「netsh winhttp reset proxy」と入力すると、「次のコマンドは見つかりませんでした」とエラーになりますので注意です。
長すぎるコマンドは不要! 最も簡単な設定方法はコレでOK
まず、IEのインターネットオプションでプロキシ設定をします。(すでにしてある場合は、そのままでOKです)
そして、コマンドプロンプトを管理者権限で実行し、下記のコマンドを入力してEnterキーを押します。
netsh winhttp import proxy source=ie
これで、IEのインターネットオプションでのプロキシ設定が、そのまま認証用にも有効になります。
まとめ
・IEのインターネットオプションで設定したプロキシ情報は、認証には適用されるエラーとなる
・コマンドプロンプトを管理者権限で実行し、上記の設定情報をWinHTTPプロキシ設定へとインポートすれば認証が可能となる
これだけ押さえておけば困ることは無いはずですので、ぜひ活用してみてください!
あわせて読みたい記事
コマンドプロンプト(Command Prompt)は、コマンド入力によって命令を実行するシステムツール。各種Windowsに標準で搭載されている。
CUI(Character User Interface)またはCLI(Command Line Interface)と呼ばれる、文字だけの画面で実行される。
情報の提示や操作の受け付けも、原則として文字だけで扱われる。
CUIの対になるインターフェイスとしては、GUI(Graphical User Interface)がある。
WindowsやMacなどで、みなさんが通常マウスで操作しているおなじみの画面がGUIである。