こんにちはやまぱんです。
大昔に書こうとおもっていたWindowsのプロキシ設定について備忘録としてメモします。
Contents
Winhttp プロキシ
いわゆる windows update につかわれるプロキシ
Winhttp プロキシ 確認方法
cmd か PowerShellで下記コマンドを打てば確認可能。
netsh winhttp show proxy
WinInet プロキシ
いわゆるブラウザやOS設定でのプロキシ設定
下記それぞれにWinInetプロキシがある:レジストリの値で確認可能
- ユーザアカウント
- システムアカウント
- サービスアカウント(アプリケーションによっては専用のサービスアカウントができるのでそれ用に設定が必要、PowerShellで実施)
プロセスがどのアカウントで動いているか
どのプロセスがどのアカウントで動いているかは "タスクマネージャ"ー → "詳細" を表示すれば確認可能(下記の場合 vainf はユーザーアカウント、SYSTEMはシステムアカウント)
または、cmd
か PowerShell
で下記コマンドを打つことでも確認可能
tasklist -v
ユーザー名 N/A のものもタスクマネージャーで見るとSYSTEMとなっているプロセス。
*経験の浅いときにやってみるかーの精神で(普通にユーザーアカウントで)OSのプロキシ設定を開いて設定するとユーザーアカウントのプロキシ設定になる。
WinInetプロキシ 確認方法
(カレント)ユーザーアカウントのプロキシ設定確認
OSのプロキシ設定を確認するか、PowerShellで下記のコマンドを実行すれば可能
-
OSからの確認
- コマンドでの確認
$currentUserIESettings = Get-Item -Path 'Registry::HKEY_Current_User\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
Write-Host "ProxyEnable:" $($currentUserIESettings.GetValue('ProxyEnable'))
Write-Host "ProxyServer:" $($currentUserIESettings.GetValue('ProxyServer'))
Write-Host "ProxyOverride:" $($currentUserIESettings.GetValue('ProxyOverride'))
ProxyEnable: 0 なので無効になっている。
システムアカウントのプロキシ設定確認
$localSystemUserIESettings = Get-Item -Path 'Registry::HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
Write-Host "ProxyEnable:" $($localSystemUserIESettings.GetValue('ProxyEnable'))
Write-Host "ProxyServer:" $($localSystemUserIESettings.GetValue('ProxyServer'))
Write-Host "ProxyOverride:" $($localSystemUserIESettings.GetValue('ProxyOverride'))
サービスアカウントのプロキシ設定確認
これはものによるので割愛です。
下記参考にレジストリの値が分かれば同じようにだせるはず。
-
カレントユーザーアカウントのレジストリ
'Registry::HKEY_Current_User\Software\Microsoft\Windows\CurrentVersion\Internet Settings' - システムアカウントユーザーのレジストリ
'Registry::HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Internet Settings'