mirror of
https://github.com/pbatard/Fido.git
synced 2025-09-17 14:48:02 +02:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e293e97bac | ||
![]() |
b1eebac8dc | ||
![]() |
8508ac6164 | ||
![]() |
eac06c958f | ||
![]() |
2ee5f896d3 | ||
![]() |
28725b287c | ||
![]() |
b7331f7873 |
131
Fido.ps1
131
Fido.ps1
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Fido v1.21 - 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>
|
# Copyright © 2019-2021 Pete Batard <pete@akeo.ie>
|
||||||
# Command line support: Copyright © 2021 flx5
|
# Command line support: Copyright © 2021 flx5
|
||||||
# ConvertTo-ImageSource: Copyright © 2016 Chris Carter
|
# ConvertTo-ImageSource: Copyright © 2016 Chris Carter
|
||||||
@@ -95,6 +95,14 @@ if (!$Cmd) {
|
|||||||
$zh = 0x10000
|
$zh = 0x10000
|
||||||
$ko = 0x20000
|
$ko = 0x20000
|
||||||
$WindowsVersions = @(
|
$WindowsVersions = @(
|
||||||
|
@(
|
||||||
|
@("Windows 11", "windows11"),
|
||||||
|
@(
|
||||||
|
"21H2 (Build 22000.194 - 2021.10)",
|
||||||
|
@("Windows 11 Home/Pro", 2069),
|
||||||
|
@("Windows 11 Home China ", ($zh + 2070))
|
||||||
|
)
|
||||||
|
),
|
||||||
@(
|
@(
|
||||||
@("Windows 10", "Windows10ISO"),
|
@("Windows 10", "Windows10ISO"),
|
||||||
@(
|
@(
|
||||||
@@ -139,6 +147,12 @@ $WindowsVersions = @(
|
|||||||
@("Windows 10 Education", 1216),
|
@("Windows 10 Education", 1216),
|
||||||
@("Windows 10 Home China ", ($zh + 1215))
|
@("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)",
|
"1809 R2 (Build 17763.107 - 2018.10)",
|
||||||
@("Windows 10 Home/Pro", 1060),
|
@("Windows 10 Home/Pro", 1060),
|
||||||
@@ -246,6 +260,31 @@ $WindowsVersions = @(
|
|||||||
@("Windows 7 Professional", 1),
|
@("Windows 7 Professional", 1),
|
||||||
@("Windows 7 Home Premium", 2)
|
@("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++
|
$i++
|
||||||
}
|
}
|
||||||
|
} elseif ($WindowsVersions[$SelectedVersion][0][1].StartsWith("UEFI_SHELL")) {
|
||||||
|
$languages += @(New-Object PsObject -Property @{ DisplayLanguage = "English (US)"; Language = "en-us"; Id = 0 })
|
||||||
} else {
|
} else {
|
||||||
$url = "https://www.microsoft.com/" + $QueryLocale + "/api/controls/contentinclude/html"
|
$url = "https://www.microsoft.com/" + $QueryLocale + "/api/controls/contentinclude/html"
|
||||||
$url += "?pageId=" + $RequestData["GetLangs"][0]
|
$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
|
# Return an array of download links for each supported arch
|
||||||
function Get-Windows-Download-Links([int]$SelectedVersion, [int]$SelectedEdition, [int]$SkuId, [string]$LanguageName)
|
function Get-Windows-Download-Links([int]$SelectedVersion, [int]$SelectedRelease, [int]$SelectedEdition, [string]$SkuId, [string]$LanguageName)
|
||||||
{
|
{
|
||||||
$links = @()
|
$links = @()
|
||||||
if ($WindowsVersions[$SelectedVersion][0][1] -eq "WIN7") {
|
if ($WindowsVersions[$SelectedVersion][0][1] -eq "WIN7") {
|
||||||
foreach ($Version in $Windows7Versions[$SelectedEdition][$SkuId][2]) {
|
foreach ($Version in $Windows7Versions[$SelectedEdition][$SkuId][2]) {
|
||||||
$links += @(New-Object PsObject -Property @{ Type = $Version[0]; Link = $Version[1] })
|
$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 {
|
} else {
|
||||||
$url = "https://www.microsoft.com/" + $QueryLocale + "/api/controls/contentinclude/html"
|
$url = "https://www.microsoft.com/" + $QueryLocale + "/api/controls/contentinclude/html"
|
||||||
$url += "?pageId=" + $RequestData["GetLinks"][0]
|
$url += "?pageId=" + $RequestData["GetLinks"][0]
|
||||||
@@ -753,7 +823,10 @@ function Process-Download-Link([string]$Url)
|
|||||||
if ($Cmd) {
|
if ($Cmd) {
|
||||||
$pattern = '.*\/(.*\.iso).*'
|
$pattern = '.*\/(.*\.iso).*'
|
||||||
$File = [regex]::Match($Url, $pattern).Groups[1].Value
|
$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)..."
|
Write-Host "Downloading '$File' ($Size)..."
|
||||||
Invoke-WebRequest -UseBasicParsing -Uri $Url -OutFile $File
|
Invoke-WebRequest -UseBasicParsing -Uri $Url -OutFile $File
|
||||||
} else {
|
} else {
|
||||||
@@ -881,7 +954,7 @@ if ($Cmd) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Language selection => Request and populate Arch download links
|
# 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) {
|
if (!$links) {
|
||||||
exit 3
|
exit 3
|
||||||
}
|
}
|
||||||
@@ -896,7 +969,7 @@ if ($Cmd) {
|
|||||||
if (!$Arch -and $Verbosity -ge 1) {
|
if (!$Arch -and $Verbosity -ge 1) {
|
||||||
Write-Host "No architecture specified (-Arch). Defaulting to '$($link.Type)'."
|
Write-Host "No architecture specified (-Arch). Defaulting to '$($link.Type)'."
|
||||||
}
|
}
|
||||||
$Selected += ", " + $link.Type
|
$Selected += ", [" + $link.Type + "]"
|
||||||
$winLink = $link
|
$winLink = $link
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -912,7 +985,7 @@ if ($Cmd) {
|
|||||||
|
|
||||||
# Arch selection => Return selected download link
|
# Arch selection => Return selected download link
|
||||||
if ($GetUrl) {
|
if ($GetUrl) {
|
||||||
Write-Host $winLink.Link
|
Return $winLink.Link
|
||||||
$ExitCode = 0
|
$ExitCode = 0
|
||||||
} else {
|
} else {
|
||||||
Write-Host "Selected: $Selected"
|
Write-Host "Selected: $Selected"
|
||||||
@@ -963,7 +1036,9 @@ $Continue.add_click({
|
|||||||
1 { # Windows Version selection
|
1 { # Windows Version selection
|
||||||
$XMLForm.Title = Get-Translation($English[12])
|
$XMLForm.Title = Get-Translation($English[12])
|
||||||
Refresh-Control($XMLForm)
|
Refresh-Control($XMLForm)
|
||||||
Check-Locale
|
if ($WindowsVersion.SelectedValue.Version.StartsWith("Windows") -and $WindowsVersion.SelectedValue.Version -ne "Windows 7") {
|
||||||
|
Check-Locale
|
||||||
|
}
|
||||||
$releases = Get-Windows-Releases $WindowsVersion.SelectedValue.Index
|
$releases = Get-Windows-Releases $WindowsVersion.SelectedValue.Index
|
||||||
$script:WindowsRelease = Add-Entry $Stage "Release" $releases
|
$script:WindowsRelease = Add-Entry $Stage "Release" $releases
|
||||||
$Back.Content = Get-Translation($English[8])
|
$Back.Content = Get-Translation($English[8])
|
||||||
@@ -990,7 +1065,7 @@ $Continue.add_click({
|
|||||||
4 { # Language selection => Request and populate Arch download links
|
4 { # Language selection => Request and populate Arch download links
|
||||||
$XMLForm.Title = Get-Translation($English[12])
|
$XMLForm.Title = Get-Translation($English[12])
|
||||||
Refresh-Control($XMLForm)
|
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) {
|
if ($links.Length -eq 0) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@@ -1066,8 +1141,8 @@ exit $ExitCode
|
|||||||
# SIG # Begin signature block
|
# SIG # Begin signature block
|
||||||
# MIIcQgYJKoZIhvcNAQcCoIIcMzCCHC8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
# MIIcQgYJKoZIhvcNAQcCoIIcMzCCHC8CAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||||||
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
||||||
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC8WEqsYMEmJywK
|
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBVeU7bDzGt9CJn
|
||||||
# KfrYLzANdf83uJiw/hHlMhc0O5DSUqCCCy4wggVGMIIELqADAgECAhAkaSZj72wM
|
# Kdplh/v8BK9h0xj/RjVturFLFHg7CaCCCy4wggVGMIIELqADAgECAhAkaSZj72wM
|
||||||
# Cjsjz6MQw2SbMA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAkdCMRswGQYDVQQI
|
# Cjsjz6MQw2SbMA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAkdCMRswGQYDVQQI
|
||||||
# ExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoT
|
# ExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoT
|
||||||
# EUNPTU9ETyBDQSBMaW1pdGVkMSMwIQYDVQQDExpDT01PRE8gUlNBIENvZGUgU2ln
|
# EUNPTU9ETyBDQSBMaW1pdGVkMSMwIQYDVQQDExpDT01PRE8gUlNBIENvZGUgU2ln
|
||||||
@@ -1132,17 +1207,17 @@ exit $ExitCode
|
|||||||
# T01PRE8gQ0EgTGltaXRlZDEjMCEGA1UEAxMaQ09NT0RPIFJTQSBDb2RlIFNpZ25p
|
# T01PRE8gQ0EgTGltaXRlZDEjMCEGA1UEAxMaQ09NT0RPIFJTQSBDb2RlIFNpZ25p
|
||||||
# bmcgQ0ECECRpJmPvbAwKOyPPoxDDZJswDQYJYIZIAWUDBAIBBQCgfDAQBgorBgEE
|
# bmcgQ0ECECRpJmPvbAwKOyPPoxDDZJswDQYJYIZIAWUDBAIBBQCgfDAQBgorBgEE
|
||||||
# AYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3
|
# AYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3
|
||||||
# AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgZj12my5nRF4uJIAK
|
# AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQghgbnP9aj+2uYl+dt
|
||||||
# 2pQ8Di2zHfbup/2fmO8hFbjQF04wDQYJKoZIhvcNAQEBBQAEggEANiCQPKwAy5Is
|
# r4bNidYAaOfNCz4F65XJOxpYTtAwDQYJKoZIhvcNAQEBBQAEggEAg0NC2ERbjbTm
|
||||||
# UgY7UngWmcRf7dAUfxnzwUFY7YS8vsTJ1ZhIITiemvZL2h55AmZtDvesU2tKr7oX
|
# tTHqgEwUBGNP8fx3RoV2Uu7diEnQR/mbPxntyk3xjxEGdJdQTCWKSTzGZHgXvq+e
|
||||||
# yBf7c7FcZeP261IVwDZk44Wt9dF4SE+rfg8U1TyTRlyAwCiryXs7rMt6+PzYH4+p
|
# bcNpWiI4VVL3eHsw7KhCClibR6eTV3PfzXpmZFm5ist7kLmbExjqU1xwW5IBSs/9
|
||||||
# ZWpviEltpTG4OfCWNFUbXqTJspdM2+lcT8u+BNVR1Xd+2yaGS+/LDS/bkgnL+bJk
|
# PUlAq9bidlKz9NnYy/2j/lDWK7pxYECRLcQG7OmFw4PrDdSiO9NhoG+2+CwE5RF0
|
||||||
# /uRau5Rc5JQ2S4seZnvSvyhQFLx+drJohKM16QJIWZtU5JpK3yBfkpiS9RyFOurp
|
# qqeUUWWXLYVO4Vqsj/laEOh5NWsQvGoxiKK2x+ei3rt/DsQ/4RtQtClbp+krKG7v
|
||||||
# eY1o8S6KeuMvvBAHUDqW4+tCTNKiEd4uDGngmzclpGJ55mdWTctRpLJRkrvhbemh
|
# ooO8EDGsuWDYKHNu4VVPSb7WKdhOLqRYunT4DaOa/Nl7S8Evipswj6ugD0Fdhz19
|
||||||
# /mv35kpEyKGCDiswgg4nBgorBgEEAYI3AwMBMYIOFzCCDhMGCSqGSIb3DQEHAqCC
|
# cb9p6b59ZqGCDiswgg4nBgorBgEEAYI3AwMBMYIOFzCCDhMGCSqGSIb3DQEHAqCC
|
||||||
# DgQwgg4AAgEDMQ0wCwYJYIZIAWUDBAIBMIH+BgsqhkiG9w0BCRABBKCB7gSB6zCB
|
# DgQwgg4AAgEDMQ0wCwYJYIZIAWUDBAIBMIH+BgsqhkiG9w0BCRABBKCB7gSB6zCB
|
||||||
# 6AIBAQYLYIZIAYb4RQEHFwMwITAJBgUrDgMCGgUABBTo94oXALODEFYBtPH+MW9y
|
# 6AIBAQYLYIZIAYb4RQEHFwMwITAJBgUrDgMCGgUABBSNVXS25QWTWua8aykdDhMJ
|
||||||
# fRlOhwIUUI4EgP1+UyBfXDsSgO4V15w2drgYDzIwMjEwODE1MTE0NDIwWjADAgEe
|
# 3mhCzQIUS2ETr2jWXxMf93x77MboWkKQlEsYDzIwMjExMDA0MjA0NjE4WjADAgEe
|
||||||
# oIGGpIGDMIGAMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9y
|
# oIGGpIGDMIGAMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9y
|
||||||
# YXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMTAvBgNVBAMT
|
# YXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMTAvBgNVBAMT
|
||||||
# KFN5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgU2lnbmVyIC0gRzOgggqLMIIF
|
# KFN5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgU2lnbmVyIC0gRzOgggqLMIIF
|
||||||
@@ -1206,13 +1281,13 @@ exit $ExitCode
|
|||||||
# U3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5l
|
# U3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5l
|
||||||
# dHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0EC
|
# dHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0EC
|
||||||
# EHvU5a+6zAc/oQEjBCJBTRIwCwYJYIZIAWUDBAIBoIGkMBoGCSqGSIb3DQEJAzEN
|
# EHvU5a+6zAc/oQEjBCJBTRIwCwYJYIZIAWUDBAIBoIGkMBoGCSqGSIb3DQEJAzEN
|
||||||
# BgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjEwODE1MTE0NDIwWjAvBgkq
|
# BgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjExMDA0MjA0NjE4WjAvBgkq
|
||||||
# hkiG9w0BCQQxIgQgR0FR9IWPt5STvFFuudk1GbFPg5Fqf4oX0H0kTUPlyuIwNwYL
|
# hkiG9w0BCQQxIgQgCQRf15Lc2WIYkjt+tK2O5aMB8lwbsYGOa8hDIsKzBMwwNwYL
|
||||||
# KoZIhvcNAQkQAi8xKDAmMCQwIgQgxHTOdgB9AjlODaXk3nwUxoD54oIBPP72U+9d
|
# KoZIhvcNAQkQAi8xKDAmMCQwIgQgxHTOdgB9AjlODaXk3nwUxoD54oIBPP72U+9d
|
||||||
# tx/fYfgwCwYJKoZIhvcNAQEBBIIBADVjsVBj2pNLRuiYXP/7w+VOkD8l6/d9uM0b
|
# tx/fYfgwCwYJKoZIhvcNAQEBBIIBAG4XNFoioU2nWY0eeLO56kWzL6zFTqjYS3fL
|
||||||
# 9de0r8JxysW+uPpwtjoQd4uRdVklWBdF1IYRSMgEvXEe08tENDghsn96rtJtsueX
|
# pAjv0sNj7RP0YAUkNC/IK3BQfa/n/pVcrsUTPg0ZECPJJD6ChZfUhrU6YG9o0QGs
|
||||||
# bTUCa9cQeYC1Qwb6DPcpFwYr6ROxXmyLnZT07hNGtZfY0ldww5Oai2qzWRgZnPQL
|
# s7DtvXMykusVV1I+H6pTfKBjuVMhIkzswEyD+PP+FxbKkJZRX0HDv39ltevRs+yk
|
||||||
# gvnBiX1f9CnmFhcM6RVnhAnUkpRmd+sgXMF15vM3sql+R99ou5C+Jfmh9YVWHZk+
|
# ZU9uP5tGCOwrd1JqPYBKnBCjIZb08W7tHdZbYDL+ve2k9qBLmGMIcuJ/9AXzQHJS
|
||||||
# CvOABIeNLf4Ny58etDYlfBilaDluDgatl801zLaRq9kxTwAYlMEqlJ5NfdUdXLWZ
|
# 0YJV24161ZpddNUoLevgvRTdU1nR8DMsZ0RwPZXA9q8Z4jEQbQW0OYwfEr53tTRw
|
||||||
# dDik6XJiPLZFvdOPkwwbqX49JVJqqaRZSV0bx70X1y5MBExoBAg=
|
# z+o4T45hAta+SbpHg4dThdS6wv6gF849BseXSUx8nggduBE+EAc=
|
||||||
# SIG # End signature block
|
# 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://www.gnu.org/licenses/gpl-3.0.en.html)
|
||||||
[](https://github.com/pbatard/Fido/releases)
|
[](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
|
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
|
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
|
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,
|
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/Windows8ISO
|
||||||
* https://www.microsoft.com/software-download/Windows10ISO
|
* https://www.microsoft.com/software-download/Windows10ISO
|
||||||
|
|
||||||
After visiting those with a full browser (Internet Explorer, running through the `Invoke-WebRequest` PowerShell Cmdlet),
|
After checking access to these URLs, to confirm that they are accessible, the script first queries the web API from the
|
||||||
to confirm that they are accessible, the script then queries the web API from the Microsoft servers to first request the
|
Microsoft servers, to request the language selection available for the version of Windows selected, and then requests
|
||||||
language selection available for the version of Windows selected by the user, and then request the actual download links
|
the actual download links for all the architectures available for that language + version.
|
||||||
for all the architectures available for that specific combination of version + language.
|
|
||||||
|
|
||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
|
Reference in New Issue
Block a user