ネットワーク環境に合わせてプロキシ設定を変更する機会は、企業ネットワークや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
タスクスケジューラを使う方法
- タスクスケジューラを開く
- 「タスクの作成」を選択
- 「トリガー」タブで「ログオン時」や「ネットワーク接続時」などを設定
- 「操作」タブで
powershell.exe
に.ps1
ファイルを指定
注意点と補足
netsh winhttp
の設定は、主にシステムサービスやコマンドラインベースのアプリケーションに影響します。GUIアプリ(ブラウザなど)は影響を受けません。- PowerShellでレジストリを書き換える場合は、誤操作に注意が必要です。バックアップを取るか、内容をよく理解してから実行してください。
- Windows 11ではMicrosoft Edgeなどが自動プロキシ検出(WPAD)を優先する設定もあるため、意図通りに動作しない場合はそちらも見直しましょう。
まとめ
Windows 11でのプロキシ設定は、netsh
やPowerShellを使えばコマンドベースで柔軟に管理できます。スクリプトによる切り替えや自動化を行えば、ネットワーク環境に応じたプロキシ制御が効率化され、管理者の負担を大幅に軽減できます。GUI操作に頼らず、コマンド操作を習得することで、より高度なネットワーク設定が可能になります。ぜひ実際に試して、使いこなしてみてください。