VPN接続が成功した後、W10で自動「ルート」コマンドを実行しようとしています。私はこの短い説明に基づいて試してみました here これはW7用ですが、とても似ているようですが、動作させることができません。
私が調査したところ、Windowsイベント20225はW10(RAS接続確立)でも同じです。これは正しい...なぜrouteコマンドをトリガーしないのですか? VPNに接続した後、RasClientをソースとする20225イベントをアプリケーションイベントビューアで確認できます。
もちろん、このすべてを試す前に、routeコマンドで-p
パラメータを使用して「永続的に」ルートを作成しようとしましたが、このルートがすべてに追加されたときにVPNインターフェイスが存在しないため、機能しませんブートなので、有効なオプションではありません。したがって、スケジュールする必要があります。
昇格された特権でタスクを実行し、同じ結果を得て、[昇格された特権で実行]チェックボックスもマークしました。タスクは「開始されていません」と表示されます。そして、手動で起動しようとすると、「タスクスケジューラサービスは利用できません。タスクスケジューラはサービスに再接続しようとします」と表示されます。しかし、タスクスケジューラは正常に機能しています。他のタスクは手動でスケジュールまたは実行でき、機能しています。
誰かがこれを成功させましたか?
[〜#〜] edit [〜#〜]「基本」を「カスタム」に変更するためにトリガー部分を変更しようとし、XPathを配置しましたイベントIDを検索するXMLフィールドのフィルター:
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[(EventID=20225)]]</Select>
</Query>
</QueryList>
どちらもうまくいきませんでした。
問題は同じです。タスクは「起動されていません」と表示されます。
EDIT2イベントビューアで、VPN接続(id 20225)が成功した後、常に関連する別のイベント(id 900)が常にあることに気付きました。 ..多分すべてが設定されていますが、何かがトリガーをブロックしています...わかりません。このスクリーンショットを参照してください(申し訳ありませんが、スクリーンショットはスペイン語です):
ようやくそれを機能させることができなかった...だから、悲しいことに代替案を探すことにしました。チャームのように機能するrasdialを使用してバッチファイルを作成しました。唯一の「問題」は、ルートコマンドを昇格された特権で起動する必要があることです。これは、runas
に/savedcred
引数を付けて、パスワードを1回だけ要求し、その後自動的に機能するようにするためです。次に、vpnの場合、パスワードを(平文で!)入力するか、set mypass="*"
を残して毎回パスワードを要求することができます。
これが私のコードです:
@echo off
cls
echo.
REM put your VPN connection name here
set myvpn="Your VPN name"
REM put your user here
set myuser="foo"
REM put your pass here. Leave * for asking
set mypass="testpass"
REM put your win admin user here
set winadmin="administrator"
REM put your network route here
set network="192.168.8.0"
REM put your network mask here
set mask="255.255.255.0"
REM put your gateway mask here
set gateway="192.168.1.1"
ipconfig | find /i %myvpn% > nul 2>&1
if %ERRORLEVEL% == 0 (
echo "VPN already connected. Disconnecting..."
echo.
rasdial %myvpn% /disconnect
runas.exe /user:%winadmin% /savedcred "route delete %network% mask %mask% %gateway%"
) else if %ERRORLEVEL% == 1 (
echo "VPN not connected. Connecting..."
echo.
rasdial %myvpn% %myuser% %mypass%
runas.exe /user:%winadmin% /savedcred "route add %network% mask %mask% %gateway%"
)
これが誰かのお役に立てば幸いです。
Win 10では、Powershellには、VPN接続にルートを追加し、VPNが切断されたときにルートを再度削除するコマンドレットがあります: Add-VpnConnectionRoute 。インターフェイスIDを指定しなくても機能します。
基本的な構文は次のとおりです。
Add-VpnConnectionRoute -ConnectionName "VPN接続名" -DestinationPrefix 10.0.0.0/16
このコマンドを入力すると、VPNの接続/切断時にルートが自動的に作成/削除されます。