Crie um script de perfil VPN P2S do Azure para cada usuário do Windows
O Add-VpnConnection gera um erro EapConfigXmlStream quando os comutadores recebem boolianos. Corrija o escopo e a rota em falta antes de implementar numa frota.
Distribuir um pacote ponto a site do Azure à mão funciona com cinco portáteis e desmorona com cinquenta. O caminho com script tem duas armadilhas que custam uma tarde cada: um erro de parâmetro que parece uma falha de certificado, e uma rota que a ligação nunca instala, mesmo quando tudo o resto está certo. Nenhuma delas se resolve ao voltar a descarregar o pacote de cliente. Faça as verificações abaixo por ordem e pare na primeira que falhar.
Mantenho a ordem fixa porque cada passo assume que o anterior está certo.
1. Corrija o escopo do perfil antes do primeiro dispositivo
Um perfil para todos os utilizadores vive na máquina e aparece em todas as sessões. Um perfil por utilizador segue uma conta e guarda as suas credenciais no contexto dessa conta. Escolha um e fique com ele, porque uma máquina com ambos mostra duas entradas com o mesmo nome, e os utilizadores ligam-se à que aparece primeiro. Mudar o escopo mais tarde significa remover primeiro o perfil antigo em vez de o editar no local.
Os perfis para todos os utilizadores servem para dispositivos partilhados e quiosques onde ninguém inicia sessão com uma conta pessoal. São o valor predefinido errado quando o certificado é emitido por pessoa, porque um perfil de âmbito de máquina não pode apresentar uma credencial que pertence a outra pessoa. Escreva a escolha no registo de implementação antes de existir o segundo portátil.
2. Passe os comutadores como comutadores
O Add-VpnConnection aceita parâmetros comutadores que ou estão presentes ou não estão. Passar-lhes $true gera um erro EapConfigXmlStream, e é por isso que tantos fios sobre isto acabam a inspecionar cadeias de certificados que nunca foram o problema.
Add-VpnConnection -Name "Contoso P2S" `
-ServerAddress "azuregateway-00000000-0000-0000-0000-000000000000.cloudapp.net" `
-AllUserConnection -UseWinLogonCredential -RememberCredential `
-TunnelType Automatic -EncryptionLevel Required -AuthenticationMethod MSChapv2O endereço de gateway acima é ilustrativo; tire o real do pacote descarregado e mantenha-o entre aspas. -AllUserConnection exige uma sessão elevada, e o perfil que cria é de âmbito de máquina mesmo que tenha executado o comando como administrador. Leia o conjunto de parâmetros com Get-Help Add-VpnConnection -Parameter * antes de acrescentar mais comutadores.
3. Acrescente a rota que o adaptador não acrescenta
O adaptador ponto a site instala uma rota para o conjunto de endereços de cliente e nada mais.
Um prefixo de rede virtual fora desse conjunto continua inacessível enquanto o túnel ainda reporta Connected, e essa é a falha mais confusa deste fluxo de trabalho. Acrescente a rota explicitamente depois de a ligação ser bem-sucedida, e aponte-a ao endereço de interface que o adaptador recebeu em vez do nome público do gateway. Esse endereço vem do ipconfig após a ligação, e muda entre sessões.
route add 10.0.0.0 mask 255.255.0.0 10.0.1.5
route print -4 | findstr /c:"10.0.0.0"Apague a rota ao desligar para que um próximo salto obsoleto não possa mais tarde enviar tráfego para um buraco negro. Trate o comando como um desvio local documentado: se uma versão futura do cliente acrescentar a rota sozinha, a sua linha torna-se um duplicado que compete com o próximo salto do próprio pacote.
4. Verifique como utilizador padrão
Uma sessão de administrador esconde erros de escopo, porque a elevação às vezes fornece uma credencial que o utilizador real não teria.
Inicie sessão como não administrador, ligue-se através do perfil e teste um serviço privado em vez da internet pública. Confirme que o perfil aparece em Get-VpnConnection -AllUserConnection, que o estado chega a Connected e que a rota acrescentada aponta para o endereço atual do adaptador. Depois suspenda a máquina, acorde-a e compare o ipconfig novamente.
5. Remova uma implementação má com limpeza
O Remove-VpnConnection com -AllUserConnection e -Force elimina o perfil de âmbito de máquina. O Force importa porque um perfil ligado, caso contrário, recusa a remoção, e um perfil meio removido é mais difícil de diagnosticar do que uma reinstalação limpa.
Guarde o nome do perfil, o endereço de gateway e as rotas acrescentadas nas notas de implementação. Esses três valores são o que uma chamada ao suporte precisa antes de alguém abrir um bilhete, e são também o que o próximo script precisa quando o endereço de gateway muda. Acrescente a versão do pacote de cliente à mesma nota, porque o comportamento da rota pertence a esse pacote e não ao Windows.