1
1
#
2
- # Fido v1.56 - Feature ISO Downloader, for retail Windows images and UEFI Shell
2
+ # Fido v1.57 - Feature ISO Downloader, for retail Windows images and UEFI Shell
3
3
# Copyright © 2019-2024 Pete Batard <[email protected] >
4
4
# Command line support: Copyright © 2021 flx5
5
5
# ConvertTo-ImageSource: Copyright © 2016 Chris Carter
@@ -519,8 +519,8 @@ function Check-Locale
519
519
# Also: "Hi Microsoft. You sure have A LOT OF RESOURCES TO WASTE to have assigned folks of yours to cripple scripts
520
520
# that merely exist because you have chosen to make the user experience from your download website utterly subpar.
521
521
# And while I am glad senpai noticed me (UwU), I feel compelled to ask: Don't you guys have better things to do?"
522
- curl - UseBasicParsing - TimeoutSec $DefaultTimeout - MaximumRedirection 0 $url | Out-Null
523
- curl - UseBasicParsing - TimeoutSec $DefaultTimeout - MaximumRedirection 0 - UserAgent $UserAgent $url | Out-Null
522
+ Invoke-WebRequest - UseBasicParsing - TimeoutSec $DefaultTimeout - MaximumRedirection 0 $url | Out-Null
523
+ Invoke-WebRequest - UseBasicParsing - TimeoutSec $DefaultTimeout - MaximumRedirection 0 - UserAgent $UserAgent $url | Out-Null
524
524
} catch {
525
525
# Of course PowerShell 7 had to BREAK $_.Exception.Status on timeouts...
526
526
if ($_.Exception.Status -eq " Timeout" -or $_.Exception.GetType ().Name -eq " TaskCanceledException" ) {
@@ -580,7 +580,7 @@ function Get-Windows-Languages([int]$SelectedVersion, [int]$SelectedEdition)
580
580
Write-Host Querying $url
581
581
}
582
582
try {
583
- curl - UseBasicParsing - TimeoutSec $DefaultTimeout - MaximumRedirection 0 - UserAgent $UserAgent $url | Out-Null
583
+ Invoke-WebRequest - UseBasicParsing - TimeoutSec $DefaultTimeout - MaximumRedirection 0 - UserAgent $UserAgent $url | Out-Null
584
584
} catch {
585
585
Error($_.Exception.Message )
586
586
return @ ()
@@ -599,7 +599,7 @@ function Get-Windows-Languages([int]$SelectedVersion, [int]$SelectedEdition)
599
599
600
600
$script :SelectedIndex = 0
601
601
try {
602
- $r = curl - Method Post - UseBasicParsing - TimeoutSec $DefaultTimeout - UserAgent $UserAgent - SessionVariable " Session" $url
602
+ $r = Invoke-WebRequest - Method Post - UseBasicParsing - TimeoutSec $DefaultTimeout - UserAgent $UserAgent - SessionVariable " Session" $url
603
603
if ($r -match " errorModalMessage" ) {
604
604
Throw - Error - Req $r - Alt " Could not retrieve languages from server"
605
605
}
@@ -689,7 +689,7 @@ function Get-Windows-Download-Links([int]$SelectedVersion, [int]$SelectedRelease
689
689
$Is64 = [Environment ]::Is64BitOperatingSystem
690
690
# Must add a referer for this request, else Microsoft's servers will deny it
691
691
$ref = " https://www.microsoft.com/software-download/windows11"
692
- $r = curl - Method Post - Headers @ { " Referer" = $ref } - UseBasicParsing - TimeoutSec $DefaultTimeout - UserAgent $UserAgent - WebSession $Session $url
692
+ $r = Invoke-WebRequest - Method Post - Headers @ { " Referer" = $ref } - UseBasicParsing - TimeoutSec $DefaultTimeout - UserAgent $UserAgent - WebSession $Session $url
693
693
if ($r -match " errorModalMessage" ) {
694
694
$Alt = [regex ]::Match($r.Content , ' <p id="errorModalMessage">(.+?)<\/p>' ).Groups[1 ].Value -replace " <[^>]+>" -replace " \s+" , " " -replace " \?\?\?" , " -"
695
695
$Alt = [System.Text.Encoding ]::UTF8.GetString([byte []][char []]$Alt )
@@ -742,7 +742,7 @@ function Process-Download-Link([string]$Url)
742
742
$pattern = ' .*\/(.*\.iso).*'
743
743
$File = [regex ]::Match($Url , $pattern ).Groups[1 ].Value
744
744
# PowerShell implicit conversions are iffy, so we need to force them...
745
- $str_size = (curl - UseBasicParsing - TimeoutSec $DefaultTimeout - Uri $Url - Method Head).Headers.' Content-Length'
745
+ $str_size = (Invoke-WebRequest - UseBasicParsing - TimeoutSec $DefaultTimeout - Uri $Url - Method Head).Headers.' Content-Length'
746
746
$tmp_size = [uint64 ]::Parse($str_size )
747
747
$Size = Size- To- Human- Readable $tmp_size
748
748
Write-Host " Downloading '$File ' ($Size )..."
@@ -1075,8 +1075,8 @@ exit $ExitCode
1075
1075
# SIG # Begin signature block
1076
1076
# MIIkWAYJKoZIhvcNAQcCoIIkSTCCJEUCAQExDzANBglghkgBZQMEAgEFADB5Bgor
1077
1077
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
1078
- # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCD+x1KfwoalW3t
1079
- # +j1Qn14VTLu8yO8vHTqfh8WnOWfDH6CCElkwggVvMIIEV6ADAgECAhBI /JO0YFWU
1078
+ # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCB6/hZgyGy5PCvt
1079
+ # gCtQT/nZSZCBsJLelhii59nr9meeYqCCElkwggVvMIIEV6ADAgECAhBI /JO0YFWU
1080
1080
# jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI
1081
1081
# DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM
1082
1082
# EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy
@@ -1179,22 +1179,22 @@ exit $ExitCode
1179
1179
# aWMgQ29kZSBTaWduaW5nIENBIEVWIFIzNgIRAL+xUAG79ZLUlip3l+pzb6MwDQYJ
1180
1180
# YIZIAWUDBAIBBQCgfDAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYK
1181
1181
# KwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG
1182
- # 9w0BCQQxIgQgGLlbFsVdhuXuMotbf+NkjW7IVEdX7WTMcFCAXDiBTcYwDQYJKoZI
1183
- # hvcNAQEBBQAEggIAGCROL07OfZ00X4+aD9myGgUL+My8yJteh76cI0ECth19gxgF
1184
- # d+b9u8Wfagx9rs63CEJWZvoabdKt3kjQWccjhco1/gjFV/FG6vR7NQenEjt9nvVf
1185
- # H8SNYrTKsnXQbWY2oVgfRhaWXOHFZC1Lb+V/ixqE13UuxdVhkLrksfF+InEVdG4k
1186
- # N5yH67z5vcXe4OIGVdOAA0Fm9arUVLGbbQVETLugsMVqzwCH4whwyBqf6AsDry3P
1187
- # suB3xMGvow25uqJeL6NkZv+t6UScpqfe0lDjUMicMampXRC/KBM0ISUso+sV5wFQ
1188
- # 6Vj5ndq3Uorv5V6HaOaSJiQG9nTzdlphXAAsVAbK5UfSBEOnF70fZQJs77y9eSe3
1189
- # wBJalz7G7HVZ03Tm8e4HR5+Z5XpYT6wWNQbq46ztJn10ypGnReMnTGiA5J+mT5Ji
1190
- # HBHUYkIQAi3kEf3U/GXkq9lliexVZdisDAEX471nyff3iyw08ieZAFUgPsKd/lBY
1191
- # 0cyotndhtaRN39GPMLWenFoiXW8datVk9Dco1eDU8YUO8hOAoV8BJ+XwL7hqk+m3
1192
- # 3uebSME1F/CIyocqUJB9AcUADXN+gsG1w9w/vo8HM0FXbiEhUen/S8JhGvYijSAH
1193
- # nFEgn0kK2a0bvPN+Yrttzd/mJRgC/lvR+0K35/izie8bp0HSxkAj2UWgb4ihgg48
1182
+ # 9w0BCQQxIgQgjGvMX1KUGmTAG0n1x4MezO453CpVTtVYSdFxGu+1e6MwDQYJKoZI
1183
+ # hvcNAQEBBQAEggIALNCfDs1MxfpLMhXG2grYBt5l4UBrnaQ04a5lZHAUU1X7BmwS
1184
+ # gr21XmYKQRq82gwawyhq/ZRDpb4ba2Z7IQN7IRH0IBgZVwUeBE9ZEyYGQehLdF1Y
1185
+ # Q7F2rPODSEdrneR00+KTwN1+DSTNX213LRwjwV0f5Ieu5Bd4CelFpApkxkYcuybM
1186
+ # JSzkXnQOFm06ArNrwTKmlDXvLBKtgUyxsL3oT9xASqBGJx6i/SBbzKjyqD7+aVzq
1187
+ # COXgJCxAO5Wx2DHK+DUfvDfQy/NQ69icRm2AoMTxPI/by8sUbzYTK3dw/wCEQWnJ
1188
+ # ijVxnyUE98OsYejFtCxmpJzq3ST9+TTMXjHQyqztnxTIlGGGVw9aPqK9FHYpclgj
1189
+ # HeT9LWreOdkA4VCdxKYhh0vG7RKPyQzZLSC1BRY4Y8iLWupDPTEfP8LZeE0XeLaO
1190
+ # McSggDRzz+AKbraqn9LWRF4MRAW3V4Aa8tT1LPm4fT1N2mt7r9aNyYcaqMWs5/TR
1191
+ # 9vohkS8lbV5+QX5cDC8n1VborV9QzLM/mPXK/4PSoVuRLVHkZ9FLMRpEf/pBJ7nY
1192
+ # HhXeS2HZ1CAp0xGqj6CUtu0+808D0u07HA4ic4WOdzSfVvgYyCJ4BXg0xVoHR0tf
1193
+ # ox7Xa1FVa0hq7q6i4+tHC8AQl1LDodec1qrrL1ULEK8kU+x9JZuwm/OqIU2hgg48
1194
1194
# MIIOOAYKKwYBBAGCNwMDATGCDigwgg4kBgkqhkiG9w0BBwKggg4VMIIOEQIBAzEN
1195
1195
# MAsGCWCGSAFlAwQCATCCAQ4GCyqGSIb3DQEJEAEEoIH+BIH7MIH4AgEBBgtghkgB
1196
- # hvhFAQcXAzAxMA0GCWCGSAFlAwQCAQUABCCR48Y7/BdjE4WMJ3MTfFvvKHO/MTEE
1197
- # pmvjIcKiDXqFggIUUKVLvq/Rere22pEN7bPPypbSx4kYDzIwMjQwNTMwMTIxNTU3
1196
+ # hvhFAQcXAzAxMA0GCWCGSAFlAwQCAQUABCCpTBNKrwFwdHYx5MKSLOIsjhyUcRDn
1197
+ # ors0b8ClDUtZzwIUGHuZJSxXXydSQjJMKzqMARfqbXIYDzIwMjQwNjE4MTEwNzQ1
1198
1198
# WjADAgEeoIGGpIGDMIGAMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMg
1199
1199
# Q29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMTAv
1200
1200
# BgNVBAMTKFN5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgU2lnbmVyIC0gRzOg
@@ -1258,13 +1258,13 @@ exit $ExitCode
1258
1258
# A1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRy
1259
1259
# dXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBp
1260
1260
# bmcgQ0ECEHvU5a+6zAc/oQEjBCJBTRIwCwYJYIZIAWUDBAIBoIGkMBoGCSqGSIb3
1261
- # DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjQwNTMwMTIxNTU3
1262
- # WjAvBgkqhkiG9w0BCQQxIgQgfg9VtUU2OnGoPQzBzGTbTgCT1w6jp7BxXaoKjZml
1263
- # N6owNwYLKoZIhvcNAQkQAi8xKDAmMCQwIgQgxHTOdgB9AjlODaXk3nwUxoD54oIB
1264
- # PP72U+9dtx/fYfgwCwYJKoZIhvcNAQEBBIIBAKiMf+Bo+QGtVkZBMEwMnI59Codn
1265
- # /T20P0U9weTi03tqkmrxLsk4lyFEbXvcFvnjNfVZhJKUP/BQjVQMXwbJRiRGOkwB
1266
- # jij+VjChUZg4P1E2cIhJWwh48DR26/21xKQoU2IqsFgjZ4STFuR7b/ccJ07EQN8Z
1267
- # Fgd9Ig+Ie2YdHkW4zXKFfQlNOwIyxdrfV8JIurWdaR3rXeh/lrnbBBYaxuX0O9+N
1268
- # hgbgQomjY+YJWnli0UJAHSJjErhMFuaSAKgezbixoINfPYMhbjotimdNl4GMj2yw
1269
- # 9AV+b99mhk6piJwIDuY0GYr4IaCIju46HzgtUDVgNPG3oJrWrFLCRNZuk7E =
1261
+ # DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjQwNjE4MTEwNzQ1
1262
+ # WjAvBgkqhkiG9w0BCQQxIgQgaLj4rStyAc4gYIJwBDnf1sEWzST3OsOyweYfm5EZ
1263
+ # XRswNwYLKoZIhvcNAQkQAi8xKDAmMCQwIgQgxHTOdgB9AjlODaXk3nwUxoD54oIB
1264
+ # PP72U+9dtx/fYfgwCwYJKoZIhvcNAQEBBIIBAIeZ3ykedA8RCnxesyKjJCB1j97D
1265
+ # 4CzvrQzrWlYg+D/A/4QuYXiCirn0q2ONq61EmH6c/zqC4vRwsGfVGFkQqb9GeC0e
1266
+ # JAxqubqBcqdN3aTGdjEkv7BQmxi3OLjcTgS0nsQrkPQD46YOX2Mtx2pt8LqsRKyi
1267
+ # bhhN6WG40hrUnOQFts6pcL6PhFSth7xMh6h/LW9x20R2HBpzvRi8xmK80H7NPH4v
1268
+ # optllo3Cu6xzp1RSDcsbaCx7YopMjIJbqIQf11YMvE52beHFZnZPz1tTPZaNqzvb
1269
+ # Ln1K6LDZP6Zpw9OUvDR2UIRCBCLkw/CYWFx75OpbQgNBoDnZKsdjj1x5WgI =
1270
1270
# SIG # End signature block
0 commit comments