VPN が繋がらなくなったので devcon 対処する

久しぶりに VPN につなげてみたら繋がらない…ので復旧させました。その作業のメモ書きです。

色々検索すると Windows XP/7 でもある現象で、突然 VPN に繋がらなくなります。手元の環境が Windows 8.1 なので結構探しました。

現象として、VPN が接続せずに、ネットワーク接続で「プロパティ」を見ようと思っても予期せぬエラーが出てプロパティウィンドウがでません。手元の2台の PC が同時になっていたので、先日入れた Bluetooth のドライバーかと思って復旧させてみたのですが、直りませんでした。

image

いくつか調べていくと、サービスで「Remote Access Connection Manager」が動いていないことが原因なのがわかりました。

image

説明にある通り「このコンピューターからインターネットや他のリモート ネットワークへのダイヤルアップ接続と仮想プライベート ネットワーク (VPN) 接続を管理します。このサービスを無効にすると、このサービスに明示的に依存しているサービスは開始できません。」とのことで、VPN に関わっています。これを、手動で開始しようとしたのですが、なかなか起動せずに、途中で「開始中」のまま落ちてしまっています。

image

別の PC で試してみたところ、すんなり立ち上げるので、この2台の PC がおかしいようです。

デバイスマネージャを見ると、「WAN ミニポート(PPTP)」などがあるのですが、これが正しく動いていません。ドライバーの更新をしてみるものの、なにかが引っ掛かってインストールができません。というか、先の Remote Access Connection Manager(Rasman) が悪さをしてインストールできないようです。

image

レジストリ等を弄ってやる方法が定番みたいなのですが、私のところでは直りませんでした。といいますか、WAN ミニポートが削除できない状態になって、どんどん増殖してしまいます。

そんな訳で、解決策としては、

  1. 「Remote Access Connection Manager」の設定を「無効」にして、PC を再起動する。
  2. devcon install を使って、新しく WAN ポートをインストールする(たぶん、IP と PPTP とネットワークモニタだけ有効であれば通じるはずです)
  3. 古い WAN ポートを「無効」にする。
  4. 「Remote Access Connection Manager」を「手動」に変更した後で「開始」させる。ひどく、時間がかかりますが、きちんと立ち上がってくれます。
  5. 「Remote Access Connection Manager」が立ち上がった状態で、VPN を再作成する。

ということで VPN が復旧しました。壊れてしまった WAN ポートが残骸として残っていますが、どうやっても消えないので、これはこのままです。なんだかなーという感じですが、仕方がないですね。

RasMan は、おそらく VPN に接続しようとしたときに自動的に立ち上がるはずですが、うまくいかないときは、あらかじめサービスで立ち上げておきます。

devcon のインストール

Windows Driver Kit (WDK) と Debugging Tools for Windows (WinDbg) のダウンロード にある「WDK 8.1 Update (Windows 8.1、8、7 ドライバー用)」の中に、devcon.exe があります。単体で動くようなので、どこかの PC にインストールして、c:\Program Files (x86)\Windows Kits\8.1\Tools\x64  の中身をコピーしてきても動きます。

devcon のコマンド

動かすコマンドは、以下のどれか。PPTP は、MS_PptpMiniport になります。

devcon.exe install c:\Windows\inf\netavpna.inf MS_AgileVpnMiniport
devcon.exe install c:\Windows\inf\netrasa.inf MS_NdisWanIp
devcon.exe install c:\Windows\inf\netrasa.inf MS_NdisWanIpv6
devcon.exe install c:\Windows\inf\netrasa.inf MS_NdisWanBh
devcon.exe install c:\Windows\inf\netrasa.inf MS_L2tpMiniport
devcon.exe install c:\Windows\inf\netrasa.inf MS_PppoeMiniport
devcon.exe install c:\Windows\inf\netrasa.inf MS_PptpMiniport
devcon.exe install c:\Windows\inf\netsstpa.inf MS_SstpMiniport

いくつか日本語の解説記事もあるので、それを参考にしてもよいでしょう。

ちなみに devcon remove でデバイスインスタンスを指定して削除ができるハズなのですが、WAN ミニポートの類は、ことごとく失敗します。よくわからないのですが、使い捨てみたいな感じで追加していきます。番号が #1, #2 と振られるので、後ろのほうのを残して古い WAN ミニポートは「無効」にしておくといいでしょう。あれこれレジストリを探って消そうとは思ったのですが、

レジストリで削除する

Windows 7 あたりでは、レジストリで削除できたらしいのですが、手もとの Windows 8.1 ではうまくいきませんでした。参考まで

Accent :: (編集中)WANミニポート(IP)!エラー修復メモ
http://www3.kcn.ne.jp/~accent/blosxom/blosxom.cgi/internet/091129100550.htm

のように HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}  配下から削除すると、デバイスドライバの更新ができるようなのですが。

カテゴリー: 開発 パーマリンク