Erro 703 com arquivo rasdial pbk

Erro 703 com arquivo rasdial pbk

Preciso fazer uma conexão VPN usando arquivo pbk e login/senha silenciosamente, sem nenhuma caixa de diálogo. Assim como executar script - conectado. Além disso, o usuário não deve criar uma conexão manualmente, tudo deve ser feito de forma programática.

Primeiro criei uma conexão manualmente para verificar se está funcionando, executei o arquivo pbk, digitei login e senha na caixa de diálogo de nova conexão e cliquei no botão conectar. A conexão foi criada com sucesso e a VPN funcionou.

Então fechei a conexão e executei o seguinte comando no cmd:

rasdial "MyVPNName" "login" "password" /phonebook:"path\to\file.pbk"

e conectado com sucesso à VPN. Fiquei feliz, tudo funciona como eu esperava. Mas quando executo o mesmo comando em outro PC, recebo o erro 703:

The connection needs information from you, but the application does not allow user interaction.

Acho que requer login e senha. Notei que ele ignora login e senha na linha de comando e funciona com credenciais erradas ou até mesmo sem elas. Tentei criar conexão com rasphone.exe, mas a caixa de diálogo para criar conexão aparece. Quando criei uma conexão com esse diálogo - comando rasdial funcionando mesmo sem login e senha na linha de comando. Parece que o sistema armazena uma conexão e usa credenciais salvas para conectar.

Mas não é o que eu preciso. Preciso estabelecer uma conexão VPN com um único clique no meu aplicativo. Nesse aplicativo, estou planejando executar rasdial.exe ou outro utilitário integrado e o usuário não deverá ver nenhuma outra caixa de diálogo, exceto meu aplicativo ou digitar login/senha manualmente.

Eu tenhoVisualizaçãoUserPw=0no arquivo pbk conforme mencionado aquiClique único para conectar-se à VPN no Windows 10mas isso não ajuda, a caixa de diálogo aparece mesmo assim.

Ou talvez eu pudesse definir login e senha no arquivo pbk? É possível?

Responder1

  1. rasdial vpnnamefuncionou bem para mim no MS Windows 10, 19XX, 20H1, 20H2, mas quando atualizei para 21H1, isso parou de funcionar com configurações de VPN que usavam autenticação baseada em certificado ou que usavam credenciais salvas.

O erro gerado foi:

Erro de acesso remoto 703 - A conexão precisa de informações suas, mas o aplicativo não permite a interação do usuário.

rasdialparece ter começado a exigir 2 argumentos adicionais após especificar uma configuração para usar: "nome de usuário" e "senha"

Você pode substituir "*" por senha e então será solicitada a senha. Você pode substituir "* *" por nome de usuário e senha para que ambos sejam solicitados.

No entanto, se você salvou credenciais em sua configuração ou usa autenticação baseada em certificado, elas não são realmente necessárias.

Em vez disso, você pode passar os argumentos " '' '' " (sem aspas duplas, apenas duas aspas simples, consecutivas '' para nome de usuário e, em seguida, um espaço em branco seguido por mais duas aspas simples, consecutivas '' para senha:

rasdial vpnname '' ''

Considere tentar passar '' '' para nome de usuário e senha e veja se isso evita o problema que você encontrou.

2) Se você usar o Strongswan como serviço de túnel IPSec ao qual está se conectando a partir do Windows, há um "bug" que impede o funcionamento de "salvar nome de usuário e senha" do MS Windows. Uma solução alternativa para esse problema do Windows/strongswan foi fornecida como alterações na configuração do seu Strongswan que funciona: https://serverfault.com/questions/908098/strongswan-clients-access-rights/9081

3) Assumindo túnel IPSec... Descobri que usar o PowerShell para criar uma VPN "Conexão" parece suportar tudo o que é necessário para salvar credenciais para que "rasdial" possa ser programado para verificar se a VPN nomeada está em execução e, se não, iniciá-la sem avisar. Esse processo com script funcionava antes do Windows 10 21H1, mas exigia uma alteração no rasdial descrito acima.

A única ressalva? Na primeira vez que um usuário se conecta, ele precisa especificar suas credenciais, mas se tiver sucesso, elas não serão mais solicitadas. Depois disso? Um script pode ser usado para chamar rasdial para iniciar a VPN.

Para a criação do PowerShell de uma "conexão" VPN, não há necessidade de especificar um /phonebook:\path\to\pbk

Exemplo com powershell para criação de uma "conexão" VPN disponível para rasdial, assumindo IKEv2 e mais suposições, altere conforme necessário: (exemplo do PowerShell) Add-VpnConnection -Name "your-vpn-connection-name" -ServerAddress "fqdn.example.com" -TunnelType "IKEv2" -RememberCredential -AuthenticationMethod Eap -EncryptionLevel "Maximum";

Então talvez adicione mais recursos: Set-VpnConnection -Name "your-vpn-connection-name" -ServerAddress "fqdn.example.com" -SplitTunneling $False -RememberCredential $True -TunnelType "IKEv2" -AuthenticationMethod Eap -UseWinlogonCredential $False -EncryptionLevel "Maximum";

Você pode então usar o PowerShell "Set-VpnConnectionIPsecConfiguration" para definir coisas como: cifras a serem usadas, hashes a serem usados ​​e recursos mais avançados.

4) Depois de ter uma "conexão" VPN nomeada, você deverá ser capaz de:

(Com rasdial mais antigo que não exigia argumentos de nome de usuário/senha :)

rasdial your-vpn-connection-name

(Rasdial mais recente que requer nome de usuário e senha, que você salvou ou pretendia salvar no sistema :)

rasdial your-vpn-connection-name '' ''

Espero que isto ajude. Boa sorte!

informação relacionada