Загрузите Windows ISO с сайта microsoft с помощью wget или curl

Загрузите Windows ISO с сайта microsoft с помощью wget или curl

Цель: загрузить официальный образ Win10_1909 iso в Linux напрямую через командную строку.

Источник:https://www.microsoft.com/ru-ru/software-download/windows10ISO

После выбора редакции и языка вы получите 64-битные ссылки, как показано ниже, действительные в течение 24 часов.

https://software-download.microsoft.com/pr/Win10_1909_English_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa&e=1583937294&h=2b05fad63d3a6e2a0c4a20cb49f34e7c

Это прекрасно работает через любой графический браузер или любую платформу, но нам это нужно в Linux-системе.

  • Linux-сервер, конечно, без графического интерфейса (не собираюсь устанавливать графический интерфейс)
  • wget/curl приводит к запрещенной загрузке файла html
  • Изменение пользовательского агента на firefox в wget/curl или добавление пользовательской нагрузки как curl -d '{"t": 77e897e2-a32c-419c-8f18-54770dbb5a15,"e": 1583942596,"h": 595f691df8f7e4088d24b6cc37077d1a}' и запрос файла .iso возвращает запрещенную страницу
  • пробовал менеджеры закачек на базе Linux, такие как aria и axel, тоже не работает, запрещено

Как это сделать только через командную строку?

решение1

Это запрещено, так как в URL есть специальные символы, которые интерпретируются оболочкой. Например, '?' и '&'. Теперь взгляните на ваш пример URL:

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

Это будет:

  1. запустить подоболочку, которая фактически сделала следующее:
curl --location --remote-name https://software-download.microsoft.com/pr/Win10_1909_English_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa
  1. запустить подоболочку, в которой переменной «e» присваивается значение «1583937294»
  2. В вашей текущей среде оболочки будет переменная 'h', которой будет присвоено значение '2b05fad63d3a6e2a0c4a20cb49f34e7c'

Как это исправить? - Просто добавьте одинарные кавычки вокруг URL:

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'

решение2

Я наконец нашел решение, и для Firefox не требуется никаких расширений.

После получения полученного URL-адреса откройте новую вкладку в Firefox и откройте Developer Tools (F12). Перейдите на вкладку Network и введите URL-адрес для загрузки. Нажмите Cancel, когда вам будет предложено загрузить.

Теперь в разделе «Сеть» будет запрос GET; щелкните его правой кнопкой мыши и выберите Copy > Copy as cURL. Вставьте эту огромную строку в свой терминал и добавьте, -o [/path/filename]чтобы на самом деле сохранить файл где-нибудь, а не выгружать его в STDOUT. Вот и все!


В браузере на базе Chromium, на странице загрузки Microsoft после создания кнопок «32-bit Download» и «64-bit Download». Откройте Developer Tools, затем перейдите на вкладку Network (она должна быть пустой). нажмите кнопку 32-bit или 64-bit download. Должно появиться диалоговое окно сохранения как, отмените его. Щелкните правой кнопкой мыши по новому URL-адресу, указанному на вкладке Network,Копировать->Копировать как Curl Затем вставьте его в окно терминала и добавьте -o [/path/filename]значение. (например -o Win10_20H2_v2_English.iso, ), и загрузка должна начаться.

решение3

Я создал инструмент для автоматизации всего процесса под названием Mido:

https://github.com/ElliotKillick/Mido

Связанный контент