27850、442、651:ひとつのスタック、最初の三つの確認
三つのエラーはすべて仮想アダプターのスタックから発生します。番号を該当する層に照らし、その層を確認し、クリーンアップ後にだけ再インストールしてください。
インストーラーが27850で止まり、接続は442で拒否され、別のプロファイルは651を返す。番号だけを見ると無関係な三つの不具合に見え、ふつうはクライアントを三回再インストールしてしまう。しかし発生源はひとつのサブシステム、仮想アダプターとその周囲のフィルタースタックである。エラー番号はどの層が失敗したかを示し、それが最初の確認項目を決める。番号を読む前の再インストールは、たいてい同じ不具合を再現するだけだ。
番号を層に照らす
エラーはそれぞれ違う地点で発生するため、見える症状が同じ接続拒否でも最初の確認は変わる。三つの系統がすべてのケースを覆う。インストーラー、アダプター、その下のポートである。下表は各番号を、それが示す確認項目の隣に置いている。
| Error | When it appears | First check | Usual cause |
|---|---|---|---|
| 27850 | During install | Filter count and security suite | Stack at the filter limit, or a suite blocking the driver |
| 442 | On connect | Adapter state and display name | Disabled adapter, ICS holding it, malformed CVirtA name |
| 651 | On connect | WAN miniport and third-party drivers | Miniport failed to start, bridging driver attached |
プロファイルを選ぶ前に出るエラーはインストーラーの系統だ。クライアントがアダプターを起動しようとしたときに出るならアダプターの系統である。アダプターが見えていてポートが一度も開かないなら、ミニポートの系統だ。何かを変える前に番号を書き留めること。三つの修復はスタックの別の部分に触れるので、系統を間違えた変更は次の試行を読みにくくする。
フィルタースタックの飽和、またはドライバーを遮るセキュリティスイート
クライアントをインストールすると、アダプターの連鎖に小さなフィルター部品が登録される。Windows にはそうした部品をいくつまで接続できるかに厳しい上限があり、既定値ではアンチウイルス、仮想化ブリッジ、キャプチャドライバーが揃うと余裕がほとんど残らない。するとVPNパッケージが正常でも27850で失敗する。インストーラーは飽和したスタックと壊れたスタックを区別できない。
現在の値を読み、引き上げ、再試行の前に再起動する。スタックが再構築されるまで新しいフィルターは接続できない:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Network" /v MaxNumFilters
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Network" /v MaxNumFilters /t REG_DWORD /d 14 /fもうひとつの原因は、目に見える確認なしにドライバーのインストールを遮るセキュリティスイートだ。その自己防御機能がフィルターの登録を妨げ、インストーラーは一般的な部品エラーを報告する。スイート自身のログを見て、自己防御が妨げているならインストールの間だけ無効にし、直後に元へ戻すこと。値がすでに引き上げられていて遮るスイートがない場合は、次を探す 以前のVPN製品が残した孤立したフィルタードライバー。対応するサービスを失った古いフィルターは今も枠を占有し、新しいインストールを失敗させることがある。
アダプターは存在し、下がったままになる
エラー442は、仮想アダプターは存在するがクライアントが起動できない状態を指す。最初の確認は非表示デバイスを表示したデバイスマネージャーだ。無効化されたアダプター、警告の印があるアダプター、存在しないアダプターはクライアント上では同じに見えるが、必要な修復は違う。Internet Connection Sharing が掴んでいることも多い。サービスがアダプターを占有しているなら、レジストリに触る前にサービスを停止して再試行すること。残った共有設定が再起動後に再び掴むことがあるので、修復が再起動後も残るかを記録する。
再インストールは、アダプターを扱えなくする壊れた表示名を残すことがある。値は未解決のインストーラートークンではなく、素のテキストであるべきだ:
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\CVirtA" -Name DisplayName
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\CVirtA" -Name DisplayName -Value "Cisco Systems VPN Adapter for 64-bit Windows"クライアントが期待する表示名を使い、その後で再起動してアダプターを再列挙させる。再起動せずに値を設定すると古い状態が残り、次の接続はまた442を返す。
下のポートが一度も開かない
エラー651は、接続マネージャーがWANミニポートを開けないときに報告される。クライアント上でアダプターが健全に見えても、下のポートが開始状態に達しないことがある。何かを再インストールする前に、ミニポートとその状態を一覧すること:
Get-PnpDevice -Class Net | Where-Object { $_.FriendlyName -like "*WAN Miniport*" } | Select-Object Status, FriendlyNameエラー状態のミニポートが直接の手がかりだ。デバイスマネージャーから再インストールするとポートが作り直される。クライアントの再インストールが効かないときにこの修復が効くのはそのためだ。物理アダプターに結び付いた第三者製ドライバーもよくある原因である。VirtualBox のブリッジネットワークドライバー、OpenVPN から残った TAP ドライバー、キャプチャフィルターが先にポートを取ることがある。ドライバーがすでに結び付いている場合、インストール中に部品のチェックを外すだけでは足りない。アダプターのプロパティから外すか、ドライバーストアからアンインストールする必要がある。
VPN接続でIPv6を無効にすると直った事例もあるが、それは恒久的な設計ではなく試験として扱うこと。IPv6を無効にしたときだけ接続が始まるなら、土台のミニポートかドライバーが依然として原因だ。
ひとつの層だけを変え、証拠を残す
変更したレジストリ値を保存し、アダプターとフィルターの一覧を前後で記録し、試行の間に再起動する。ここではどの系統でも再起動が修復の一部だ。アダプターのスタックは起動時に構築され、サービスの再起動では作り直されないからだ。
古いアダプター、フィルター、ミニポートが消えてから初めてクライアントを再インストールすること。壊れたスタックの上に新しいクライアントを載せると、修復できたはずの27850が、中途半端に登録されたアダプター二つと不明瞭なエラーだけの機械になる。同じエラーが層ごとの確認を二回生き延びたら止めて上に上げる。その時点で有効な次の一手は、ベンダーのインストーラーログとともにネットワークスタックをきれいに見直すことであり、同じ再インストールの繰り返しではない。