Bar

Windows 10 VPN接続後、ローカルのデフォルト ゲートウェイを利用する方法

以前投稿した記事「VPN接続後、ローカルのデフォルト ゲートウェイを利用したい場合の対処法」は、GUIから設定します。

同方法をWindows 10で行おうとしたところ、全く機能しない事が分かり、かなり困っておりまして・・・

今回は、Windows 10でVPN接続後、ローカルのデフォルト ゲートウェイを利用する方法をメモ。
設定はPowerShell を使います。

2015.10.28 追記
Windows 10 Build 10565では、ローカルのデフォルト ゲートウェイが利用できます。
Windows 10 Build 10565ではVPN接続設定が地味に改善されました

Windows 10ではVPNアダプターの設定変更ができない

今日現在の現象です。
※今後改善されるかもしれません。

Windows 10のVPNアダプターのプロパティを開き、[ネットワーク]タブを選択します。
VPN接続後のデフォルト ゲートウェイを変更するにはTCP/IPv4のプロパティを開かなくてはなりませんが、Windows 10ではなぜかプロパティを開く事ができません

この現象はWindows フィードバックで他のユーザーさんもフィードバックしているので、私の環境固有の問題ではなさそうです。

PowerShell スクリプト

そこで、PowerShellのSet-VpnConnection コマンドレットを使用します。
ここで大切なのは、-SplitTunneling パラメーターをTrueにする事です。
Get-VpnConnection -Name <VPN接続プロファイル名> | Set-VpnConnection -SplitTunneling:$true

スクリプトを実行する前後のルート テーブルを確認

上記スクリプトを実行する前は、リモート先(192.168.11.0/24)が優先になっています。
そのため、nslookup コマンドで名前解決をするとリモート先のDNSサーバーから応答がありました。

スクリプトを実行してみましょう。
今度は、ローカル側(192.168.222.0/24)が優先になりました。
先ほどと同じようにnslookupコマンドを実行すると、ローカルのDNSサーバーから応答がありました。

結果からも、Set-VpnConnection コマンドレットの-SplitTunneling パラメーターを変更する事で解決できる事が分かりました。

今後改善されると思いますが、今すぐ何とかしたい方は参考にしてください。
元に戻す方法
リモートのデフォルト ゲートウェイへ戻したい場合は下記スクリプトを実行してください。
Get-VpnConnection -Name <VPN接続プロファイル名> | Set-VpnConnection -SplitTunneling:$false