Fix language regexp and force TLS for Windows 8.x

* Non En locales may still return '<select id="product-languages">' instead of
  '<select id="product-languages" ...>' so make sure we account for that case.
* Addresses pbatard/rufus#2148
* Also force TLS for Windows 8.x to address pbatard/rufus#2133
This commit is contained in:
Pete Batard
2023-01-27 13:38:42 +00:00
parent 448cfa72cf
commit 2ca0f62f53

View File

@@ -60,6 +60,11 @@ if ($Win -or $Rel -or $Ed -or $Lang -or $Arch -or $GetUrl) {
$Cmd = $True $Cmd = $True
} }
# The default TLS for Windows 8.x doesn't work with Microsoft's servers so we must force it
if ([System.Environment]::OSVersion.Version -lt (new-object 'Version' 10, 0)) {
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
}
#region Assembly Types #region Assembly Types
$code = @" $code = @"
[DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)] [DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)]
@@ -735,7 +740,7 @@ function Get-Windows-Languages([int]$SelectedVersion, [int]$SelectedEdition)
Throw-Error -Req $r -Alt "Could not retrieve languages from server" Throw-Error -Req $r -Alt "Could not retrieve languages from server"
} }
$r = $r -replace "`n" -replace "`r" $r = $r -replace "`n" -replace "`r"
$pattern = '.*<select id="product-languages"[^>]+>(.*)</select>.*' $pattern = '.*<select id="product-languages"[^>]*>(.*)</select>.*'
$html = [regex]::Match($r, $pattern).Groups[1].Value $html = [regex]::Match($r, $pattern).Groups[1].Value
# Go through an XML conversion to keep all PowerShells happy... # Go through an XML conversion to keep all PowerShells happy...
$html = $html.Replace("selected value", "value") $html = $html.Replace("selected value", "value")
@@ -1210,8 +1215,8 @@ exit $ExitCode
# SIG # Begin signature block # SIG # Begin signature block
# MIIkWQYJKoZIhvcNAQcCoIIkSjCCJEYCAQExDzANBglghkgBZQMEAgEFADB5Bgor # MIIkWQYJKoZIhvcNAQcCoIIkSjCCJEYCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAOpac2NvCU8wgb # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBuOrtG8kcPzgXq
# aXm2UzTNdisic/FJmjqALkx2rTp7VaCCElkwggVvMIIEV6ADAgECAhBI/JO0YFWU # BgHg+QiFj8Krt4hlEdCVsJBR6ZJ3a6CCElkwggVvMIIEV6ADAgECAhBI/JO0YFWU
# jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI # jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI
# DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM # DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM
# EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy # EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy
@@ -1314,23 +1319,23 @@ exit $ExitCode
# aWMgQ29kZSBTaWduaW5nIENBIEVWIFIzNgIRAL+xUAG79ZLUlip3l+pzb6MwDQYJ # aWMgQ29kZSBTaWduaW5nIENBIEVWIFIzNgIRAL+xUAG79ZLUlip3l+pzb6MwDQYJ
# YIZIAWUDBAIBBQCgfDAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYK # YIZIAWUDBAIBBQCgfDAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYK
# KwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG # KwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG
# 9w0BCQQxIgQg2FDAE5Hu2CF2vKfl1X/q022ugFJVjTcwO3Ich9hrIzEwDQYJKoZI # 9w0BCQQxIgQg05raxMBhSlNGSKKC8FJnapa+6vE/03vSGOzVSf+5qz0wDQYJKoZI
# hvcNAQEBBQAEggIAjjh0nIw1L+C64141VG69Gvhn+ju48UdhSc+4opCYZezhs+cl # hvcNAQEBBQAEggIACalF+bzfzG/P8FcTBPsDEskgZxpz9mjcdIdjh8npL3mTg3bY
# UaWB0GOTEk/s8MB4E3Xw7Pxuv7vKNuppvPwsgqNj7mEC0D082nau7X5gpvyNz7FX # KtB03ofjXIAR1uMmNh6PrxWH2aVVrPGXpylvygesYKcT22RJ6ntUDDVtkBsqVJwO
# pvlLzSLjQ3BUkHfKOjedIAiKpj3LoSWoI6mDMlS/CLtbnTF/8Zxr8wMJ883leFqX # 8ek011eBu6pMqabItF0jzKOloNEDUZp7Q9hleVbhY4d9pJpaUYNMOJpWrXqfbL7v
# 8zv3F+JNwu2RbCNrO433bL6gramZJGlEhvEBLpPFitQbpf90fg39+OdxTD5htUF1 # /1PFvvIdgM8O9yZGh4H5BIBx6lti/seL/sP/OGh52AVxRFTH9793dTmtIOzZv2eY
# bW7aLD1mnTTF8Mq7W2IkawqHj215+DcHyRead4aimKkMowQ5kOct5uC1MuQ+NKmI # aHNkC85bI/DWewbIYiV0Zbq+BKHfWSUduqWsrurrFa+hlIdHBz4DW3WQtUNTV7Kl
# IHbNzUzQXwL6vMCLvoixjj6FuoOFrtUzo39mPazdO+rY6p/n3WanDfq2A7WBmmFw # 7VUGuhMGRLFjjLCy15QtBTh/ksyUzPfGFs9pdOIGj9Yo8cLWZGMykX0BSs0Z4onJ
# Nwt0zBNOZ9W4PpXWS2G+M21Tg/bmQCqNwZ4BIGYc3GHJq5RBkct/OL5PzMdBnx47 # CzT+6wKcKgY4RfKxhiZgen2tmtoFReHDk7P9E6IsYviL6eEKNWdSv0wbkh7Nuxu5
# rVqoesZSLLXfwk5AU/MGrHfOTnmJj0YfdB8fwh93RQACYm9d4Oq69tkEXyEGKHDt # OZ1c89DjKAE8A5IvB0BZHGUj1TkbP6bRthKn7wMcPSIwFQnik/wiYIQs/g+q5F2a
# TVYSyOW9qsd5rG6gDHAl8yC0UCpeadcQW7eydnUxiBxGQsrs8xC8dSedP4UxSQEd # gseIPliCTbisfakSXcyUlQtbevfOUfPEXMwC3HL//vTnV085MPs48O2EGabxP4mZ
# xuzAUtTnVUMtnfDF+QGVzLMOaeUaUQoV0PPVojFPaS55z7+Mdg6ZdEfWH5sftK85 # 97SN45zc83QBJ0g4IZCs10sFd7suyjkMsoO3I1907nHcCmVEu9o//XLBc1cmKl6h
# J1EfMp39HgKX8jgRaWVBCMLNty0oCiPrE9e+kHQ1SCrJh1vJ5a+h5wjqd/uhgg49 # Yb0T0rSEDK2QHF2+ixnFQV8gvWSLKPEDE0NFoYma4qmWZ4iWTwBxICFv25yhgg49
# MIIOOQYKKwYBBAGCNwMDATGCDikwgg4lBgkqhkiG9w0BBwKggg4WMIIOEgIBAzEN # MIIOOQYKKwYBBAGCNwMDATGCDikwgg4lBgkqhkiG9w0BBwKggg4WMIIOEgIBAzEN
# MAsGCWCGSAFlAwQCATCCAQ8GCyqGSIb3DQEJEAEEoIH/BIH8MIH5AgEBBgtghkgB # MAsGCWCGSAFlAwQCATCCAQ8GCyqGSIb3DQEJEAEEoIH/BIH8MIH5AgEBBgtghkgB
# hvhFAQcXAzAxMA0GCWCGSAFlAwQCAQUABCBXssU48GczMwdUTL7k3lkrMzxG2EmX # hvhFAQcXAzAxMA0GCWCGSAFlAwQCAQUABCDwb5vT/Kx7f3XOtY0aMxqHCT3QidKj
# Sq8oj8HW4cDJ0gIVAN3GeJOhnYwoDuxcyfPWnBBmn/NzGA8yMDIzMDEyNzEzMjgx # kEs9NzJqSE9KrwIVALbZBdRLvZtYpWrh4HTz6M7Fwf4bGA8yMDIzMDEyNzEzMzkw
# NFowAwIBHqCBhqSBgzCBgDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVj # MFowAwIBHqCBhqSBgzCBgDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVj
# IENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTEw # IENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTEw
# LwYDVQQDEyhTeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1waW5nIFNpZ25lciAtIEcz # LwYDVQQDEyhTeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1waW5nIFNpZ25lciAtIEcz
# oIIKizCCBTgwggQgoAMCAQICEHsFsdRJaFFE98mJ0pwZnRIwDQYJKoZIhvcNAQEL # oIIKizCCBTgwggQgoAMCAQICEHsFsdRJaFFE98mJ0pwZnRIwDQYJKoZIhvcNAQEL
@@ -1393,13 +1398,13 @@ exit $ExitCode
# BgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBU # BgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBU
# cnVzdCBOZXR3b3JrMSgwJgYDVQQDEx9TeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1w # cnVzdCBOZXR3b3JrMSgwJgYDVQQDEx9TeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1w
# aW5nIENBAhB71OWvuswHP6EBIwQiQU0SMAsGCWCGSAFlAwQCAaCBpDAaBgkqhkiG # aW5nIENBAhB71OWvuswHP6EBIwQiQU0SMAsGCWCGSAFlAwQCAaCBpDAaBgkqhkiG
# 9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTIzMDEyNzEzMjgx # 9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTIzMDEyNzEzMzkw
# NFowLwYJKoZIhvcNAQkEMSIEIOGbH9NNW5OS7T9EtQNpf5TMgfankrB7ExZcVQoW # MFowLwYJKoZIhvcNAQkEMSIEIL6hxVS3cJyZxZMUniPbpPaD72eeD6qHIiya5WmG
# vbDpMDcGCyqGSIb3DQEJEAIvMSgwJjAkMCIEIMR0znYAfQI5Tg2l5N58FMaA+eKC # FUgjMDcGCyqGSIb3DQEJEAIvMSgwJjAkMCIEIMR0znYAfQI5Tg2l5N58FMaA+eKC
# ATz+9lPvXbcf32H4MAsGCSqGSIb3DQEBAQSCAQBqvo3EmRC6euDO0Q5aTkWAl/Ce # ATz+9lPvXbcf32H4MAsGCSqGSIb3DQEBAQSCAQB8lQhL6S9feMSy65IN8WkmOxuF
# RCLRpx3wmpGaZgvtknGd8ObJYawWO6s8gay0JpQMs8GHUrbX2gOMtwilBYyF9dLK # dSBOV2W5gB6FZXn/wJbBwB8T7JiacCiYnU4J11sEP6ivBWFEVeMtvZR6uu0SLwNB
# pCqCVkJtZ9ZE6m2xBNNM6Un7pUSDXeKxRCQbek2qS8RZg5m7Qshp3mSHhYGfqiec # 0//Dyrw5SaQvo2P66zzNon611hmMIjyFOpOo5Pd/k7VN6lbqyhufNuNbi2sbAWXJ
# q5bmfpK22NG0/gkRW6olPyN72tbINerskDAiOw024d2YtC+1oZXNFIwvGf7+FAWR # Y0WyfOnkI9/LJFEiKEsBTIJJ9YMea4Qo+2lWLWoiDlIvAbR2geeo0hqzbuyOpE5h
# NNQyvEnwSCzN9+0nO5cd7ggkzEXbeU1cEpY8H0pQivNoMVrPADkOIEyjGug19IsY # TQnXN8alXJebIHO7if6v415e/fvhKEItAdv5dOfwba8Wrr9PmvITb7lWNBCwpW4D
# W4zXj7Ku0WlhwOEDO7T/6h9Bn4NTkPRb7DVXKbVtSaKtXL7omlO6UdHRRUPj # LtrINGph5OVh80mLsWmHfsg6rWkXwNaC6qTbLnoZFa4n828ofSzMogyvAbiE
# SIG # End signature block # SIG # End signature block