Powershell script para arquivo de download, tendo configuração problemas de uma conexão segura
-
02-07-2019 - |
Pergunta
Eu estou fazendo um script automatizado para ler uma lista de um site de postar o código compilado mais recente. Essa é a parte que eu já descobri. A próxima parte do script é pegar esse código compilado a partir de um servidor com um Untrusted Cert.
Isto é como eu vou sobre agarrar o arquivo:
$web = new-object System.Net.WebClient
$web.DownloadFile("https://uri/file.msi", "installer.msi")
Então eu recebo o seguinte erro:
Exceção chamando "DownloadFile" com "2" argumento (s): "O subjacente conexão foi fechada: não foi possível estabelecer relação de confiança para o SSL / TLS canal seguro. "
Eu sei que eu estou faltando alguma coisa, mas eu não posso começar a maneira correta para procurá-lo.
Solução
Você precisa escrever um manipulador de retorno de chamada para ServicePointManager .ServerCertificateValidationCallback .
Outras dicas
Brad está correto, mas aviso que PowerShell V1 realmente não tem suporte nativo para os delegados, o que você precisa, neste caso específico. Eu acredito que este deve chegar ao redor essa limitação ( na verdade, o cenário que você descreve é ??exatamente um dos exemplos usados).
Se você estiver usando powershell e enfrentar este erro. Use comando:
[Net.ServicePointManager] :: SecurityProtocol = [System.Net.SecurityProtocolType] :: Tls12
antes de baixar o pacote. Obriga PS para usar TLS 1.2.
A razão para a falha poderia ser o site que você está tentando download desativou o suporte para TLS 1.0, que usa PS por padrão.