Ajuda para importar um perfil Always On VPN da Microsoft usando Power Shell e Agendador de Tarefas

Saudações a todos,

Então, eu escrevi um script que faz três coisas.

  1. Instala o software pré-requisito
  2. Instala o Cliente VPN Azure usando Win Get
  3. Aplica um Perfil Always On VPN assim que instalado

Install-Module -Name AOVPNTools -Repository PSGallery -Force

Install-Module -Name Invoke-CommandAs -Repository PSGallery -Force

Add-AppxPackage -Path Microsoft.UI.Xaml.2.8.appx

add-appxpackage -path Microsoft.NET.Native.Framework.2.2\_2.2.29512.0\_x64\_\_8wekyb3d8bbwe.Appx

add-appxpackage -path Microsoft.NET.Native.Runtime.2.2\_2.2.28604.0\_x64\_\_8wekyb3d8bbwe.Appx

add-appxpackage -path Microsoft.VCLibs.140.00\_14.0.30704.0\_x64\_\_8wekyb3d8bbwe.Appx

add-appxpackage -path Microsoft.VCLibs.140.00.UWPDesktop\_14.0.30704.0\_x64\_\_8wekyb3d8bbwe.Appx

add-appxpackage -path Microsoft.DesktopAppInstaller\_2023.118.406.0\_neutral\_\_\_8wekyb3d8bbwe.Msixbundle

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

Set-PSRepository PSGallery

Install-Module -Name WingetTools

Install-WinGet

winget upgrade --all --silent --accept-package-agreements --accept-source-agreements --force

Winget install 9NP355QT2SQB -h --accept-package-agreements --accept-source-agreements

Invoke-CommandAs -ScriptBlock { New-AovpnConnection -xmlFilePath '<caminho do arquivo xml>' -ProfileName '<nome do perfil vpn>' } -AsSystem

Meu problema é que, sempre que executo o script automaticamente (ex: usando Agendador de Tarefas), o Cliente VPN é instalado corretamente, mas o perfil VPN não é importado. Executei o script manualmente e ele funciona perfeitamente. Qualquer ajuda para fazer isso funcionar seria muito apreciada.

Muito do reddit está atualmente restrito ou indisponível como parte de um protesto em grande escala contra as mudanças feitas pelo reddit na relação com o acesso à API. /r/sysadmin decidiu não fechar o subreddit para continuar atendendo nossos membros, mas você deve estar ciente do que está acontecendo, pois essas mudanças afetarão como você usa o reddit no futuro próximo. Mais informações podem ser encontradas aqui. Se estiver interessado em comunidades alternativas de r/sysadmin durante os protestos, você pode participar do nosso Discord ou IRC (#reddit-sysadmin no libera.chat).

Sou um bot, e esta ação foi realizada automaticamente. Por favor, contate os moderadores deste subreddit se tiver dúvidas ou preocupações.

Invoke-CommandAs -ScriptBlock { New-AovpnConnection -xmlFilePath '<caminho do arquivo xml>' -ProfileName '<nome do perfil vpn>' } -AsSystem

Se você estiver executando isso como uma tarefa agendada, por que está usando um módulo de terceiros? Você pode executar a tarefa agendada como sistema.

Eu também não uso um módulo de terceiros para configurar o vpn, eu apenas uso uma versão modificada do script que a Microsoft fornece.

Sem aprofundar na depuração dos seus módulos, isso parece ser uma questão de permissão para a conta do sistema acessar o xml.

Agradeço realmente a resposta. Quando executo como script de login de usuário no agendador, ele aparece e diz que o script não está sendo executado no contexto do sistema. Mas, como mencionei, esse script exato funciona muito bem manualmente :disappointed_face: e tentando executá-lo sob uma GPO faz o mesmo. Tentarei modificar o script que você vinculou.

Em vez de usar um módulo de terceiros para rodar como sistema, crie uma tarefa agendada e para o usuário coloque sistema. Uso uma tarefa agendada de política de grupo para instalar o Always On VPN. Isso faz com que a tarefa agendada seja executada assim que a política de grupo a ativar.

Certifique-se de configurar a opção para executar apenas uma vez nas configurações comuns.

Para solucionar problemas, baixe o psexec e execute "C:\Caminho Para Pasta\PsExec64.exe" -i -s cmd para abrir o prompt de comando como sistema.
Então, tente rodar seu script como sistema. Agora você poderá ver se há erros.

Obrigado por isso! Avisarei os resultados.