GithubHelp home page GithubHelp logo

iseeyo / fido Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pbatard/fido

0.0 1.0 0.0 92 KB

A PowerShell script to download Windows retail ISOs

License: GNU General Public License v3.0

PowerShell 94.63% Shell 5.37%

fido's Introduction

Fido: Full ISO Download Script (for Windows retail ISOs)

Licence Github stats

Description

Fido is a PowerShell script that is primarily designed to be used in Rufus, but that can also be used in standalone fashion, and whose purpose is to automate access to the official Microsoft Windows retail ISO download links.

This script exists because, while Microsoft does make retail ISO download links freely and publicly available (at least for Windows 8 and Windows 10), it only does so after actively forcing users to jump through a lot of unwarranted hoops, that create an exceedingly counterproductive, if not downright unfriendly, consumer experience and that greatly detract from what people really want (direct access to ISO downloads).

As to the reason one might want to download Windows retail ISOs, as opposed to the ISOs that are generated by Microsoft's own Media Creation Tool (MCT), this is because using official retail ISOs is currently the only way to assert with absolute certainty that the OS content has not been altered. Indeed, because there only exists a single master for each of them, Microsoft retail ISOs are the only ones you can obtain an official SHA-1 for (from MSDN, if you have access to it, or from sites such as this one) allowing you to be 100% sure that the image you are using has not been corrupted and is safe to use.

This, in turn, offers assurance that the content YOU are using to install your OS, which it is indeed critical to validate beforehand if you have the slightest concern about security, does match, bit for bit, the one that Microsoft released.

On the other hand, regardless of the manner in which Microsoft's Media Creation Tool produces its content, because no two MCT ISOs are ever the same (due to MCT always regenerating the ISO content on the fly) it is currently impossible to validate with absolute certainty whether any ISO that was generated by the MCT is safe to use. Especially, unlike what is the case for retail ISOs, it is impossible to tell whether an MCT ISO may have been corrupted after generation.

Hence the need to provide users with a much easier and less restrictive way to access official retail ISOs...

License

GNU General Public License version 3.0 or later.

How it works

The script basically performs the same operation as one might perform when visiting either of the following URLs (that is, provided that you have also changed your User-Agent browser string, since, when they detect that you are using a version of Windows that is the same as the one you are trying to download, the Microsoft web servers at these addresses redirect you away from the pages that allow you to download retail ISOs):

After visiting those with a full browser (Internet Explorer, running through the Invoke-WebRequest PowerShell Cmdlet), to confirm that they are accessible, the script then queries the web API from the Microsoft servers to first request the language selection available for the version of Windows selected by the user, and then request the actual download links for all the architectures available for that specific combination of version + language.

Requirements

PowerShell 3.0 or later is required. However the script will detect if you are using an older version and point you to the relevant PowerShell 3.0 download page if needed (which should only ever occur if you are running a vanilla version of Windows 7).

Also, because Internet Explorer is being invoked behind the scenes, if you haven't gone through the first time setup for Internet Explorer, you may receive an error about this when running the script. If that is the case, then you should make sure that you manually launch IE at least once and complete the setup.

Note however that, if you are running the script elevated, you can work around the above annoyance by using the -DisableFirstRunCustomize option which basically temporarily creates a key of the same name in the registry if it doesn't already exist, to bypass the first time setup error.

Additional Notes

Because of its intended usage with Rufus, this script is not designed to cover every possible retail ISO downloads. Instead we mostly chose the ones that the general public is likely to request. For instance, we currently have no plan to add support for LTSB/LTSC Windows 10 ISOs downloads.

If you are interested in such downloads, then you are kindly invited to visit the relevant download pages from Microsoft such as this one for LTSC versions.

fido's People

Contributors

pbatard avatar tps avatar isos4all avatar mend-bolt-for-github[bot] avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.