mirror of
https://github.com/pbatard/Fido.git
synced 2025-09-16 22:28:02 +02:00
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e293e97bac | ||
![]() |
b1eebac8dc | ||
![]() |
8508ac6164 | ||
![]() |
eac06c958f | ||
![]() |
2ee5f896d3 | ||
![]() |
28725b287c |
263
Fido.ps1
263
Fido.ps1
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Fido v1.22 - Retail Windows ISO Downloader
|
||||
# Fido v1.26 - Feature ISO Downloader, for retail Windows images and UEFI Shell
|
||||
# Copyright © 2019-2021 Pete Batard <pete@akeo.ie>
|
||||
# Command line support: Copyright © 2021 flx5
|
||||
# ConvertTo-ImageSource: Copyright © 2016 Chris Carter
|
||||
@@ -95,6 +95,14 @@ if (!$Cmd) {
|
||||
$zh = 0x10000
|
||||
$ko = 0x20000
|
||||
$WindowsVersions = @(
|
||||
@(
|
||||
@("Windows 11", "windows11"),
|
||||
@(
|
||||
"21H2 (Build 22000.194 - 2021.10)",
|
||||
@("Windows 11 Home/Pro", 2069),
|
||||
@("Windows 11 Home China ", ($zh + 2070))
|
||||
)
|
||||
),
|
||||
@(
|
||||
@("Windows 10", "Windows10ISO"),
|
||||
@(
|
||||
@@ -139,6 +147,12 @@ $WindowsVersions = @(
|
||||
@("Windows 10 Education", 1216),
|
||||
@("Windows 10 Home China ", ($zh + 1215))
|
||||
),
|
||||
@(
|
||||
"1809 R3 (Build 17763.379 - 2019.03)",
|
||||
@("Windows 10 Home/Pro", 1203),
|
||||
@("Windows 10 Education", 1202),
|
||||
@("Windows 10 Home China ", ($zh + 1204))
|
||||
),
|
||||
@(
|
||||
"1809 R2 (Build 17763.107 - 2018.10)",
|
||||
@("Windows 10 Home/Pro", 1060),
|
||||
@@ -246,6 +260,31 @@ $WindowsVersions = @(
|
||||
@("Windows 7 Professional", 1),
|
||||
@("Windows 7 Home Premium", 2)
|
||||
)
|
||||
),
|
||||
@(
|
||||
@("UEFI Shell 2.2", "UEFI_SHELL 2.2"),
|
||||
@(
|
||||
"21H2 (edk2-stable202108)",
|
||||
@("Release", 0),
|
||||
@("Debug", 1)
|
||||
),
|
||||
@(
|
||||
"21H1 (edk2-stable202105)",
|
||||
@("Release", 0),
|
||||
@("Debug", 1)
|
||||
),
|
||||
@(
|
||||
"20H2 (edk2-stable202011)",
|
||||
@("Release", 0),
|
||||
@("Debug", 1)
|
||||
)
|
||||
),
|
||||
@(
|
||||
@("UEFI Shell 2.0", "UEFI_SHELL 2.0"),
|
||||
@(
|
||||
"4.632 [20100426]",
|
||||
@("Release", 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -635,6 +674,8 @@ function Get-Windows-Languages([int]$SelectedVersion, [int]$SelectedEdition)
|
||||
}
|
||||
$i++
|
||||
}
|
||||
} elseif ($WindowsVersions[$SelectedVersion][0][1].StartsWith("UEFI_SHELL")) {
|
||||
$languages += @(New-Object PsObject -Property @{ DisplayLanguage = "English (US)"; Language = "en-us"; Id = 0 })
|
||||
} else {
|
||||
$url = "https://www.microsoft.com/" + $QueryLocale + "/api/controls/contentinclude/html"
|
||||
$url += "?pageId=" + $RequestData["GetLangs"][0]
|
||||
@@ -682,13 +723,42 @@ function Get-Windows-Languages([int]$SelectedVersion, [int]$SelectedEdition)
|
||||
}
|
||||
|
||||
# Return an array of download links for each supported arch
|
||||
function Get-Windows-Download-Links([int]$SelectedVersion, [int]$SelectedEdition, [string]$SkuId, [string]$LanguageName)
|
||||
function Get-Windows-Download-Links([int]$SelectedVersion, [int]$SelectedRelease, [int]$SelectedEdition, [string]$SkuId, [string]$LanguageName)
|
||||
{
|
||||
$links = @()
|
||||
if ($WindowsVersions[$SelectedVersion][0][1] -eq "WIN7") {
|
||||
foreach ($Version in $Windows7Versions[$SelectedEdition][$SkuId][2]) {
|
||||
$links += @(New-Object PsObject -Property @{ Type = $Version[0]; Link = $Version[1] })
|
||||
}
|
||||
} elseif ($WindowsVersions[$SelectedVersion][0][1].StartsWith("UEFI_SHELL")) {
|
||||
$tag = $WindowsVersions[$SelectedVersion][$SelectedRelease][0].Split(' ')[0]
|
||||
$shell_version = $WindowsVersions[$SelectedVersion][0][1].Split(' ')[1]
|
||||
$url = "https://github.com/pbatard/UEFI-Shell/releases/download/" + $tag
|
||||
$link = $url + "/UEFI-Shell-" + $shell_version + "-" + $tag
|
||||
if ($SelectedEdition -eq 0) {
|
||||
$link += "-RELEASE.iso"
|
||||
} else {
|
||||
$link += "-DEBUG.iso"
|
||||
}
|
||||
try {
|
||||
# Read the supported archs from the release URL
|
||||
$url += "/Version.xml"
|
||||
$xml = New-Object System.Xml.XmlDocument
|
||||
if ($Verbosity -ge 2) {
|
||||
Write-Host Querying $url
|
||||
}
|
||||
$xml.Load($url)
|
||||
$sep = ""
|
||||
$archs = ""
|
||||
foreach($arch in $xml.release.supported_archs.arch) {
|
||||
$archs += $sep + $arch
|
||||
$sep = ", "
|
||||
}
|
||||
$links += @(New-Object PsObject -Property @{ Type = $archs; Link = $link })
|
||||
} catch {
|
||||
Error($_.Exception.Message)
|
||||
return @()
|
||||
}
|
||||
} else {
|
||||
$url = "https://www.microsoft.com/" + $QueryLocale + "/api/controls/contentinclude/html"
|
||||
$url += "?pageId=" + $RequestData["GetLinks"][0]
|
||||
@@ -753,7 +823,10 @@ function Process-Download-Link([string]$Url)
|
||||
if ($Cmd) {
|
||||
$pattern = '.*\/(.*\.iso).*'
|
||||
$File = [regex]::Match($Url, $pattern).Groups[1].Value
|
||||
$Size = Size-To-Human-Readable (Invoke-WebRequest -UseBasicParsing -Uri $Url -Method Head).Headers.'Content-Length'
|
||||
# PowerShell implicit conversions are iffy, so we need to force them...
|
||||
$str_size = (Invoke-WebRequest -UseBasicParsing -Uri $Url -Method Head).Headers.'Content-Length'
|
||||
$tmp_size = [uint64]::Parse($str_size)
|
||||
$Size = Size-To-Human-Readable $tmp_size
|
||||
Write-Host "Downloading '$File' ($Size)..."
|
||||
Invoke-WebRequest -UseBasicParsing -Uri $Url -OutFile $File
|
||||
} else {
|
||||
@@ -881,7 +954,7 @@ if ($Cmd) {
|
||||
}
|
||||
|
||||
# Language selection => Request and populate Arch download links
|
||||
$links = Get-Windows-Download-Links $winVersionId $winEditionId $winLanguageId $winLanguageName
|
||||
$links = Get-Windows-Download-Links $winVersionId $winReleaseId $winEditionId $winLanguageId $winLanguageName
|
||||
if (!$links) {
|
||||
exit 3
|
||||
}
|
||||
@@ -896,7 +969,7 @@ if ($Cmd) {
|
||||
if (!$Arch -and $Verbosity -ge 1) {
|
||||
Write-Host "No architecture specified (-Arch). Defaulting to '$($link.Type)'."
|
||||
}
|
||||
$Selected += ", " + $link.Type
|
||||
$Selected += ", [" + $link.Type + "]"
|
||||
$winLink = $link
|
||||
break;
|
||||
}
|
||||
@@ -912,7 +985,7 @@ if ($Cmd) {
|
||||
|
||||
# Arch selection => Return selected download link
|
||||
if ($GetUrl) {
|
||||
Write-Host $winLink.Link
|
||||
Return $winLink.Link
|
||||
$ExitCode = 0
|
||||
} else {
|
||||
Write-Host "Selected: $Selected"
|
||||
@@ -963,7 +1036,9 @@ $Continue.add_click({
|
||||
1 { # Windows Version selection
|
||||
$XMLForm.Title = Get-Translation($English[12])
|
||||
Refresh-Control($XMLForm)
|
||||
if ($WindowsVersion.SelectedValue.Version.StartsWith("Windows") -and $WindowsVersion.SelectedValue.Version -ne "Windows 7") {
|
||||
Check-Locale
|
||||
}
|
||||
$releases = Get-Windows-Releases $WindowsVersion.SelectedValue.Index
|
||||
$script:WindowsRelease = Add-Entry $Stage "Release" $releases
|
||||
$Back.Content = Get-Translation($English[8])
|
||||
@@ -990,7 +1065,7 @@ $Continue.add_click({
|
||||
4 { # Language selection => Request and populate Arch download links
|
||||
$XMLForm.Title = Get-Translation($English[12])
|
||||
Refresh-Control($XMLForm)
|
||||
$links = Get-Windows-Download-Links $WindowsVersion.SelectedValue.Index $ProductEdition.SelectedValue.Id $Language.SelectedValue.Id $Language.SelectedValue.Language
|
||||
$links = Get-Windows-Download-Links $WindowsVersion.SelectedValue.Index $WindowsRelease.SelectedValue.Index $ProductEdition.SelectedValue.Id $Language.SelectedValue.Id $Language.SelectedValue.Language
|
||||
if ($links.Length -eq 0) {
|
||||
break
|
||||
}
|
||||
@@ -1064,10 +1139,10 @@ $XMLForm.ShowDialog() | Out-Null
|
||||
exit $ExitCode
|
||||
|
||||
# SIG # Begin signature block
|
||||
# MIIcQwYJKoZIhvcNAQcCoIIcNDCCHDACAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||||
# MIIcQgYJKoZIhvcNAQcCoIIcMzCCHC8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||||
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
||||
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAmntMmTpBFNzz7
|
||||
# Fdr1eV8O1VgbNVoFgkOjlsq1UXZyy6CCCy4wggVGMIIELqADAgECAhAkaSZj72wM
|
||||
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBVeU7bDzGt9CJn
|
||||
# Kdplh/v8BK9h0xj/RjVturFLFHg7CaCCCy4wggVGMIIELqADAgECAhAkaSZj72wM
|
||||
# Cjsjz6MQw2SbMA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAkdCMRswGQYDVQQI
|
||||
# ExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoT
|
||||
# EUNPTU9ETyBDQSBMaW1pdGVkMSMwIQYDVQQDExpDT01PRE8gUlNBIENvZGUgU2ln
|
||||
@@ -1127,92 +1202,92 @@ exit $ExitCode
|
||||
# fjKOGd97SDMe12X4rsn4gxSTdn1k0I7OvjV9/3IxTZ+evR5sL6iPDAZQ+4wns3bJ
|
||||
# 9ObXwzTijIchhmH+v1V04SF3AwpobLvkyanmz1kl63zsRQ55ZmjoIs2475iFTZYR
|
||||
# PAmK0H+8KCgT+2rKVI2SXM3CZZgGns5IW9S1N5NGQXwH3c/6Q++6Z2H/fUnguzB9
|
||||
# XIDj5hY5S6cxghBrMIIQZwIBATCBkTB9MQswCQYDVQQGEwJHQjEbMBkGA1UECBMS
|
||||
# XIDj5hY5S6cxghBqMIIQZgIBATCBkTB9MQswCQYDVQQGEwJHQjEbMBkGA1UECBMS
|
||||
# R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
|
||||
# T01PRE8gQ0EgTGltaXRlZDEjMCEGA1UEAxMaQ09NT0RPIFJTQSBDb2RlIFNpZ25p
|
||||
# bmcgQ0ECECRpJmPvbAwKOyPPoxDDZJswDQYJYIZIAWUDBAIBBQCgfDAQBgorBgEE
|
||||
# AYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3
|
||||
# AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQg3YrGMVQO6qoD6cPt
|
||||
# bS6JpG4LAHdwqpn65+mFIK20j68wDQYJKoZIhvcNAQEBBQAEggEAaOT1Mq29RraP
|
||||
# g8WgeT6dSzudY/U4rPQOa8PqYGOfs0aAbaqU5LNk9rJyHKmALvKxqUvqoFMtZIBl
|
||||
# wj9WK0rKjaEA0gNUsnhveZxUt84D3R7uDwxsU++5CHg0MWg1+2EGKpxAEhwcjXsJ
|
||||
# CNIKYH52N/bCL1A7b+1sA54InD7CmvW7iFzHOIMYBEnZHalL3pdJHHBZYn5/6FYO
|
||||
# eLpywxEmxAbvBrenDx0Q1YMSKT2yuNv7wkcnmiLAgWrF6mxOWMKPRxZ/PHn4Fmd4
|
||||
# 0a2lheONssR2PonYuz2cy8RGgdCIMOxVjKiAySyrO0rnDEtyUa4z8yRJ47bsyADp
|
||||
# 3GCPoTNZfKGCDiwwgg4oBgorBgEEAYI3AwMBMYIOGDCCDhQGCSqGSIb3DQEHAqCC
|
||||
# DgUwgg4BAgEDMQ0wCwYJYIZIAWUDBAIBMIH/BgsqhkiG9w0BCRABBKCB7wSB7DCB
|
||||
# 6QIBAQYLYIZIAYb4RQEHFwMwITAJBgUrDgMCGgUABBS6Tve1nOlSlyVopkBKK7nB
|
||||
# lrnrfwIVAI34GQCgDsf6NPlJCdRvrIILrKZUGA8yMDIxMDgxOTIwNDYwM1owAwIB
|
||||
# HqCBhqSBgzCBgDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBv
|
||||
# cmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTEwLwYDVQQD
|
||||
# EyhTeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1waW5nIFNpZ25lciAtIEczoIIKizCC
|
||||
# BTgwggQgoAMCAQICEHsFsdRJaFFE98mJ0pwZnRIwDQYJKoZIhvcNAQELBQAwgb0x
|
||||
# CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMW
|
||||
# VmVyaVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDIwMDggVmVyaVNp
|
||||
# Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE4MDYGA1UEAxMvVmVy
|
||||
# aVNpZ24gVW5pdmVyc2FsIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN
|
||||
# MTYwMTEyMDAwMDAwWhcNMzEwMTExMjM1OTU5WjB3MQswCQYDVQQGEwJVUzEdMBsG
|
||||
# A1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRy
|
||||
# dXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBp
|
||||
# bmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7WZ1ZVU+djHJd
|
||||
# GoGi61XzsAGtPHGsMo8Fa4aaJwAyl2pNyWQUSym7wtkpuS7sY7Phzz8LVpD4Yht+
|
||||
# 66YH4t5/Xm1AONSRBudBfHkcy8utG7/YlZHz8O5s+K2WOS5/wSe4eDnFhKXt7a+H
|
||||
# js6Nx23q0pi1Oh8eOZ3D9Jqo9IThxNF8ccYGKbQ/5IMNJsN7CD5N+Qq3M0n/yjvU
|
||||
# 9bKbS+GImRr1wOkzFNbfx4Dbke7+vJJXcnf0zajM/gn1kze+lYhqxdz0sUvUzugJ
|
||||
# kV+1hHk1inisGTKPI8EyQRtZDqk+scz51ivvt9jk1R1tETqS9pPJnONI7rtTDtQ2
|
||||
# l4Z4xaE3AgMBAAGjggF3MIIBczAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgw
|
||||
# BgEB/wIBADBmBgNVHSAEXzBdMFsGC2CGSAGG+EUBBxcDMEwwIwYIKwYBBQUHAgEW
|
||||
# F2h0dHBzOi8vZC5zeW1jYi5jb20vY3BzMCUGCCsGAQUFBwICMBkaF2h0dHBzOi8v
|
||||
# ZC5zeW1jYi5jb20vcnBhMC4GCCsGAQUFBwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0
|
||||
# cDovL3Muc3ltY2QuY29tMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9zLnN5bWNi
|
||||
# LmNvbS91bml2ZXJzYWwtcm9vdC5jcmwwEwYDVR0lBAwwCgYIKwYBBQUHAwgwKAYD
|
||||
# VR0RBCEwH6QdMBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0yMDQ4LTMwHQYDVR0OBBYE
|
||||
# FK9j1sqjToVy4Ke8QfMpojh/gHViMB8GA1UdIwQYMBaAFLZ3+mlIR59TEtXC6gcy
|
||||
# dgfRlwcZMA0GCSqGSIb3DQEBCwUAA4IBAQB16rAt1TQZXDJF/g7h1E+meMFv1+rd
|
||||
# 3E/zociBiPenjxXmQCmt5l30otlWZIRxMCrdHmEXZiBWBpgZjV1x8viXvAn9HJFH
|
||||
# yeLojQP7zJAv1gpsTjPs1rSTyEyQY0g5QCHE3dZuiZg8tZiX6KkGtwnJj1NXQZAv
|
||||
# 4R5NTtzKEHhsQm7wtsX4YVxS9U72a433Snq+8839A9fZ9gOoD+NT9wp17MZ1Lqpm
|
||||
# hQSZt/gGV+HGDvbor9rsmxgfqrnjOgC/zoqUywHbnsc4uw9Sq9HjlANgCk2g/idt
|
||||
# FDL8P5dA4b+ZidvkORS92uTTw+orWrOVWFUEfcea7CMDjYUq0v+uqWGBMIIFSzCC
|
||||
# BDOgAwIBAgIQe9Tlr7rMBz+hASMEIkFNEjANBgkqhkiG9w0BAQsFADB3MQswCQYD
|
||||
# VQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsT
|
||||
# FlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIFNIQTI1
|
||||
# NiBUaW1lU3RhbXBpbmcgQ0EwHhcNMTcxMjIzMDAwMDAwWhcNMjkwMzIyMjM1OTU5
|
||||
# WjCBgDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9u
|
||||
# MR8wHQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTEwLwYDVQQDEyhTeW1h
|
||||
# bnRlYyBTSEEyNTYgVGltZVN0YW1waW5nIFNpZ25lciAtIEczMIIBIjANBgkqhkiG
|
||||
# 9w0BAQEFAAOCAQ8AMIIBCgKCAQEArw6Kqvjcv2l7VBdxRwm9jTyB+HQVd2eQnP3e
|
||||
# TgKeS3b25TY+ZdUkIG0w+d0dg+k/J0ozTm0WiuSNQI0iqr6nCxvSB7Y8tRokKPgb
|
||||
# clE9yAmIJgg6+fpDI3VHcAyzX1uPCB1ySFdlTa8CPED39N0yOJM/5Sym81kjy4De
|
||||
# E035EMmqChhsVWFX0fECLMS1q/JsI9KfDQ8ZbK2FYmn9ToXBilIxq1vYyXRS41ds
|
||||
# Ir9Vf2/KBqs/SrcidmXs7DbylpWBJiz9u5iqATjTryVAmwlT8ClXhVhe6oVIQSGH
|
||||
# 5d600yaye0BTWHmOUjEGTZQDRcTOPAPstwDyOiLFtG/l77CKmwIDAQABo4IBxzCC
|
||||
# AcMwDAYDVR0TAQH/BAIwADBmBgNVHSAEXzBdMFsGC2CGSAGG+EUBBxcDMEwwIwYI
|
||||
# KwYBBQUHAgEWF2h0dHBzOi8vZC5zeW1jYi5jb20vY3BzMCUGCCsGAQUFBwICMBka
|
||||
# F2h0dHBzOi8vZC5zeW1jYi5jb20vcnBhMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6
|
||||
# Ly90cy1jcmwud3Muc3ltYW50ZWMuY29tL3NoYTI1Ni10c3MtY2EuY3JsMBYGA1Ud
|
||||
# JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDB3BggrBgEFBQcBAQRr
|
||||
# MGkwKgYIKwYBBQUHMAGGHmh0dHA6Ly90cy1vY3NwLndzLnN5bWFudGVjLmNvbTA7
|
||||
# BggrBgEFBQcwAoYvaHR0cDovL3RzLWFpYS53cy5zeW1hbnRlYy5jb20vc2hhMjU2
|
||||
# LXRzcy1jYS5jZXIwKAYDVR0RBCEwH6QdMBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0y
|
||||
# MDQ4LTYwHQYDVR0OBBYEFKUTAamfhcwbbhYeXzsxqnk2AHsdMB8GA1UdIwQYMBaA
|
||||
# FK9j1sqjToVy4Ke8QfMpojh/gHViMA0GCSqGSIb3DQEBCwUAA4IBAQBGnq/wuKJf
|
||||
# oplIz6gnSyHNsrmmcnBjL+NVKXs5Rk7nfmUGWIu8V4qSDQjYELo2JPoKe/s702K/
|
||||
# SpQV5oLbilRt/yj+Z89xP+YzCdmiWRD0Hkr+Zcze1GvjUil1AEorpczLm+ipTfe0
|
||||
# F1mSQcO3P4bm9sB/RDxGXBda46Q71Wkm1SF94YBnfmKst04uFZrlnCOvWxHqcalB
|
||||
# +Q15OKmhDc+0sdo+mnrHIsV0zd9HCYbE/JElshuW6YUI6N3qdGBuYKVWeg3IRFjc
|
||||
# 5vlIFJ7lv94AvXexmBRyFCTfxxEsHwA/w0sUxmcczB4Go5BfXFSLPuMzW4IPxbeG
|
||||
# Ak5xn+lmRT92MYICWjCCAlYCAQEwgYswdzELMAkGA1UEBhMCVVMxHTAbBgNVBAoT
|
||||
# FFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVzdCBO
|
||||
# ZXR3b3JrMSgwJgYDVQQDEx9TeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1waW5nIENB
|
||||
# AhB71OWvuswHP6EBIwQiQU0SMAsGCWCGSAFlAwQCAaCBpDAaBgkqhkiG9w0BCQMx
|
||||
# DQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTIxMDgxOTIwNDYwM1owLwYJ
|
||||
# KoZIhvcNAQkEMSIEIM6OPKYAsKxVoMXRBP9F7Zl2wKON8btgHT8BfgSoGJtIMDcG
|
||||
# CyqGSIb3DQEJEAIvMSgwJjAkMCIEIMR0znYAfQI5Tg2l5N58FMaA+eKCATz+9lPv
|
||||
# Xbcf32H4MAsGCSqGSIb3DQEBAQSCAQAyIzqp5DBVgMV4D/NogwqQg3FwjOhbiGTi
|
||||
# zhJtcwdNkoazqxTi/Ys8h8uvpJO9T3VH6ifiCsk+i/NA4HkHQ6PYCYdJ6rKOge/W
|
||||
# ACVNwKRdNz0W5+4yYR+W/UM6ufZ/IkLH68pm3Ld5fHK+1GkAc7POEKYIy8aIf34B
|
||||
# c5vNRL1jBKzMKX4j9B2x6RwnALcXWObN3heM4NauNqXlwEd3Hc+5DKU4bLSuQr3L
|
||||
# bmV7CMK2jb0kvF0WlZe8KtVrpW8OFk9h0Lt8I+6MJ7cNg/U1eJ+Mxb8Qv1oAtNr2
|
||||
# oOL6LLl3fzSmtroxt3gDrtUnj+BlPtQnNVg9+w7y1pohad9oiE/5
|
||||
# AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQghgbnP9aj+2uYl+dt
|
||||
# r4bNidYAaOfNCz4F65XJOxpYTtAwDQYJKoZIhvcNAQEBBQAEggEAg0NC2ERbjbTm
|
||||
# tTHqgEwUBGNP8fx3RoV2Uu7diEnQR/mbPxntyk3xjxEGdJdQTCWKSTzGZHgXvq+e
|
||||
# bcNpWiI4VVL3eHsw7KhCClibR6eTV3PfzXpmZFm5ist7kLmbExjqU1xwW5IBSs/9
|
||||
# PUlAq9bidlKz9NnYy/2j/lDWK7pxYECRLcQG7OmFw4PrDdSiO9NhoG+2+CwE5RF0
|
||||
# qqeUUWWXLYVO4Vqsj/laEOh5NWsQvGoxiKK2x+ei3rt/DsQ/4RtQtClbp+krKG7v
|
||||
# ooO8EDGsuWDYKHNu4VVPSb7WKdhOLqRYunT4DaOa/Nl7S8Evipswj6ugD0Fdhz19
|
||||
# cb9p6b59ZqGCDiswgg4nBgorBgEEAYI3AwMBMYIOFzCCDhMGCSqGSIb3DQEHAqCC
|
||||
# DgQwgg4AAgEDMQ0wCwYJYIZIAWUDBAIBMIH+BgsqhkiG9w0BCRABBKCB7gSB6zCB
|
||||
# 6AIBAQYLYIZIAYb4RQEHFwMwITAJBgUrDgMCGgUABBSNVXS25QWTWua8aykdDhMJ
|
||||
# 3mhCzQIUS2ETr2jWXxMf93x77MboWkKQlEsYDzIwMjExMDA0MjA0NjE4WjADAgEe
|
||||
# oIGGpIGDMIGAMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9y
|
||||
# YXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMTAvBgNVBAMT
|
||||
# KFN5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgU2lnbmVyIC0gRzOgggqLMIIF
|
||||
# ODCCBCCgAwIBAgIQewWx1EloUUT3yYnSnBmdEjANBgkqhkiG9w0BAQsFADCBvTEL
|
||||
# MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
||||
# ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2ln
|
||||
# biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJp
|
||||
# U2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
|
||||
# NjAxMTIwMDAwMDBaFw0zMTAxMTEyMzU5NTlaMHcxCzAJBgNVBAYTAlVTMR0wGwYD
|
||||
# VQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1
|
||||
# c3QgTmV0d29yazEoMCYGA1UEAxMfU3ltYW50ZWMgU0hBMjU2IFRpbWVTdGFtcGlu
|
||||
# ZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALtZnVlVT52Mcl0a
|
||||
# gaLrVfOwAa08cawyjwVrhponADKXak3JZBRLKbvC2Sm5Luxjs+HPPwtWkPhiG37r
|
||||
# pgfi3n9ebUA41JEG50F8eRzLy60bv9iVkfPw7mz4rZY5Ln/BJ7h4OcWEpe3tr4eO
|
||||
# zo3HberSmLU6Hx45ncP0mqj0hOHE0XxxxgYptD/kgw0mw3sIPk35CrczSf/KO9T1
|
||||
# sptL4YiZGvXA6TMU1t/HgNuR7v68kldyd/TNqMz+CfWTN76ViGrF3PSxS9TO6AmR
|
||||
# X7WEeTWKeKwZMo8jwTJBG1kOqT6xzPnWK++32OTVHW0ROpL2k8mc40juu1MO1DaX
|
||||
# hnjFoTcCAwEAAaOCAXcwggFzMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAG
|
||||
# AQH/AgEAMGYGA1UdIARfMF0wWwYLYIZIAYb4RQEHFwMwTDAjBggrBgEFBQcCARYX
|
||||
# aHR0cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoXaHR0cHM6Ly9k
|
||||
# LnN5bWNiLmNvbS9ycGEwLgYIKwYBBQUHAQEEIjAgMB4GCCsGAQUFBzABhhJodHRw
|
||||
# Oi8vcy5zeW1jZC5jb20wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3Muc3ltY2Iu
|
||||
# Y29tL3VuaXZlcnNhbC1yb290LmNybDATBgNVHSUEDDAKBggrBgEFBQcDCDAoBgNV
|
||||
# HREEITAfpB0wGzEZMBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtMzAdBgNVHQ4EFgQU
|
||||
# r2PWyqNOhXLgp7xB8ymiOH+AdWIwHwYDVR0jBBgwFoAUtnf6aUhHn1MS1cLqBzJ2
|
||||
# B9GXBxkwDQYJKoZIhvcNAQELBQADggEBAHXqsC3VNBlcMkX+DuHUT6Z4wW/X6t3c
|
||||
# T/OhyIGI96ePFeZAKa3mXfSi2VZkhHEwKt0eYRdmIFYGmBmNXXHy+Je8Cf0ckUfJ
|
||||
# 4uiNA/vMkC/WCmxOM+zWtJPITJBjSDlAIcTd1m6JmDy1mJfoqQa3CcmPU1dBkC/h
|
||||
# Hk1O3MoQeGxCbvC2xfhhXFL1TvZrjfdKer7zzf0D19n2A6gP41P3CnXsxnUuqmaF
|
||||
# BJm3+AZX4cYO9uiv2uybGB+queM6AL/OipTLAduexzi7D1Kr0eOUA2AKTaD+J20U
|
||||
# Mvw/l0Dhv5mJ2+Q5FL3a5NPD6itas5VYVQR9x5rsIwONhSrS/66pYYEwggVLMIIE
|
||||
# M6ADAgECAhB71OWvuswHP6EBIwQiQU0SMA0GCSqGSIb3DQEBCwUAMHcxCzAJBgNV
|
||||
# BAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMW
|
||||
# U3ltYW50ZWMgVHJ1c3QgTmV0d29yazEoMCYGA1UEAxMfU3ltYW50ZWMgU0hBMjU2
|
||||
# IFRpbWVTdGFtcGluZyBDQTAeFw0xNzEyMjMwMDAwMDBaFw0yOTAzMjIyMzU5NTla
|
||||
# MIGAMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24x
|
||||
# HzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMTAvBgNVBAMTKFN5bWFu
|
||||
# dGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgU2lnbmVyIC0gRzMwggEiMA0GCSqGSIb3
|
||||
# DQEBAQUAA4IBDwAwggEKAoIBAQCvDoqq+Ny/aXtUF3FHCb2NPIH4dBV3Z5Cc/d5O
|
||||
# Ap5LdvblNj5l1SQgbTD53R2D6T8nSjNObRaK5I1AjSKqvqcLG9IHtjy1GiQo+Bty
|
||||
# UT3ICYgmCDr5+kMjdUdwDLNfW48IHXJIV2VNrwI8QPf03TI4kz/lLKbzWSPLgN4T
|
||||
# TfkQyaoKGGxVYVfR8QIsxLWr8mwj0p8NDxlsrYViaf1OhcGKUjGrW9jJdFLjV2wi
|
||||
# v1V/b8oGqz9KtyJ2ZezsNvKWlYEmLP27mKoBONOvJUCbCVPwKVeFWF7qhUhBIYfl
|
||||
# 3rTTJrJ7QFNYeY5SMQZNlANFxM48A+y3API6IsW0b+XvsIqbAgMBAAGjggHHMIIB
|
||||
# wzAMBgNVHRMBAf8EAjAAMGYGA1UdIARfMF0wWwYLYIZIAYb4RQEHFwMwTDAjBggr
|
||||
# BgEFBQcCARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoX
|
||||
# aHR0cHM6Ly9kLnN5bWNiLmNvbS9ycGEwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDov
|
||||
# L3RzLWNybC53cy5zeW1hbnRlYy5jb20vc2hhMjU2LXRzcy1jYS5jcmwwFgYDVR0l
|
||||
# AQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQDAgeAMHcGCCsGAQUFBwEBBGsw
|
||||
# aTAqBggrBgEFBQcwAYYeaHR0cDovL3RzLW9jc3Aud3Muc3ltYW50ZWMuY29tMDsG
|
||||
# CCsGAQUFBzAChi9odHRwOi8vdHMtYWlhLndzLnN5bWFudGVjLmNvbS9zaGEyNTYt
|
||||
# dHNzLWNhLmNlcjAoBgNVHREEITAfpB0wGzEZMBcGA1UEAxMQVGltZVN0YW1wLTIw
|
||||
# NDgtNjAdBgNVHQ4EFgQUpRMBqZ+FzBtuFh5fOzGqeTYAex0wHwYDVR0jBBgwFoAU
|
||||
# r2PWyqNOhXLgp7xB8ymiOH+AdWIwDQYJKoZIhvcNAQELBQADggEBAEaer/C4ol+i
|
||||
# mUjPqCdLIc2yuaZycGMv41UpezlGTud+ZQZYi7xXipINCNgQujYk+gp7+zvTYr9K
|
||||
# lBXmgtuKVG3/KP5nz3E/5jMJ2aJZEPQeSv5lzN7Ua+NSKXUASiulzMub6KlN97QX
|
||||
# WZJBw7c/hub2wH9EPEZcF1rjpDvVaSbVIX3hgGd+Yqy3Ti4VmuWcI69bEepxqUH5
|
||||
# DXk4qaENz7Sx2j6aescixXTN30cJhsT8kSWyG5bphQjo3ep0YG5gpVZ6DchEWNzm
|
||||
# +UgUnuW/3gC9d7GYFHIUJN/HESwfAD/DSxTGZxzMHgajkF9cVIs+4zNbgg/Ft4YC
|
||||
# TnGf6WZFP3YxggJaMIICVgIBATCBizB3MQswCQYDVQQGEwJVUzEdMBsGA1UEChMU
|
||||
# U3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5l
|
||||
# dHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0EC
|
||||
# EHvU5a+6zAc/oQEjBCJBTRIwCwYJYIZIAWUDBAIBoIGkMBoGCSqGSIb3DQEJAzEN
|
||||
# BgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjExMDA0MjA0NjE4WjAvBgkq
|
||||
# hkiG9w0BCQQxIgQgCQRf15Lc2WIYkjt+tK2O5aMB8lwbsYGOa8hDIsKzBMwwNwYL
|
||||
# KoZIhvcNAQkQAi8xKDAmMCQwIgQgxHTOdgB9AjlODaXk3nwUxoD54oIBPP72U+9d
|
||||
# tx/fYfgwCwYJKoZIhvcNAQEBBIIBAG4XNFoioU2nWY0eeLO56kWzL6zFTqjYS3fL
|
||||
# pAjv0sNj7RP0YAUkNC/IK3BQfa/n/pVcrsUTPg0ZECPJJD6ChZfUhrU6YG9o0QGs
|
||||
# s7DtvXMykusVV1I+H6pTfKBjuVMhIkzswEyD+PP+FxbKkJZRX0HDv39ltevRs+yk
|
||||
# ZU9uP5tGCOwrd1JqPYBKnBCjIZb08W7tHdZbYDL+ve2k9qBLmGMIcuJ/9AXzQHJS
|
||||
# 0YJV24161ZpddNUoLevgvRTdU1nR8DMsZ0RwPZXA9q8Z4jEQbQW0OYwfEr53tTRw
|
||||
# z+o4T45hAta+SbpHg4dThdS6wv6gF849BseXSUx8nggduBE+EAc=
|
||||
# SIG # End signature block
|
||||
|
13
README.md
13
README.md
@@ -1,5 +1,5 @@
|
||||
Fido: Full ISO Download Script (for Windows retail ISOs)
|
||||
========================================================
|
||||
Fido: A PowerShell download script for Windows ISOs and UEFI Shell
|
||||
==================================================================
|
||||
|
||||
[](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
||||
[](https://github.com/pbatard/Fido/releases)
|
||||
@@ -9,7 +9,7 @@ Description
|
||||
|
||||
Fido is a PowerShell script that is primarily designed to be used in [Rufus](https://github.com/pbatard/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.
|
||||
ISO download links as well as provide convenient access to bootable UEFI Shell images.
|
||||
|
||||
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,
|
||||
@@ -50,10 +50,9 @@ redirect you __away__ from the pages that allow you to download retail ISOs):
|
||||
* https://www.microsoft.com/software-download/Windows8ISO
|
||||
* https://www.microsoft.com/software-download/Windows10ISO
|
||||
|
||||
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.
|
||||
After checking access to these URLs, to confirm that they are accessible, the script first queries the web API from the
|
||||
Microsoft servers, to request the language selection available for the version of Windows selected, and then requests
|
||||
the actual download links for all the architectures available for that language + version.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
Reference in New Issue
Block a user