Um perfil VPN do Windows é uma entrada de uma agenda de telefones, e o PowerShell é uma forma de editar essa entrada. Dessa distinção decorrem duas falhas: uma chave pré-compartilhada que chega ao servidor já corrompida e um endereço de servidor que parece atualizado mas não é o que o próximo túnel vai discar. Ambos são mais fáceis de ver se você tratar o perfil como estado guardado e não como um comando que executou. O percurso segue a ordem das edições: criar, alterar, âmbito, reler.

Crie o perfil com uma chave literal

Add-VpnConnection aceita a chave pré-compartilhada L2TP através de -L2tpPsk. O PowerShell processa a cadeia antes de o cmdlet a receber, e dentro de aspas duplas o sinal de dólar inicia uma referência a variável enquanto um backtick inicia uma sequência de escape. Uma chave que contenha qualquer um dos dois chega mais curta, ou com um caractere diferente, e o perfil é criado com sucesso com o segredo errado.

A falha aparece então na autenticação IPsec, onde o túnel se recusa a subir. É por isso que um erro de aspas é tantas vezes reportado como problema do lado do servidor: o perfil existe, o nome está certo e o segredo está silenciosamente errado.

How you write itWhat PowerShell doesResult
"p@ss$word!42"Expands $word as a variableStored key is truncated
Double-quoted with an escape characterConsumes the next character as an escapeOne character disappears
'p@ss$word!42'Keeps the literal charactersStored key matches the secret

As aspas simples são a solução, e têm de envolver todo o valor. Se a entrada já existir com uma chave má, -Force substitui-a, ou remova e recrie o perfil e depois teste com uma ligação nova:

Add-VpnConnection -Name "Contoso-L2TP" -ServerAddress vpn.contoso.example -TunnelType L2tp -L2tpPsk 'n3w$ecret!2026' -AuthenticationMethod Pap -RememberCredential -Force

Mantenha o segredo real fora do histórico da shell e dos scripts partilhados. Leia-o em tempo de execução do armazém aprovado e passe a variável em vez do literal, o que evita por completo o problema das aspas.

Altere o endereço e depois volte a ligar

Set-VpnConnection aceita parâmetros separados por espaços, não sintaxe de atribuição. Escrever -ServerAddress = "203.0.113.10" passa um token extra, e o cmdlet ou dá erro ou guarda algo que não pretendia. A forma correta é -Name "Office L2TP" -ServerAddress 203.0.113.10.

Mesmo com a sintaxe correta, a alteração não chega a um túnel já levantado. Uma ligação estabelecida mantém o endereço que discou até ser desligada, por isso testar a mesma sessão não prova nada sobre o valor novo. Desligue, edite, volte a ligar e confirme o endereço do par nos detalhes da ligação.

Algumas propriedades não podem ser alteradas no local. Quando o cmdlet recusa, anote os parâmetros existentes, elimine o perfil e recrie-o com os valores corrigidos, e mantenha as definições originais do túnel e da autenticação. Um script que só precisa de mudar o número de telefone pode editar a entrada da agenda através da API RAS em vez de recriar tudo. Qualquer que seja o caminho, confirme depois os valores guardados em vez de confiar no silêncio do comando.

Saber que agenda editou

Um perfil por utilizador vive na pasta de ligações de rede desse utilizador, e um perfil para todos os utilizadores vive na pasta de toda a máquina, sob a árvore de dados de programas. São entradas diferentes com âmbitos diferentes, e editar uma deixa a outra intacta.

É por isso que uma alteração pode parecer desaparecer: o script correu com uma conta e o teste com outra. Use -AllUserConnection quando o perfil pertence à máquina, e verifique o mesmo âmbito quando o relê.

Releia o perfil antes de testar

Pergunte ao Windows o que guardou em vez de o que passou:

Get-VpnConnection -Name "Office L2TP" | Select-Object Name, ServerAddress, TunnelType, AuthenticationMethod

Compare essa saída com a intenção e depois inicie uma ligação nova. Se a marcação falhar, verifique o registo do cliente RAS no Visualizador de Eventos antes de voltar a alterar o perfil, porque o registo indica a fase que falhou.

Mantenha o desenho da autenticação intacto enquanto edita. Um comando que muda o endereço mas deixa cair o certificado ou a configuração EAP produz uma falha que parece alheia à edição, e exportar o perfil que funciona antes dá-lhe algo para restaurar em vez de uma suposição.

Artigos relacionados