\r\n\r\n
Windows 10のPowerShellcmdletを使用すると、起動時に自動的にVPN接続をトリガーするアプリケーションを簡単に追加することができます。この作業を自動化することで、特定のアプリケーションを使用する際にVPNへの接続を意識する必要がなくなります。
PowerShell でこの機能を利用するには、まず、VPN サービスをまだ持っていない場合、コンピュータに追加する必要があります。
関連:WindowsでVPNに接続する方法
Windows 10 で VPN 接続を設定したら、PowerShell の昇格インスタンスを開く必要があります。そのためには、スタートボタンをクリックし、「Powershell」と入力します。Windows Powershell」を右クリックし、メニューから「管理者として実行」を選択します。
表示されたプロンプトで「はい」をクリックし、コンピュータへのアクセスを許可します。
PowerShellウィンドウに次のように入力し、< VPNConnection> と < AppPath> をそれぞれVPN接続名と使用するアプリケーションのファイルパスに置き換えてください。
Add-VpnConnectionTriggerApplication -Name "<VPNConnection>" –ApplicationID "<AppPath>"コマンドに反転カンマが含まれていることを確認する。
Enterキーを押してコマンドを実行します。powerShellは、分割トンネルがデフォルトで無効になっていることを警告します。続けて、この機能が自動的に起動する前に、確認し、有効にする必要があります。
プロンプトが表示されたら、"Y "と入力し、もう一度Enterキーを押して終了してください。
自動トリガーが手動で操作せずにVPNに接続するためには、分割トンネルが有効である必要があります。
アプリケーションがVPN起動のトリガーとなった場合、トンネルを分割することで、WindowsがすべてのネットワークトラフィックをVPN経由でルーティングするのを防ぐことができます。その代わり、トラフィックを分割し、リストアップされたアプリケーションからのデータのみがVPNを通過するようになります。
PowerShellでSet VpnConnection-Name "< VpnConnection>"-SplitTunneling$True と入力し、 < VpnConnection& を VPN の名前に置き換えてください。gt;(ここでもカンマは反転させたまま)、Enterキーを押します。
次に、誤ってアプリケーションを終了してしまい、接続を終了させたくない場合、タイムアウトバッファを設定して、アプリケーションを再起動させることができます。
PowerShellでSet VpnConnection-Name "< VpnConnection>"-IdleDisconnectSeconds< IdleSeconds>と入力し、押下してください。EnterキーVPNConnection> を接続名、< IdleSeconds> を接続が終了するまでの待ち時間(秒数)に置き換えてください。
これで、アプリケーションを閉じると、Windowsは10秒待って、VPN接続を終了させる。この数字は何度でもできますし、このステップを完全に省略することもできます。
どのアプリケーションがVPN接続開始のトリガーとして設定されているかを確認するには、いくつかの方法があります。PowerShellのコマンドレットを使うか、File Explorerで電話帳ファイルを編集することができます。
関連:PowerShellとWindowsコマンドプロンプトの違いについて
VPNが突然起動し、原因がわからない場合、以下のいずれかの方法で、どのアプリケーションが引き金になったかを調べることができます。
この方法を使うには、スタートボタンをクリックし、「Powershell」と入力します。Windows Powershell」を右クリックし、メニューから「管理者として実行」を選択します。
表示されたプロンプトで[はい]をクリックし、コンピュータへのアクセスを許可します。
PowerShellウィンドウで、以下のコマンドを入力し、< VPNConnection>をVPN接続の名前に置き換えて、Enterキーを押してください。
Get-VpnConnectionTrigger -ConnectionName <VPNConnection>この例では、このコマンドは、VPN接続 "VPN Canada "のトリガープロパティを取得し、以下のように表示します。
また、ファイルエクスプローラでダイヤルアフォンブックを記録しておくという方法もあります。テキストエディタで開くと、VPNを発動させたアプリケーションの一覧を見ることができます。
電話帳ファイルは、Windowsがリモートアクセス接続(RAS)を確立するために必要な情報を収集し、指定するための標準的な方法を提供します。このファイルには、IPアドレス、ポート、モデム設定、探している接続のきっかけとなったアプリケーションに関する情報などが含まれています。
まず、ファイルエクスプローラを開き、以下のディレクトリをアドレスバーに貼り付けますが、<User>を現在のユーザー名に置き換えてEnterキーを押してください。
C:\Users\<User>\AppData\Roaming\Microsoft\Network\Connecti***\Pbk**.pbkを "右クリック "し、ファイルを開くテキストエディターを選択します。
この1つのファイルには、お使いのコンピュータ上のすべてのVPN接続が含まれているため、複数のVPNを使用している場合は、必要なアプリケーションを見つけるために慎重にフィルタリングする必要があるかもしれません。各アプリケーションは、その直接のファイルパスとして、"ClassicApplicationIDs "関数に格納されます。
幸いなことに、各アプリケーションをスクロールするのが面倒な場合は、ほとんどのテキストエディタに検索機能がついています。Ctrl+Fキーを押し、テキストフィールドに「ClassicApplicationID」と入力し、Enterキーを押します。
特定のアプリケーションの起動時に誤って誤ったアプリケーションが追加された場合や、VPNをトリガーさせる必要がなくなった場合、PowerShellの同様のコマンドレットを使用して、これらを削除することが可能です。
関連:ギークスクール:PowerShellでコマンドレットを使いこなそう
VPNの自動トリガーを解除するには、スタートボタンをクリックし、「Powershell」と入力してください。Windows Powershell」を右クリックし、メニューから「管理者として実行」を選択します。
表示されたプロンプトで「はい」をクリックし、コンピュータへのアクセスを許可します。
PowerShellウィンドウに以下のように入力します。ただし、< VPNConnection> と < AppPath> はそれぞれ、VPN接続名とアプリケーションへのパスに置き換えてください。
Remove-VpnConnectionTriggerApplication -Name "<VPNConnection>" –ApplicationID "<AppPath>"PowerShellは、自動トリガーのリストからアプリケーションを削除することを確認するよう求めます。"Y "と入力してEnterキーを押します。
リストから削除したいアプリケーションごとに、この手順を繰り返します。
これで、指定したアプリケーションを起動すると、WindowsがVPN接続を開始し、サードパーティのソフトウェアを使用せずにトラフィックを送信するようになります。