Windows 11でプロキシ設定をコマンドで操作する方法|netshとPowerShellを活用

ネットワーク環境に合わせてプロキシ設定を変更する機会は、企業ネットワークやVPNを使うユーザーにとって日常茶飯事です。Windows 11ではGUIからの設定が一般的ですが、コマンドラインでプロキシ設定を操作する方法も覚えておくと、スクリプトによる自動化やリモート操作時に大変便利です。本記事では、Windows 11でプロキシを設定・無効化・確認するための主要なコマンドを、netshおよびPowerShellを使って解説します。


Windows 11でプロキシ設定をコマンドで行うメリット

コマンドでの設定には以下のようなメリットがあります。

  • 迅速な変更が可能
    GUIを開いて設定するよりも素早く反映できます。
  • スクリプトによる自動化
    定期的に設定を切り替える場合など、バッチ処理やPowerShellスクリプトに組み込むことで手間を削減できます。
  • リモート操作やリカバリに有効
    GUIが使用できない環境でも、コマンドで設定が可能です。

とくにシステム管理者やネットワークトラブル対応を行う方には必須の知識といえるでしょう。


netshを使ったプロキシ設定方法

Windowsの古くからのコマンドであるnetshは、プロキシ設定にも対応しています。

プロキシを有効にするコマンド

netsh winhttp set proxy proxy-server="http=192.168.1.100:8080;https=192.168.1.100:8080"
  • 192.168.1.100:プロキシサーバーのIPアドレス
  • 8080:ポート番号

このコマンドを実行すると、WindowsのWinHTTP層に対してプロキシ設定が適用されます。

プロキシを無効にするコマンド

netsh winhttp reset proxy

プロキシ設定を解除し、直接接続に戻すコマンドです。

現在のプロキシ設定を確認

netsh winhttp show proxy

現在適用されているプロキシ設定の確認ができます。


PowerShellを使ったプロキシ設定方法

PowerShellを使うと、より柔軟なスクリプト制御が可能になります。ここではSet-ItemPropertyコマンドレットを使ってレジストリの書き換えによる方法を紹介します。

レジストリ経由でのプロキシ有効化

Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 1
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyServer -Value "192.168.1.100:8080"

この設定により、Internet Explorerおよび一部のアプリケーションが使うプロキシが有効になります。

プロキシの無効化

Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 0

プロキシ設定を無効化します。ProxyServerキーは削除しなくても問題ありませんが、明示的に削除することも可能です。

Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyServer

設定内容の確認

Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select-Object ProxyEnable, ProxyServer

現在の設定状況を確認するコマンドです。


環境に合わせたプロキシスクリプトの切り替え

PowerShellでは条件分岐によって、ネットワーク環境に応じた自動切り替えも可能です。

例:Wi-Fi名に応じてプロキシON/OFF

$ssid = netsh wlan show interfaces | Select-String 'SSID' | Select-Object -First 1
if ($ssid -like '*CompanyNet*') {
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 1
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyServer -Value "192.168.10.1:8080"
} else {
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name ProxyEnable -Value 0
}

このように、ネットワーク環境に応じた柔軟な設定切り替えがスクリプトで実現可能です。


スクリプトの自動実行に応用する方法

設定したスクリプトをログオン時に自動実行したい場合、以下の方法があります。

スタートアップフォルダに登録

作成した .ps1 ファイルのショートカットを以下のフォルダに配置します。

C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

タスクスケジューラを使う方法

  1. タスクスケジューラを開く
  2. 「タスクの作成」を選択
  3. 「トリガー」タブで「ログオン時」や「ネットワーク接続時」などを設定
  4. 「操作」タブでpowershell.exe.ps1ファイルを指定

注意点と補足

  • netsh winhttpの設定は、主にシステムサービスやコマンドラインベースのアプリケーションに影響します。GUIアプリ(ブラウザなど)は影響を受けません。
  • PowerShellでレジストリを書き換える場合は、誤操作に注意が必要です。バックアップを取るか、内容をよく理解してから実行してください。
  • Windows 11ではMicrosoft Edgeなどが自動プロキシ検出(WPAD)を優先する設定もあるため、意図通りに動作しない場合はそちらも見直しましょう。

まとめ

Windows 11でのプロキシ設定は、netshやPowerShellを使えばコマンドベースで柔軟に管理できます。スクリプトによる切り替えや自動化を行えば、ネットワーク環境に応じたプロキシ制御が効率化され、管理者の負担を大幅に軽減できます。GUI操作に頼らず、コマンド操作を習得することで、より高度なネットワーク設定が可能になります。ぜひ実際に試して、使いこなしてみてください。

タイトルとURLをコピーしました