自動VPN接続から消された「DNSトリガー」を復活してみた山市良のうぃんどうず日記(74)(1/2 ページ)

Windows 8.1から利用可能になった「自動VPN接続」をご存じでしょうか。久しぶりに試してみたところ、以前はできていたことが、できなくなっていることに気が付きました。皆さん、知っていましたか?

» 2016年09月23日 05時00分 公開
[山市良テクニカルライター]
「山市良のうぃんどうず日記」のインデックス

連載目次

「自動VPN接続(Auto-Triggered VPN)」とは?

 そもそも、Windows 8.1で利用できた「自動VPN接続(Auto-Triggered VPN)」を知らない人も多いと思うので、簡単な設定と動作を解説します。Windows 10でも同じように利用できます。さらに詳しくは、以下のマイクロソフトのブログ記事をご覧ください。

 例えば、特定のデスクトップアプリケーションやストアアプリを開始したときに、VPN(Virtual Private Network)接続を自動開始するには、VPN接続を作成後、Windows PowerShellを使って次のように自動VPN接続を構成します。

Set-VPNConnection -ConnectionName "VPN 接続" -SplitTunneling $true
Add-VPNConnectionTriggerApplication -ConnectionName "VPN 接続" -ApplicationId C:\Windows\System32\mstsc.exe", "Microsoft.RemoteDesktop_8wekyb3d8bbwe"

 この例は、「VPN 接続」という名前のVPN接続に対して、デスクトップアプリケーションの「リモートデスクトップ接続」(Mstsc.exe)とストアアプリの「リモートデスクトップ」をトリガーに設定している例です。デスクトップアプリケーションは実行可能ファイルのフルパス、ストアアプリは「Get-AppxPackage」コマンドレットの実行結果の「ProductFamilyName」で指定します。

 設定はこれだけで完了です。トリガーとして指定したデスクトップアプリケーションやストアアプリを起動すると、VPN接続が自動的に開始されます(画面1)。

画面1 画面1 トリガーに指定したアプリケーションを開始すると、VPN接続が自動的に開始する

 アプリケーションのトリガーは、「Add-VPNConnectionTriggerApplication」コマンドレットで追加できます。また、トリガーを解除するには、「Remove-VPNConnectionTriggerApplication」コマンドレットを使用します。

 企業で利用するモバイルクライアントなどは、社外のモバイル環境ではVPN接続を、社内ではネットワークに直接接続していると思います。その場合、アプリケーションを開始するたびに不要なVPN接続が試行されるのを防止するために、以下のように、信頼されたネットワークとして「DNSサフィックス」を登録しておくことができます。

Add-VPNConnectionTriggerTrustedNetwork -ConnectionName "VPN 接続" -DNSSuffix demo.contoso.com

 信頼されたDNSサフィックスを登録すると、クライアントコンピュータの物理ネットワークアダプターがそのDNSサフィックスを持つネットワークに接続されたことを認識すると、自動VPN接続を行いません(画面2画面3)。

画面2 画面2 信頼されたネットワークを登録しておけば、そのネットワークに接続されているときには自動VPN接続がトリガーされなくなる
画面3 画面3 信頼されたネットワークから外れると、自動VPN接続がトリガーされる(自動VPN接続がトリガーされたことを分かりやすくするために資格情報を未入力にしています)

 信頼されたネットワークは、「Add-VPNConnectionTriggerTrustedNetwork」コマンドレットで追加できます。また、信頼されたネットワークを削除するには、「Remove0VPNConnectionTriggerTrustedNetwork」コマンドレットを使用します。

 これが自動VPN接続の設定と動作です。なお、自動VPN接続は自動的に切断されません。VPN接続を自動的に切断したい場合は、以下のようにVPN接続に切断までのアイドルタイムアウトを設定します。

Set-VpnConnection -Name "VPN 接続" -IdleDisconnectSeconds 60

かつては利用できた「DNSトリガー」

 実は、自動VPN接続にはもう1つ、「DNSトリガー」というものがありました。DNSトリガーは、アプリケーションが“特定のDNSサフィックスにアクセスしようとしたとき”に、自動VPN接続を開始する機能です。

 DNSトリガーの作成には、「Add-VPNConnectionTriggerDNSConfiguration」コマンドレットを使用します。「-DNSIPAddress」パラメーターには接続先のネットワークのDNS(Domain Name System)サーバのIPアドレスを指定します。「-DNSIPAddress」パラメーターを省略した場合は、「Add-VPNConnectionTriggerTrustedNetwork」コマンドレットで追加する信頼されたネットワークと同じ扱い(自動VPN接続をトリガーしない)になります。

Add-VPNConnectionTriggerDNSConfiguration -ConnectionName "VPN 接続" -DNSSuffix ad.local -DNSIPAddress 10.0.0.101

 「Add-VPNConnectionTriggerDNSConfiguration」コマンドレットはWindows 8.1やWindows 10に存在しますが、現在は期待通りに機能しません(画面4)。Windows 8.1登場当初は、DNSトリガーは確かに動作していました。

画面4 画面4 以前は使えていたDNSトリガーがなぜか機能しなくなっていた

 現在、マイクロソフトの公式ドキュメントから、「Add-VPNConnectionTriggerDNSConfiguration」コマンドレットに関連する情報は削除されてしまったようですが、以下のブログ記事のように一部は残っています。また、インターネット上には、DNSトリガーを解説する一般のブログ記事やメディア記事が筆者のものを含め、すぐに見つかります。

 以前は、以下の公式ドキュメントにも「Add-VPNConnectionTriggerDNSConfiguration」コマンドレットはありましたが、現在はありません。あるWebのアーカイブサービスを利用して過去にさかのぼってみたところ、2014年5月30日のサイト更新で消えたようです。時期的には、Windows 8.1向けの更新プログラム「Windows 8.1 Update(2919355)」がリリースされた直後です(画面5)。

画面5 画面5 公式ドキュメントから「Add-VPNConnectionTriggerDNSConfiguration」コマンドレットの項目が消えた(画面左は2014年2月のアーカイブ、画面右は現在)

 試しに、Windows 8.1 Update適用済みのメディアでクリーンインストールを行い、DNSトリガーを実行してみました。予想通り、DNSトリガーは機能しなくなっていました。Windows 8.1 Update、あるいはそれ以前の更新プログラムでDNSトリガーの機能は消されてしまったようです。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。