Objetivo: baixar a iso oficial do Win10_1909 no Linux diretamente via linha de comando
Fonte:https://www.microsoft.com/en-in/software-download/windows10ISO
Depois de selecionar a edição e o idioma, você obtém links de 64 bits como a seguir, válidos por 24 horas
Isso funciona bem em qualquer navegador GUI ou em qualquer plataforma, mas precisamos disso em uma caixa Linux
- servidor linux é claro menos gui (não pretendo instalar gui)
- wget/curl resulta em um download de arquivo html proibido
- Alterando o agente do usuário para Firefox no wget/curl ou adicionando carga útil personalizada como curl -d '{"t": 77e897e2-a32c-419c-8f18-54770dbb5a15,"e": 1583942596,"h": 595f691df8f7e4088d24b6cc37077d1a}' . arquivo iso retorna uma página proibida
- tentei gerenciadores de download baseados em Linux como aria e axel, mas também falhou, proibido
Como fazer isso apenas via linha de comando?
Responder1
É proibido porque existem caracteres especiais na url que são interpretados pelo shell. Existe, por exemplo, '?' e '&'. Agora dê uma olhada no seu URL de exemplo:
curl --location --remote-name https://software-download.microsoft.com/pr/Win10_1909_English_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa&e=1583937294&h=2b05fad63d3a6e2a0c4a20cb49f34e7c
Isso vai:
- inicie um subshell que realmente fez o seguinte:
curl --location --remote-name https://software-download.microsoft.com/pr/Win10_1909_English_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa
- inicia um subshell onde uma variável 'e' recebe o valor '1583937294'
- No seu ambiente shell atual, haverá uma variável 'h' atribuída com o valor '2b05fad63d3a6e2a0c4a20cb49f34e7c'
Como corrigi-lo? - Simples, basta adicionar aspas simples ao redor do URL:
curl --location --nome-remoto 'https://software-download.microsoft.com/pr/Win10_1909_English_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa&e=1583937294&h=2b05fad63d3a6e2a0c4a20cb49f34e7 c'
Responder2
Finalmente encontrei uma solução e não há extensão necessária no Firefox.
Após obter a URL recebida, abra uma nova aba no Firefox e abra as Ferramentas do Desenvolvedor (F12). Mude para a guia Rede e insira o URL para download. Clique em cancelar quando for solicitado o download.
Haverá uma solicitação GET agora em Rede; clique com o botão direito e selecione Copy > Copy as cURL
. Cole esta string enorme em seu terminal e adicione -o [/path/filename]
para realmente salvar o arquivo em algum lugar, em vez de despejá-lo em STDOUT. É isso!
Em um navegador baseado em Chromium, na página de download da Microsoft depois de criar o "Download de 32 bits" e o "botão de download de 64 bits". Abra as Ferramentas do Desenvolvedor e mude para a guia Rede (deve estar vazia). clique no botão de download de 32 ou 64 bits. Deve abrir uma caixa de diálogo salvar como, cancele-a. Clique com o botão direito do mouse no novo URL listado na guia Rede,cópia de->Copiar como Curl
Em seguida, cole-o nas janelas do terminal e anexe o -o [/path/filename]
valor. (ex -o Win10_20H2_v2_English.iso
) e o download deve começar.
Responder3
Criei uma ferramenta para automatizar todo o processo chamada Mido: