Em que livro de endereços uma tarefa SYSTEM procura perfis VPN?
Uma tarefa é executada com uma conta, e os perfis VPN nativos são por utilizador, a menos que tenham sido criados para todos os utilizadores. Compare os dois arquivos antes de reconstruir seja o que for.
O seu perfil VPN está mesmo nas Definições, e a tarefa agendada continua a indicar que não encontra a ligação. Nada está danificado: o arquivo VPN nativo do Windows é por utilizador, a menos que o perfil tenha sido criado como perfil para todos os utilizadores, e uma tarefa é executada com a conta indicada pelo seu principal. Normalmente a tarefa lê um livro de endereços que nunca conteve o seu perfil. Dois comandos e uma definição da tarefa bastam para o provar, e vale a pena executá-los antes de alguém reconstruir a ligação.
Dois arquivos guardam o mesmo nome de perfil
Um perfil VPN nativo do Windows vive no arquivo da conta que o criou. O arquivo global é outro livro de endereços, que só é preenchido quando o perfil é criado com o comutador para todos os utilizadores numa sessão elevada. Ambos podem guardar um perfil com o mesmo nome, e nenhum é uma vista do outro.
Leia os dois arquivos a partir da mesma sessão e compare os nomes que devolvem. O comutador seleciona o arquivo global, e lê-lo exige normalmente uma sessão elevada:
Get-VpnConnection | Select-Object Name, ServerAddress, TunnelType
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress, TunnelType
Se o primeiro comando listar o perfil e o segundo não, nenhuma alteração de credenciais ajudará uma tarefa executada com outra conta, porque o problema é a associação e não a autenticação. Se ambos o listarem, o arquivo não é a causa e aplica-se a secção seguinte. Essa única comparação fecha metade destes pedidos. Registe qual arquivo respondeu e com que conta executou a verificação, porque a resposta não significa nada sem os dois factos.
Leia o principal da tarefa antes das credenciais
Abra a tarefa e leia o principal, porque indica qual arquivo a tarefa consegue ver. Uma tarefa configurada para ser executada como SYSTEM não é a sua conta com direitos adicionais: tem o seu próprio perfil e nenhum acesso ao livro de endereços por utilizador que criou enquanto estava com sessão iniciada. Uma conta de serviço comporta-se exatamente da mesma forma.
A opção de executar independentemente de ter sessão iniciada também altera isto, porque a tarefa deixa de ter uma sessão interativa de onde possa pedir credenciais emprestadas. Faça a ação escrever whoami num ficheiro e leia a resposta em vez de a presumir.
Os diagnósticos do seu próprio terminal não dizem nada sobre este problema, porque mostram o que a sua conta vê. Execute a comparação sob a identidade da tarefa através de qualquer processo aprovado que tenha para isso. A saída colada de uma consola de administrador é outro conjunto de dados, não um mais privilegiado. Se não existir tal processo, a tarefa tem de registar ela própria a resposta, o que a última secção prepara.
Encontrar o perfil não é iniciar sessão
Um perfil para todos os utilizadores torna a configuração visível de forma mais ampla. Não transporta a palavra-passe guardada da conta que o criou, e não entrega a outra conta a chave privada armazenada no seu perfil de utilizador. Visibilidade e credenciais utilizáveis são dois testes separados, e passar o primeiro não diz nada sobre o segundo.
Se a tarefa agora encontra o perfil e falha na autenticação, isso é progresso e a fase pertence ao registo. Mova o certificado para o arquivo da máquina, ou forneça o segredo através do mecanismo próprio da implementação, em vez de recriar novamente o nome da ligação. Recriá-lo produz a mesma falha com um carimbo temporal mais recente. A Microsoft documenta os dois âmbitos entre os quais o comutador do cmdlet escolhe.
Os desafios não interativos são a armadilha por trás dessa fase. Um pedido de PIN ou um código de utilização única não pode ser respondido por uma tarefa sem ambiente de trabalho, pelo que um perfil que marca perfeitamente à mão pode ser inutilizável sob automatização.
Quatro campos de que o registo da tarefa precisa
Mantenha juntos num só lugar os valores que decidem o resultado, porque três deles ficam normalmente implícitos. O registo precisa de quatro linhas:
- Caminho da ação: o script ou o executável que a tarefa executa, não um atalho que se resolve de forma diferente para outra conta.
- Nome do perfil: a cadeia exata, porque dois arquivos podem guardar o mesmo nome apontando para servidores diferentes.
- Principal: a conta com que a tarefa é executada, e se tem uma sessão interativa.
- Método de autenticação: o que esse principal consegue realmente concluir, como um certificado do arquivo da máquina em vez de uma chave no seu perfil de utilizador.
Essas quatro linhas respondem à pergunta que o pedido realmente faz, ou seja, que configuração a automatização utilizou. Também sobrevivem à próxima reconstrução da tarefa, quando o autor original já não está por perto para explicar porque o nome era importante. Sem elas, a mesma falha regressa após a implementação seguinte e custa outra vez as mesmas horas.
Localize a fase a que a tarefa chegou
Instrumente a ação em vez de adivinhar a partir do resultado da última execução. Um invólucro curto registra a identidade, o arquivo que consegue ver e o resultado da marcação num só lugar:
whoami
Get-VpnConnection -AllUserConnection | Select-Object Name, ServerAddress
rasdial "Office"
schtasks /query /tn "VPN Connect" /v /fo LIST
O comando de marcação imprime o seu próprio erro, que é normalmente mais claro do que uma falha genérica da tarefa. A consulta devolve o principal e o último código de resultado lado a lado, pelo que identidade e resultado ficam visíveis numa só vista. Esses dois factos decidem se o passo seguinte é uma alteração de arquivo ou uma alteração de credenciais.
Por fim, separe uma tarefa que se liga depois de um utilizador iniciar sessão de um túnel de dispositivo ou de um fluxo de trabalho suportado antes do início de sessão. Partilhar um único perfil não é um desenho para nenhum dos dois, e o campo principal é o que lhe diz qual dos três construiu. Se a conetividade tiver de existir antes do início de sessão, o arquivo de perfis por utilizador é a camada errada a corrigir.