Ziel: Laden Sie das offizielle Win10_1909-ISO direkt über die Befehlszeile in Linux herunter
Quelle:https://www.microsoft.com/en-in/software-download/windows10ISO
Nach Auswahl der Edition und Sprache erhalten Sie 64-Bit-Links wie folgt, gültig für 24 Stunden
Dies funktioniert problemlos über jeden GUI-Browser oder jede Plattform, aber wir brauchen dies in einer Linux-Box
- der Linux-Server hat natürlich keine GUI (ich habe nicht vor, eine GUI zu installieren)
- wget/curl führt zu einem verbotenen HTML-Dateidownload
- Das Ändern des Benutzeragenten in wget/curl auf Firefox oder das Hinzufügen einer benutzerdefinierten Nutzlast als curl -d '{"t": 77e897e2-a32c-419c-8f18-54770dbb5a15,"e": 1583942596,"h": 595f691df8f7e4088d24b6cc37077d1a}' und das Anfordern der ISO-Datei gibt eine verbotene Seite zurück.
- habe Linux-basierte Download-Manager wie Aria und Axel ausprobiert, es funktioniert auch nicht, verboten
Wie lässt sich dies nur über die Befehlszeile erreichen?
Antwort1
Dies ist verboten, da die URL Sonderzeichen enthält, die von der Shell interpretiert werden. Dazu gehören beispielsweise '?' und '&'. Schauen Sie sich nun Ihre Beispiel-URL an:
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
Dieser Wille:
- Starten Sie eine Subshell, die tatsächlich Folgendes tat:
curl --location --remote-name https://software-download.microsoft.com/pr/Win10_1909_English_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa
- Starten Sie eine Subshell, in der der Variablen „e“ der Wert „1583937294“ zugewiesen wird.
- In Ihrer aktuellen Shell-Umgebung wird der Variable „h“ der Wert „2b05fad63d3a6e2a0c4a20cb49f34e7c“ zugewiesen.
Wie lässt sich das Problem beheben? - Ganz einfach, setzen Sie einfach einfache Anführungszeichen um die URL:
curl --Standort --Remote-Name 'https://software-download.microsoft.com/pr/Win10_1909_English_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa&e=1583937294&h=2b05fad63d3a6e2a0c4a20cb49f34e7c'
Antwort2
Ich habe endlich eine Lösung gefunden und in Firefox ist keine Erweiterung erforderlich.
Nachdem Sie die URL erhalten haben, öffnen Sie eine neue Registerkarte in Firefox und öffnen Sie die Entwicklertools (F12). Wechseln Sie zur Registerkarte „Netzwerk“ und geben Sie die URL für den Download ein. Klicken Sie auf „Abbrechen“, wenn Sie zum Herunterladen aufgefordert werden.
Unter „Netzwerk“ wird jetzt eine GET-Anforderung angezeigt. Klicken Sie mit der rechten Maustaste darauf und wählen Sie Copy > Copy as cURL
. Fügen Sie diesen langen String in Ihr Terminal ein und fügen Sie ihn hinzu, -o [/path/filename]
um die Datei tatsächlich irgendwo zu speichern, anstatt sie auf STDOUT zu übertragen. Das ist alles!
In einem Chromium-basierten Browser: Auf der Microsoft-Download-Seite, nachdem die Schaltflächen „32-Bit-Download“ und „64-Bit-Download“ erstellt wurden. Öffnen Sie die Entwicklertools und wechseln Sie dann zur Registerkarte „Netzwerk“ (diese sollte leer sein). Klicken Sie auf die Schaltfläche „32-Bit-Download“ oder „64-Bit-Download“. Es sollte ein Dialogfeld „Speichern unter“ angezeigt werden. Brechen Sie es ab. Klicken Sie mit der rechten Maustaste auf die neue URL, die auf der Registerkarte „Netzwerk“ aufgeführt ist.Kopieren->Als Curl kopieren
Fügen Sie es dann in das Terminalfenster ein und hängen Sie den -o [/path/filename]
Wert an (Beispiel -o Win10_20H2_v2_English.iso
: ). Der Download sollte nun beginnen.
Antwort3
Ich habe ein Tool namens Mido zur Automatisierung des gesamten Prozesses entwickelt: