AnyConnect の「接続サブシステムを初期化できませんでした」を修正する
資格情報がマシンから出る前に失敗します。エージェント サービス、オフライン HTTP フラグ、次にアダプターを保持する Hyper-V または ICS を確認します。
接続をクリックすると、ダイアログはほぼ即座に応答します。接続サブシステムを初期化できませんでした。ゲートウェイには何も届いていないため、相手側では証明書交換も資格情報もトンネル グループの選択も行われていません。つまり、コンセントレーターのログには空のセッションが残り、ヘルプデスクは何の役にも立たないダイアログのスクリーンショットを求めることになります。代わりにエンドポイント側を、決まった順序で作業し、結果が変わる最初の手順で止めてください。
タイミングは手持ちの中で最も価値のある証拠であり、記録するのに費用はかかりません。エラーが資格情報の入力前に出たのか後に出たのか、アップグレード、Windows 更新、新しいセキュリティ エージェントの後に始まったのかを書き留めます。この答えで、設定に触れる前に候補の半分は絞れます。
何かを変える前にタイミングを読む
三つの失敗点は似ていて、同じではありません。接続を押した瞬間にダイアログが出るなら、クライアントが自前の基盤を起動できておらず、このメッセージはそこを指しています。資格情報を入力した後に出るなら、トンネル グループには到達しており、問題はさらに先です。トンネルが上がってから落ちるなら、サブシステムは正しく初期化されており、まったく別のバグを追っています。三つを混同すると、役に立たない再インストールに半日を費やすことになります。
ここに当てはまるのは一つ目のケースだけです。このメッセージはネットワーク上の判断より前に生成されるため、誤ったゲートウェイ アドレス、期限切れの証明書、誤ったパスワードでは発生しません。
手順 1: エージェント サービスが実行中か確認する
クリックするウィンドウはフロントエンドにすぎず、実際の処理は Cisco AnyConnect Secure Mobility Agent サービスで行われます。このサービスは vpnagent として登録されています。このサービスが停止または無効になっていると、GUI は通信相手を持てず、まさにこの初期化失敗を報告します。管理者権限の PowerShell プロンプトで状態とスタートアップの種類を確認します。
Get-Service vpnagent | Select-Object Name, Status, StartType
sc.exe qc vpnagent
net start vpnagent
以前の手動スタートアップの種類を尊重したインストーラーが、これが無効になる通常の原因です。そのため Start を押すだけでなく、StartTypeを確認します。サービスが数秒で起動して停止する場合は、Repair をクリックする前に System ログで Service Control Manager のエントリを確認します。
Get-WinEvent -FilterHashtable @{LogName="System"; ProviderName="Service Control Manager"} -MaxEvents 40
ブロックされたドライバー、隔離されたファイル、サードパーティ製セキュリティ製品のフィルター ドライバーは、これらのイベントで名乗ります。Repair は同じブロックされたファイルの上に再インストールするだけで何も変えないため、イベント ログが先です。
手順 2: HTTP スタックが報告するオフライン状態を消す
クライアントは Windows の HTTP コンポーネント経由でプロファイルをダウンロードしポリシーを評価するため、ユーザーのインターネット設定にオフライン フラグが立っていると、すべてのブラウザーがページを読み込めていても初期化が壊れます。値を直接確認します。
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" -Name GlobalUserOffline
値が「1」なら、WinINet スタックが呼び出し元にマシンに接続がないと伝えている状態で、通常は Internet Explorer の [オフラインで作業] メニュー項目か自動化スクリプトが設定します。元に戻す値は「0」です。サインアウトして再度サインインし、他を変える前に接続を再試行してください。
このマシンを引き継いだものでフラグが設定された理由がわからない場合は、チケットに書き留めてください。マシン上の別の何かが意図的に設定した可能性があり、次回のログオンで戻ってきます。
手順 3: 仮想アダプターを Hyper-V または ICS から解放する
二つの Windows の役割が、クライアントがアダプターを作成するために必要な部品を保持することがあります。一つ目は Hyper-V です。仮想スイッチ サービスが実行されていると、アダプターの作成がこのエラーとして現れる形で失敗することがあります。サービスを停止するのは診断であり、修正ではありません。
Get-Service vmms, vmcompute | Stop-Service
Get-NetAdapter | Where-Object InterfaceDescription -like "*Hyper-V*"
そのサービスを停止した状態でクライアントが接続できれば、競合が確認でき、Hyper-V ホストの所有者と何を交渉すべきかがわかります。マシンが仮想化を必要としなくなった場合を除き、その後でサービスを再起動してください。
二つ目の所有者はインターネット接続の共有です。接続が共有されていると、クライアントはトンネルを作る前に失敗することがあります。Get-Service SharedAccessで確認し、実行中で自動に設定されている場合は、アダプターの中から共有されている接続を探し、そのアダプターだけで共有をオフにしてください。
先に除外すべき、より単純な説明もあります。インターネットにまったく接続できないマシンでは、到達性エラーではなくこのメッセージが出ることがよくあるため、クライアントを疑う前にTest-NetConnectionがゲートウェイ アドレスと公開ホストの両方で成功することを確認してください。
確認してから、不要だった変更を戻す
確認とは、タスクトレイの緑の盾のことではありません。アダプターが存在し、アドレスを保持し、トラフィックが通ることを確認します。Get-NetAdapter -Name "Cisco AnyConnect*"で稼働中と表示され、ipconfig /allで割り当てアドレスと DNS サーバーが表示され、内部名への実際の要求はローカル リゾルバーではなくトンネル経由で解決されるはずです。
進めながら各変更の短いリストを、見つけた値と設定した値とともに残してください。三番目の手順の後に接続が機能するなら、チケットを閉じる前に Hyper-V サービスを元に戻して再テストしてください。仮想化を静かに無効にする回避策は、気づいた次の管理者によって取り消されます。
三つの手順のどれでもエラーが動かないなら、エンドポイントの変更をやめてください。クライアントのバージョン、サービスの状態、このページ冒頭のタイミング、クライアントが生成できる診断バンドルを集め、試した正確な順序とともに引き渡します。そのバンドルはダイアログのスクリーンショットより次の技術者にとって価値があり、サブシステムがネットワークに触れる前と後のどちらで失敗したかを示す唯一の成果物です。