Windows Server 2016でプロキシサーバーを自動設定する手順です。Microsoft 365を使う時にプロキシが手動設定だと色々と困ったので自動設定しました。
自動設定手順
本記事ではWebサーバーにIISを使う事とします。DNSもWindows Serverのものを使います。
WebサーバーにMIMEタイプの追加
IISで「MIMEの種類」を開きます。

MIMEの種類の追加画面を開き、ファイル名の拡張子に「.dat」、MIMEの種類に「application/x-ns-proxy-autoconfig」と入力してOKをクリックします。

wpad.datの配置
IISのドキュメントルートにwpad.datファイルを置きます。

wpad.datの内容は要件次第ですが、例えばプライベートIPアドレスならプロキシを使うという条件なら以下のような感じになります。書き方はググれば色々出てくると思います。
1 2 3 4 5 6 7 8 9 10 |
function FindProxyForURL(url, host) { ip_addr = myIpAddress(); if (isInNet(ip_addr, "10.0.0.0", "255.0.0.0") || isInNet(ip_addr, "172.16.0.0", "255.240.0.0") || isInNet(ip_addr, "192.168.0.0", "255.255.0.0") ) { return "PROXY proxy.example.com:8080"; } return "DIRECT"; } |
DNSにAレコード追加
DNSマネージャーを開き任意のゾーンで「新しいホスト(AまたはAAAA)」を選択します。

名前は「wpad」にしてIPアドレスにはIISのIPアドレスを指定します。

グローバルクエリ禁止リストの変更
デフォルトだとwpadという名前の解決は禁止されているので解除します。以下コマンドで現在の設定を確認してみるとwpadがクエリ禁止のリストに載っています。
dnscmd localhost /info /globalqueryblocklist

解除する為に以下コマンドを実行します。
dnscmd localhost /config /globalqueryblocklist isatap
もう一度確認してみるとwpadが消えています。

ワークグループ環境でも自動設定する
ドメイン環境だと問題ないのですが、ワークグループ環境だと自動設定されません。ワークグループ環境でも自動設定が必要な場合は追加の設定をします。
プライマリDNSサフィックスの設定
これはパソコン側の設定になります。Windows10での設定例を示します。
システムのプロパティで「変更」ボタンをクリックします。

「詳細」ボタンをクリックします。

DNSサーバーのゾーン名と同じドメインを設定し、「OK」ボタンをクリックします。
