AutoLogin de Cisco AnyConnect v3.1

10

Estou tendo um pouco de dificuldade com o Cisco AnyConnect v3.1 em relação ao login automático. Eu tenho que ficar conectado a um único servidor o dia todo, todos os dias, e seria ótimo se eu não tivesse que desenterrar minha senha de 16 caracteres todos os dias. Eu adoraria que o cliente se conectasse automaticamente, mas neste momento não tenho certeza de que seja uma possibilidade.

Devo observar que o software AnyConnect é fornecido a mim por nossa empresa de hospedagem, e eu nem qualquer pessoa na minha organização tem acesso ao lado de gerenciamento das coisas. Eu vi que existe um software nas interwebs chamado "AnyConnect Profile Editor", mas a Cisco não me deixou baixar sem um login válido.

Fui %appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xmlrevisar minhas preferências e também %programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XMLminhas configurações de perfil. Nenhum deles mostrou em nenhum lugar que eu seria capaz de armazenar minhas credenciais. Eu até quebrei meu perfil algumas vezes, tentando enganar minha senha em alguns lugares. Isso não funcionou, vai entender.

Por fim, encontrei esta postagem no fórum que parecia especificar "impressões digitais" de certificado de cliente e servidor, além de algo chamado de token SDI.

Isenção de responsabilidade: sou desenvolvedor web front-end durante o dia e faz muito tempo desde que eu tive que fazer qualquer gerenciamento de rede por mim mesmo, desculpe pela pergunta noob!

MikeZ
fonte
1
Geralmente, essa política é definida e controlada pelas pessoas que gerenciam o acesso ao Anyconnect. Como você declarou que não tem acesso a essa parte da configuração, duvido que haja muito que possamos fazer para ajudá-lo. E isso provavelmente está fora de tópico como uma pergunta de "usuário final".
Brett Lykins #
Pergunta razoável com um bom pormenor ... migram Vamos para Super User
Mike Pennington

Respostas:

16

Está aqui meu script para lançar o Cisco AnyConnect Mobility Client v3.1 e entrar automaticamente. Salve este script como FILENAME.vbs , substitua PASSWORD por sua senha, substitua o caminho para o VPN Client exe, se necessário (provavelmente não), e talvez você também precise ajustar o segundo tempo de suspensão, dependendo da velocidade da conexão (a minha funciona confiável em 5000, mas o seu pode precisar de menos / mais tempo para ligar para casa). Eu tenho o meu fixado na minha barra de tarefas, mas você também pode usar as teclas de atalho.

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}"
RADA
fonte
1
Uma ótima solução! Eu coloquei alguns TABs , ENTERs e sleeps adicionais para o meu caso específico e funcionou perfeitamente. Para minha máquina e conexão à Internet (300 Mbits para cima e para baixo) reduzi todos os tempos de suspensão para apenas meio segundo (500 milissegundos) e agora recebo uma conexão VPN super rápida! Obrigado!
informatik01
1
! Nota: se sua senha contém os caracteres% (^ ~ +, você precisa colocar {} e em torno deles.
jeroenk
4

Eu uso algo nesse sentido:

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%

( Atualização: Por que os parênteses estão ao redor echo 0? Isso deve lembrá-lo, ao fazer uma escolha diferente de 0, que 1>ou 2>tem um significado especial, redirecionando stdoutou stderr, respectivamente - mas não ecoando 1ou 2. Portanto, permanecemos no lado seguro com ( echo 0).)

Isso é um pouco mais conciso:

(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

No entanto, se você deseja obter a mesma coisa sem um arquivo temporário, isso não funciona para mim - eu estaria interessado, por que:

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

Atualização: Isso funciona, encontrado em /programming//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

Todas essas variantes dependem, é claro, da configuração do seu servidor (especialmente o grupo de VPN que você deve escolher). Para descobrir o que você precisa inserir, chame vpncli.exesem nenhum parâmetro uma vez, comece com connect your.host.namee, em seguida, observe o que é solicitado.

Atualização: isso tem a vantagem adicional de oferecer total liberdade em relação ao servidor, nome de usuário e senha e não depende de nenhum valor de suspensão (o que é sempre difícil se o sistema tende a estar ocupado com outra coisa).

bers
fonte
2
A opção -s não está disponível na versão 3.1 do cliente. Você tem a versão 4.1? Essa versão está disponível publicamente em algum lugar? Não tenho uma licença válida para fazer o download no site da Cisco.
precisa saber é o seguinte
Sim, eu usei a versão 4+. No entanto, não conheço nenhuma fonte pública legal (provavelmente devido a restrições de exportação).
BERS
3

Estou respondendo minha própria pergunta com essa resposta "meh" - não é o que eu estava procurando e aceitarei com prazer outra resposta que possa responder melhor à minha pergunta original.

Como não tive sorte com os logins automáticos, a melhor coisa que pude pensar foi ter minha senha ridiculamente longa automaticamente copiada para a área de transferência. No Windows, criei um .batarquivo com isso no corpo:

echo|set /p=MyPassword|clip

Onde "MyPassword" é sua senha real.

Ao clicar duas vezes, esse arquivo copiará sua senha na área de transferência para um login rápido. Melhor que nada!

MikeZ
fonte
Se você está disposto a fazer alguma automação trabalho braçal luz, uso autoit para iniciar o aplicativo VPN e, em seguida, copiar a senha no campo de senha
Mike Pennington
2
Por favor, qual é a vantagem em echo|set /p=MyPassword|clipcomparação com apenas echo MyPassword|clip?
BERS
3
@bers Se você usar apenas, echo your_pass| clipele também colocará / acrescentará o novo caractere de linha no final do seu_pass . Tente você mesmo e, quando colar em algum editor, notará que o cursor está na próxima linha (se você tiver um editor que possa mostrar novos caracteres de linha, como o Notepad ++ ou o SciTE , use-o e verá o CRLF em Windows no final do seu_pass ). Mas a solução atual do MikeZ funciona perfeitamente (como uma maneira de copiar uma senha para a área de transferência).
informatik01
1
@ informatik01 Obrigado pela explicação!
precisa
1
(1) A excelente explicação de @ informatik01 não aborda completamente a necessidade de echo|no início da linha de comando. O motivo é que set /pé o comando para ler um valor (uma linha) da entrada padrão. Sem echo|, o set /p=MyPassword|clipcomando silenciosamente sentava e lia uma linha do terminal. (2) Eu odeio ver um |sem espaços antes e depois. Mas cuidado, isso echo | set /p=MyPassword | clipirá gravar MyPassword (com um espaço à direita) na área de transferência. Você pode evitar que, adicionando aspas: echo | set /p="MyPassword" | clip.
Scott Scott