Cisco AnyConnect v3.1 自動ログイン

Cisco AnyConnect v3.1 自動ログイン

Cisco AnyConnect v3.1 の自動ログインに関して、少し問題があります。毎日 1 つのサーバーに一日中接続している必要があるため、毎日 16 文字のパスワードを探し出さなくても済むと最高です。クライアントが自動的にログオンしてくれると嬉しいですが、現時点ではそれが可能かどうかさえわかりません。

AnyConnect ソフトウェアはホスティング会社から提供されており、私も私の組織の誰も管理側にはアクセスできないことに注意してください。インターネット上に「AnyConnect プロファイル エディタ」と呼ばれるソフトウェアがあることは確認しましたが、有効なログインがないと Cisco からダウンロードできませんでした。

%appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xml自分の好みとプロフィール設定を見直しました%programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XML。どちらにも、資格情報を保存できることはどこにも示されていませんでした。パスワードを無理やり押し込もうとして、プロフィールを壊してしまったことも何度かありました。うまくいきませんでした。

最後に、私はこのフォーラム投稿これは、クライアント証明書とサーバー証明書の「サムプリント」、および SDI トークンと呼ばれるものを指定するようです。

免責事項: 私は普段はフロントエンド Web 開発者として働いていますが、自分でネットワーク管理を行う必要が生じたのはかなり前のことです。初心者のような質問で申し訳ありません。

答え1

私は次のようなものを使用します:

set FILE=%TEMP%\tmp
echo connect your.host.name> %FILE%
(echo 0)>> %FILE%
echo yourUserName>> %FILE%
echo yourPassWord>> %FILE%
"C:\Program Files\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s < %FILE%

アップデート:なぜ を括弧で囲むのでしょうか。これは、とは異なる選択をするときに、または が特別な意味を持ち、それぞれ または をリダイレクトしますが、 またはをエコーし​​ないことをecho 0思い出させるはずです。したがって、安全策として ( )を使用します。01>2>stdoutstderr12echo 0)

もう少し簡潔に言うと次のようになります:

(echo connect your.host.name& echo 0& echo yourUserName& echo yourPassWord& echo.) > %FILE%
more %FILE% | "C:\Program Files\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s

ただし、一時ファイルなしで同じことを実現したい場合、これは機能しません。その理由が知りたいです。

(echo connect your.host.name& echo 0& echo yourUserName& echo yourPassWord) | "%ProgramFiles(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s

アップデート:これは、https://stackoverflow.com/a/29747723/880783:

(echo connect your.host.name^& echo 0^& echo yourUserName^&echo yourPassWord^&rem.) | "%ProgramFiles(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s

これらすべてのバリエーションは、もちろんサーバーの構成(特に選択する必要がある VPN グループ)によって異なります。入力する必要があるものを確認するには、vpncli.exeパラメータなしで を一度呼び出し、 から始めてconnect your.host.name、プロンプトが表示される内容をメモします。

アップデート:これには、サーバー、ユーザー名、パスワードに関して完全な自由度を提供し、スリープ値に依存しないという追加の利点があります (システムが他の処理でビジー状態になる傾向がある場合は常に困難です)。

答え2

これは、Cisco AnyConnect Mobility Client v3.1を起動して自動的にログインするためのスクリプトです。このスクリプトを次のように保存します。ファイル名.vbs、 交換する パスワードパスワードを入力し、必要に応じて VPN クライアント exe へのパスを置き換えます (おそらく必要ありません)。また、接続速度に応じて 2 番目のスリープ時間も調整する必要がある可能性があります (私の場合は 5000 で確実に動作しますが、ホームにダイヤルするのに必要な時間はこれより短い/長い場合があります)。私はタスク バーにピン留めしていますが、ホットキーでも実行できます。

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run """%PROGRAMFILES(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"""

WScript.Sleep 3000

WshShell.AppActivate "Cisco AnyConnect Secure Mobility Client"

WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"

WScript.Sleep 5000

WshShell.SendKeys "PASSWORD"
WshShell.SendKeys "{ENTER}"

答え3

私は自分の質問に「まあまあ」という答えで答えていますが、それは私が求めていたものではありません。元の質問にもっとうまく答えてくれる別の答えを喜んで受け入れます。

自動ログインがうまくいかなかったので、次善策として、途方もなく長いパスワードを自動的にクリップボードにコピーするようにしました。Windows では、.bat本文に次の内容を含むファイルを作成しました。

echo|set /p=MyPassword|clip

ここで、「MyPassword」は実際のパスワードです。

このファイルをダブルクリックすると、パスワードがクリップボードにコピーされ、すぐにログインできるようになります。何もないよりはましです!

関連情報