-
Notifications
You must be signed in to change notification settings - Fork 0
MS_ProxySettings
-
TOP > インフラストラクチャ > Windows > Windows OSの基礎的トピック
- 環境変数の設定方法
- プロキシの設定方法
- インターネット・オプションから設定する。
- インターネット・オプションは、以下から起動可能。
- 「ネットワークとインターネット」から起動する。
- 「コントロール・パネル」から起動する。
- 「Windows の設定」から起動する。
- 直接起動する。
-
IEやEdge、ChromeなどのブラウザのGUIから。
-
「ファイル名を指定して実行」から。
inetcpl.cpl
-
- 「ネットワークとインターネット」から起動する。
インターネット・オプションは非推奨の流れ。
(IEがシステム標準でなくなるので、別途システム標準を用意した感じ)
GUIで設定された認証プロキシの認証情報は「資格情報マネージャー」に設定される。
Linuxの場合と同様に環境変数の値を設定し、コレを読む。
- CUIは資格情報マネージャーが使用できないので事前に仕込む必要がある。
- 各種、クロスプラットフォーム化(Linux発CLIツールのWindows版の普及)の移植コストの観点から、このケースが増えてきている。
- SETコマンド
-
認証なし
set http_proxy=http://<HOSTNAME>:<PORTNUMBER> set https_proxy=%http_proxy% -
認証あり
set http_proxy=http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER> set https_proxy=%http_proxy%
-
- SETXコマンド
-
認証なし
setx http_proxy http://<HOSTNAME>:<PORTNUMBER> setx https_proxy %http_proxy% -
認証あり
setx http_proxy http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER> setx https_proxy %http_proxy%
-
移行メモ(誤記): 原文の SETX の例は
setx https_proxy=%http_proxy%と=付きで書かれていたが、SETX の構文はsetx 変数名 値(=は不要)。 誤記と解して=を除いた。
- 基本的には、CMDと同じ
-
認証なし
$env:http_proxy = "http://<HOSTNAME>:<PORTNUMBER>" $env:https_proxy = $env:http_proxy
-
認証あり
$env:http_proxy = "http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER>" $env:https_proxy = $env:http_proxy
-
- モノによってはプログラマブル(
http_proxyを使用しないプロダクト)-
System.Net.WebProxy の例
$user = "<USERID>" $proxyhost = "<HOSTNAME>:<PORTNUMBER>" $proxyaddress = "http://$($proxyhost)/" $creds = New-Object System.Management.Automation.PSCredential $user, $password_secure $proxy = New-Object System.Net.WebProxy $proxyaddress $proxy.Credentials = $creds
移行メモ: 原文のサンプルは
$passwordを定義しながらPSCredentialには$password_secureを渡しており、 そのままでは動作しない(PSCredentialの第2引数は SecureString)。 未定義の$password行を除いたうえで原文の構造は残した。 実際に使う際は$password_secure = ConvertTo-SecureString "<PASSWORD>" -AsPlainText -Force等で SecureString を用意する必要がある。 -
Get-Credential の例
-
IE proxy にプロキシの設定をする。
-
PowerShellプロンプトを起動したら、プロキシの認証情報(ユーザーIDとパスワード)を入力する。
$cre = Get-Credential # popup画面が開くのでプロキシの認証情報を入力する。 [System.Net.WebRequest]::DefaultWebProxy.Credentials = $cre # PowerShellプロセスのDefaultWebProxyの認証情報として設定する。
-
PowerShell のプロファイル機構を使用し、前述の設定を自動化すると便利になるらしい。
-
-
- 裏で、以下が自動で使用される。
- インターネット・オプション
- ネットワークとインターネット > プロキシ
- 資格情報マネージャー
- 参考
-
以下は、GitのCUI例
git config --global http.proxy http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER> git config --global https.proxy http://<USERID>:<PASSWORD>@<HOSTNAME>:<PORTNUMBER>
補足(セキュリティ): 環境変数や
git configに パスワードを平文で埋め込む方式は、プロセス一覧や設定ファイルから漏れうる。 可能なら統合 Windows 認証や資格情報マネージャー、 あるいは認証不要のプロキシ経路を検討する。
Tags: Windows
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。