From a50595a606544ab44bd6ec4e67625d547725279c Mon Sep 17 00:00:00 2001 From: Dmitry Nefedov Date: Sun, 17 Sep 2023 14:55:09 +0300 Subject: [PATCH] #532 fixed --- Wrapper/Localizations/de-DE/ui.json | 3 +- Wrapper/Localizations/en-US/ui.json | 3 +- Wrapper/Localizations/ru-RU/ui.json | 3 +- Wrapper/SophiaScriptWrapper.exe | Bin 2536960 -> 2537472 bytes .../Module/Sophia.psm1 | 198 ++++++++--------- .../Module/Sophia.psm1 | 160 +++++++------- .../Module/Sophia.psm1 | 157 +++++++------- .../Module/Sophia.psm1 | 201 +++++++++--------- .../Module/Sophia.psm1 | 197 ++++++++--------- .../Module/Sophia.psm1 | 198 ++++++++--------- 10 files changed, 563 insertions(+), 557 deletions(-) diff --git a/Wrapper/Localizations/de-DE/ui.json b/Wrapper/Localizations/de-DE/ui.json index 6bb11ac8..5970652d 100644 --- a/Wrapper/Localizations/de-DE/ui.json +++ b/Wrapper/Localizations/de-DE/ui.json @@ -67,7 +67,8 @@ "messageBoxDoesNotExist": "existiert nicht", "messageBoxPresetNotComp": "Voreinstellung ist nicht kompatibel!", "messageBoxFilesMissingClose": "Die erforderlichen Sophia Script Wrapper-Dateien fehlen. Das Programm wird geschlossen.", - "messageBoxConsoleEmpty": "Die Konsole ist leer.\n Drücken Sie die Schaltfläche Konsole aktualisieren, um ein Skript entsprechend Ihrer Auswahl zu erstellen." + "messageBoxConsoleEmpty": "Die Konsole ist leer.\n Drücken Sie die Schaltfläche Konsole aktualisieren, um ein Skript entsprechend Ihrer Auswahl zu erstellen.", + "messageBoxPowerShellVersionNotInstalled": "Die von Ihnen ausgewählte PowerShell-Version ist nicht installiert." } } ] diff --git a/Wrapper/Localizations/en-US/ui.json b/Wrapper/Localizations/en-US/ui.json index 18ac93c1..1ca6af17 100644 --- a/Wrapper/Localizations/en-US/ui.json +++ b/Wrapper/Localizations/en-US/ui.json @@ -67,7 +67,8 @@ "messageBoxDoesNotExist": "does not exist", "messageBoxPresetNotComp": "preset file is not compatible!", "messageBoxFilesMissingClose": "Files missing so Sophia Script Wrapper will close.", - "messageBoxConsoleEmpty": "The console is empty.\nClick 'Refresh Console' button to create script with your selections." + "messageBoxConsoleEmpty": "The console is empty.\nClick 'Refresh Console' button to create script with your selections.", + "messageBoxPowerShellVersionNotInstalled": "PowerShell version you selected is not installed." } } ] diff --git a/Wrapper/Localizations/ru-RU/ui.json b/Wrapper/Localizations/ru-RU/ui.json index c1174a4b..bcb579a9 100644 --- a/Wrapper/Localizations/ru-RU/ui.json +++ b/Wrapper/Localizations/ru-RU/ui.json @@ -67,7 +67,8 @@ "messageBoxDoesNotExist": "не существует", "messageBoxPresetNotComp": "Пресет не совместим!", "messageBoxFilesMissingClose": "Отсутствуют необходимые файлы Sophia Script Wrapper. Программа будет закрыта.", - "messageBoxConsoleEmpty": "Консоль пуста.\nНажмите кнопку \"Обновить консоль\", чтобы создать скрипт согласно вышему выбору." + "messageBoxConsoleEmpty": "Консоль пуста.\nНажмите кнопку \"Обновить консоль\", чтобы создать скрипт согласно вышему выбору.", + "messageBoxPowerShellVersionNotInstalled": "Выбранная вами версия PowerShell не установлена." } } ] diff --git a/Wrapper/SophiaScriptWrapper.exe b/Wrapper/SophiaScriptWrapper.exe index acb44eee30b9f72160a2a660fe9d2991890e95ce..ee2b6e7dcbed7d4a3c734a9568c19efcd6464347 100644 GIT binary patch delta 117053 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 QHtre{f#j)OL&kXh52N#Mr~m)} delta 116265 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%0D30HEBYlU$6pqsHuk({;47#@&K}R!NVp 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 UYQWa<>h7Qj?0&L4Xq@|h0A<9qr~m)} diff --git a/src/Sophia_Script_for_Windows_10/Module/Sophia.psm1 b/src/Sophia_Script_for_Windows_10/Module/Sophia.psm1 index c7f07822..56a621ad 100644 --- a/src/Sophia_Script_for_Windows_10/Module/Sophia.psm1 +++ b/src/Sophia_Script_for_Windows_10/Module/Sophia.psm1 @@ -100,12 +100,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -171,7 +171,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://c2rsetup.officeapps.live.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -402,12 +402,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -422,6 +422,7 @@ public static string GetString(uint strId) } $LatestRelease = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_10_PowerShell_5_1 $CurrentRelease = (Get-Module -Name Sophia).Version.ToString() + if ([System.Version]$LatestRelease -gt [System.Version]$CurrentRelease) { Write-Warning -Message $Localization.UnsupportedRelease @@ -439,7 +440,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://github.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -710,12 +711,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -738,44 +739,44 @@ public static string GetString(uint strId) # https://github.com/crazy-max/WindowsSpyBlocker/tree/master/data/hosts $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" + UseBasicParsing = $true + Verbose = $true } $extra = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" + UseBasicParsing = $true + Verbose = $true } $extra_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" + UseBasicParsing = $true + Verbose = $true } $spy = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" + UseBasicParsing = $true + Verbose = $true } $spy_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" + UseBasicParsing = $true + Verbose = $true } $update = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" + UseBasicParsing = $true + Verbose = $true } $update_v6 = (Invoke-WebRequest @Parameters).Content @@ -816,7 +817,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4384,12 +4385,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4490,7 +4491,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4504,12 +4505,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4610,7 +4611,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4932,8 +4933,8 @@ public static bool MarkFileDelete (string sourcefile) Remove-Item -Path $Path -Recurse -Force -ErrorAction Ignore Unregister-ScheduledTask -TaskName *OneDrive* -Confirm:$false -ErrorAction Ignore - # Getting the OneDrive folder path - $OneDriveFolder = Split-Path -Path (Split-Path -Path $OneDriveSetup[0] -Parent) + # Getting the OneDrive folder path and replacing quotes if exist + $OneDriveFolder = (Split-Path -Path (Split-Path -Path $OneDriveSetup[0] -Parent)) -replace '"', "" # Terminate the File Explorer process New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name AutoRestartShell -PropertyType DWord -Value 0 -Force @@ -5002,12 +5003,12 @@ public static bool MarkFileDelete (string sourcefile) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -5050,7 +5051,7 @@ public static bool MarkFileDelete (string sourcefile) Remove-Item -Path "$DownloadsFolder\OneDriveSetup.exe" -Force } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -6551,12 +6552,12 @@ function WindowsCapabilities { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -6565,7 +6566,7 @@ function WindowsCapabilities $ButtonContent = $Localization.Install $ButtonAdd_Click = {InstallButton} } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -6915,12 +6916,12 @@ function IPv6Component { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -6955,7 +6956,7 @@ function IPv6Component Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -9956,12 +9957,12 @@ function InstallVCRedist { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -10008,7 +10009,7 @@ function InstallVCRedist Get-ChildItem -Path $Paths -Recurse -Force | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -10036,12 +10037,12 @@ function InstallDotNetRuntimes { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -10146,7 +10147,7 @@ function InstallDotNetRuntimes Get-ChildItem -Path $Paths -Force -ErrorAction Ignore | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -11769,17 +11770,17 @@ function HEVC { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -11834,6 +11835,7 @@ function HEVC Write-Information -MessageData "" -InformationAction Continue # Extract the localized "Please wait..." string from shell32.dll Write-Verbose -Message ([WinAPI.GetStr]::GetString(12612)) -Verbose + Write-Verbose -Message $Localization.HEVCDownloading -Verbose $DownloadsFolder = Get-ItemPropertyValue -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}" @@ -14775,12 +14777,12 @@ function BitmapImageNewContext { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -14790,7 +14792,7 @@ function BitmapImageNewContext Get-WindowsCapability -Online -Name "Microsoft.Windows.MSPaint*" | Add-WindowsCapability -Online } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -14866,12 +14868,12 @@ function RichTextDocumentNewContext { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -14881,7 +14883,7 @@ function RichTextDocumentNewContext Get-WindowsCapability -Online -Name "Microsoft.Windows.WordPad*" | Add-WindowsCapability -Online } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue diff --git a/src/Sophia_Script_for_Windows_10_LTSC_2019/Module/Sophia.psm1 b/src/Sophia_Script_for_Windows_10_LTSC_2019/Module/Sophia.psm1 index 22de3517..b6a8e496 100644 --- a/src/Sophia_Script_for_Windows_10_LTSC_2019/Module/Sophia.psm1 +++ b/src/Sophia_Script_for_Windows_10_LTSC_2019/Module/Sophia.psm1 @@ -299,12 +299,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -319,6 +319,7 @@ public static string GetString(uint strId) } $LatestRelease = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_10_LTSC2019 $CurrentRelease = (Get-Module -Name Sophia).Version.ToString() + if ([System.Version]$LatestRelease -gt [System.Version]$CurrentRelease) { Write-Warning -Message $Localization.UnsupportedRelease @@ -336,7 +337,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://github.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -573,12 +574,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -601,44 +602,44 @@ public static string GetString(uint strId) # https://github.com/crazy-max/WindowsSpyBlocker/tree/master/data/hosts $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" + UseBasicParsing = $true + Verbose = $true } $extra = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" + UseBasicParsing = $true + Verbose = $true } $extra_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" + UseBasicParsing = $true + Verbose = $true } $spy = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" + UseBasicParsing = $true + Verbose = $true } $spy_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" + UseBasicParsing = $true + Verbose = $true } $update = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" + UseBasicParsing = $true + Verbose = $true } $update_v6 = (Invoke-WebRequest @Parameters).Content @@ -679,7 +680,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -798,8 +799,7 @@ public static string GetString(uint strId) $Script:No = [WinAPI.GetStr]::GetString(33232).Replace("&", "") # Extract the localized "&Yes" string from shell32.dll $Script:Yes = [WinAPI.GetStr]::GetString(33224).Replace("&", "") - # Extract the localized "Waiting for confirmation" string from shell32.dll - $Script:Wait = [WinAPI.GetStr]::GetString(33252) + $Script:KeyboardArrows = $Localization.KeyboardArrows -f [System.Char]::ConvertFromUtf32(0x1F815), [System.Char]::ConvertFromUtf32(0x1F817) # Extract the localized "Skip" string from shell32.dll $Script:Skip = [WinAPI.GetStr]::GetString(16956) @@ -3336,12 +3336,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -3442,7 +3442,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -3456,12 +3456,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -3562,7 +3562,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -5191,12 +5191,12 @@ function WindowsCapabilities { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -5205,7 +5205,7 @@ function WindowsCapabilities $ButtonContent = $Localization.Install $ButtonAdd_Click = {InstallButton} } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -5555,12 +5555,12 @@ function IPv6Component { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -5595,7 +5595,7 @@ function IPv6Component Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -8255,12 +8255,12 @@ function InstallVCRedist { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -8307,7 +8307,7 @@ function InstallVCRedist Get-ChildItem -Path $Paths -Recurse -Force | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -8335,12 +8335,12 @@ function InstallDotNetRuntimes { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -8445,7 +8445,7 @@ function InstallDotNetRuntimes Get-ChildItem -Path $Paths -Force -ErrorAction Ignore | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -11205,12 +11205,12 @@ function BitmapImageNewContext { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -11220,7 +11220,7 @@ function BitmapImageNewContext Get-WindowsCapability -Online -Name "Microsoft.Windows.MSPaint*" | Add-WindowsCapability -Online } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -11296,12 +11296,12 @@ function RichTextDocumentNewContext { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -11311,7 +11311,7 @@ function RichTextDocumentNewContext Get-WindowsCapability -Online -Name "Microsoft.Windows.WordPad*" | Add-WindowsCapability -Online } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue diff --git a/src/Sophia_Script_for_Windows_10_LTSC_2021/Module/Sophia.psm1 b/src/Sophia_Script_for_Windows_10_LTSC_2021/Module/Sophia.psm1 index 09bce2c6..6878647d 100644 --- a/src/Sophia_Script_for_Windows_10_LTSC_2021/Module/Sophia.psm1 +++ b/src/Sophia_Script_for_Windows_10_LTSC_2021/Module/Sophia.psm1 @@ -299,12 +299,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -319,6 +319,7 @@ public static string GetString(uint strId) } $LatestRelease = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_10_LTSC2021 $CurrentRelease = (Get-Module -Name Sophia).Version.ToString() + if ([System.Version]$LatestRelease -gt [System.Version]$CurrentRelease) { Write-Warning -Message $Localization.UnsupportedRelease @@ -336,7 +337,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://github.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -573,12 +574,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -601,44 +602,44 @@ public static string GetString(uint strId) # https://github.com/crazy-max/WindowsSpyBlocker/tree/master/data/hosts $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" + UseBasicParsing = $true + Verbose = $true } $extra = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" + UseBasicParsing = $true + Verbose = $true } $extra_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" + UseBasicParsing = $true + Verbose = $true } $spy = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" + UseBasicParsing = $true + Verbose = $true } $spy_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" + UseBasicParsing = $true + Verbose = $true } $update = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" + UseBasicParsing = $true + Verbose = $true } $update_v6 = (Invoke-WebRequest @Parameters).Content @@ -679,7 +680,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -3706,12 +3707,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -3812,7 +3813,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -3826,12 +3827,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -3932,7 +3933,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -5577,12 +5578,12 @@ function WindowsCapabilities { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -5591,7 +5592,7 @@ function WindowsCapabilities $ButtonContent = $Localization.Install $ButtonAdd_Click = {InstallButton} } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -5941,12 +5942,12 @@ function IPv6Component { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -5981,7 +5982,7 @@ function IPv6Component Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -8879,12 +8880,12 @@ function InstallVCRedist { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -8931,7 +8932,7 @@ function InstallVCRedist Get-ChildItem -Path $Paths -Recurse -Force | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -8959,12 +8960,12 @@ function InstallDotNetRuntimes { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -9069,7 +9070,7 @@ function InstallDotNetRuntimes Get-ChildItem -Path $Paths -Force -ErrorAction Ignore | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -12374,12 +12375,12 @@ function BitmapImageNewContext { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -12389,7 +12390,7 @@ function BitmapImageNewContext Get-WindowsCapability -Online -Name "Microsoft.Windows.MSPaint*" | Add-WindowsCapability -Online } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -12465,12 +12466,12 @@ function RichTextDocumentNewContext { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -12480,7 +12481,7 @@ function RichTextDocumentNewContext Get-WindowsCapability -Online -Name "Microsoft.Windows.WordPad*" | Add-WindowsCapability -Online } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue diff --git a/src/Sophia_Script_for_Windows_10_PowerShell_7/Module/Sophia.psm1 b/src/Sophia_Script_for_Windows_10_PowerShell_7/Module/Sophia.psm1 index 6d06b0a1..b3454f7b 100644 --- a/src/Sophia_Script_for_Windows_10_PowerShell_7/Module/Sophia.psm1 +++ b/src/Sophia_Script_for_Windows_10_PowerShell_7/Module/Sophia.psm1 @@ -96,12 +96,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -167,7 +167,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://c2rsetup.officeapps.live.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -403,12 +403,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -423,6 +423,7 @@ public static string GetString(uint strId) } $LatestRelease = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_10_PowerShell_7 $CurrentRelease = (Get-Module -Name Sophia).Version.ToString() + if ([System.Version]$LatestRelease -gt [System.Version]$CurrentRelease) { Write-Warning -Message $Localization.UnsupportedRelease @@ -440,7 +441,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://github.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -711,12 +712,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -739,44 +740,44 @@ public static string GetString(uint strId) # https://github.com/crazy-max/WindowsSpyBlocker/tree/master/data/hosts $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" + UseBasicParsing = $true + Verbose = $true } $extra = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" + UseBasicParsing = $true + Verbose = $true } $extra_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" + UseBasicParsing = $true + Verbose = $true } $spy = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" + UseBasicParsing = $true + Verbose = $true } $spy_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" + UseBasicParsing = $true + Verbose = $true } $update = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" + UseBasicParsing = $true + Verbose = $true } $update_v6 = (Invoke-WebRequest @Parameters).Content @@ -817,7 +818,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4388,12 +4389,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4494,7 +4495,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4508,12 +4509,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4614,7 +4615,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4936,8 +4937,8 @@ public static bool MarkFileDelete (string sourcefile) Remove-Item -Path $Path -Recurse -Force -ErrorAction Ignore Unregister-ScheduledTask -TaskName *OneDrive* -Confirm:$false -ErrorAction Ignore - # Getting the OneDrive folder path - $OneDriveFolder = Split-Path -Path (Split-Path -Path $OneDriveSetup[0] -Parent) + # Getting the OneDrive folder path and replacing quotes if exist + $OneDriveFolder = (Split-Path -Path (Split-Path -Path $OneDriveSetup[0] -Parent)) -replace '"', "" # Terminate the File Explorer process New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name AutoRestartShell -PropertyType DWord -Value 0 -Force @@ -5006,12 +5007,12 @@ public static bool MarkFileDelete (string sourcefile) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -5054,7 +5055,7 @@ public static bool MarkFileDelete (string sourcefile) Remove-Item -Path "$DownloadsFolder\OneDriveSetup.exe" -Force } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -6555,13 +6556,12 @@ function WindowsCapabilities { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - SslProtocol = "Tls12" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -6570,7 +6570,7 @@ function WindowsCapabilities $ButtonContent = $Localization.Install $ButtonAdd_Click = {InstallButton} } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -6920,12 +6920,12 @@ function IPv6Component { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -6960,7 +6960,7 @@ function IPv6Component Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -9961,12 +9961,12 @@ function InstallVCRedist { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -10013,7 +10013,7 @@ function InstallVCRedist Get-ChildItem -Path $Paths -Recurse -Force | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -10041,12 +10041,12 @@ function InstallDotNetRuntimes { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -10151,7 +10151,7 @@ function InstallDotNetRuntimes Get-ChildItem -Path $Paths -Force -ErrorAction Ignore | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -11794,17 +11794,17 @@ function HEVC { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -11859,6 +11859,7 @@ function HEVC Write-Information -MessageData "" -InformationAction Continue # Extract the localized "Please wait..." string from shell32.dll Write-Verbose -Message ([WinAPI.GetStr]::GetString(12612)) -Verbose + Write-Verbose -Message $Localization.HEVCDownloading -Verbose $DownloadsFolder = Get-ItemPropertyValue -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}" @@ -14800,13 +14801,12 @@ function BitmapImageNewContext { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - SslProtocol = "Tls12" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -14816,7 +14816,7 @@ function BitmapImageNewContext Get-WindowsCapability -Online -Name "Microsoft.Windows.MSPaint*" | Add-WindowsCapability -Online } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -14892,13 +14892,12 @@ function RichTextDocumentNewContext { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - SslProtocol = "Tls12" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -14908,7 +14907,7 @@ function RichTextDocumentNewContext Get-WindowsCapability -Online -Name "Microsoft.Windows.WordPad*" | Add-WindowsCapability -Online } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue diff --git a/src/Sophia_Script_for_Windows_11/Module/Sophia.psm1 b/src/Sophia_Script_for_Windows_11/Module/Sophia.psm1 index 8dd03118..d0192188 100644 --- a/src/Sophia_Script_for_Windows_11/Module/Sophia.psm1 +++ b/src/Sophia_Script_for_Windows_11/Module/Sophia.psm1 @@ -99,12 +99,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -170,7 +170,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://c2rsetup.officeapps.live.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -202,12 +202,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -253,7 +253,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "microsoft.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -488,12 +488,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -508,6 +508,7 @@ public static string GetString(uint strId) } $LatestRelease = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_11_PowerShell_5_1 $CurrentRelease = (Get-Module -Name Sophia).Version.ToString() + if ([System.Version]$LatestRelease -gt [System.Version]$CurrentRelease) { Write-Warning -Message $Localization.UnsupportedRelease @@ -525,7 +526,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://github.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -762,12 +763,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -790,44 +791,44 @@ public static string GetString(uint strId) # https://github.com/crazy-max/WindowsSpyBlocker/tree/master/data/hosts $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" + UseBasicParsing = $true + Verbose = $true } $extra = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" + UseBasicParsing = $true + Verbose = $true } $extra_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" + UseBasicParsing = $true + Verbose = $true } $spy = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" + UseBasicParsing = $true + Verbose = $true } $spy_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" + UseBasicParsing = $true + Verbose = $true } $update = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" + UseBasicParsing = $true + Verbose = $true } $update_v6 = (Invoke-WebRequest @Parameters).Content @@ -868,7 +869,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4095,12 +4096,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4201,7 +4202,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4215,12 +4216,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4321,7 +4322,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4643,8 +4644,8 @@ public static bool MarkFileDelete (string sourcefile) Remove-Item -Path $Path -Recurse -Force -ErrorAction Ignore Unregister-ScheduledTask -TaskName *OneDrive* -Confirm:$false -ErrorAction Ignore - # Getting the OneDrive folder path - $OneDriveFolder = Split-Path -Path (Split-Path -Path $OneDriveSetup[0] -Parent) + # Getting the OneDrive folder path and replacing quotes if exist + $OneDriveFolder = (Split-Path -Path (Split-Path -Path $OneDriveSetup[0] -Parent)) -replace '"', "" # Terminate the File Explorer process New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name AutoRestartShell -PropertyType DWord -Value 0 -Force @@ -4713,12 +4714,12 @@ public static bool MarkFileDelete (string sourcefile) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4761,7 +4762,7 @@ public static bool MarkFileDelete (string sourcefile) Remove-Item -Path "$DownloadsFolder\OneDriveSetup.exe" -Force } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -6259,12 +6260,12 @@ function WindowsCapabilities { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -6273,7 +6274,7 @@ function WindowsCapabilities $ButtonContent = $Localization.Install $ButtonAdd_Click = {InstallButton} } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -6827,12 +6828,12 @@ function IPv6Component { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -6867,7 +6868,7 @@ function IPv6Component Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -9744,12 +9745,12 @@ function InstallVCRedist { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -9796,7 +9797,7 @@ function InstallVCRedist Get-ChildItem -Path $Paths -Recurse -Force | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -9824,12 +9825,12 @@ function InstallDotNetRuntimes { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -9934,7 +9935,7 @@ function InstallDotNetRuntimes Get-ChildItem -Path $Paths -Force -ErrorAction Ignore | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -10048,12 +10049,12 @@ function Install-WSA { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -10070,7 +10071,7 @@ function Install-WSA # Open Misrosoft Store WSA page to install it manually Start-Process -FilePath ms-windows-store://pdp/?ProductId=9P3395VX91NR } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -11446,17 +11447,17 @@ function HEVC { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue diff --git a/src/Sophia_Script_for_Windows_11_PowerShell_7/Module/Sophia.psm1 b/src/Sophia_Script_for_Windows_11_PowerShell_7/Module/Sophia.psm1 index e75aee41..a5bab976 100644 --- a/src/Sophia_Script_for_Windows_11_PowerShell_7/Module/Sophia.psm1 +++ b/src/Sophia_Script_for_Windows_11_PowerShell_7/Module/Sophia.psm1 @@ -95,12 +95,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -166,7 +166,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://c2rsetup.officeapps.live.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -198,12 +198,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -249,7 +249,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "microsoft.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -489,12 +489,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -509,6 +509,7 @@ public static string GetString(uint strId) } $LatestRelease = (Invoke-RestMethod @Parameters).Sophia_Script_Windows_11_PowerShell_7 $CurrentRelease = (Get-Module -Name Sophia).Version.ToString() + if ([System.Version]$LatestRelease -gt [System.Version]$CurrentRelease) { Write-Warning -Message $Localization.UnsupportedRelease @@ -526,7 +527,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.NoResponse -f "https://github.com") -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -763,12 +764,12 @@ public static string GetString(uint strId) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -791,44 +792,44 @@ public static string GetString(uint strId) # https://github.com/crazy-max/WindowsSpyBlocker/tree/master/data/hosts $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra.txt" + UseBasicParsing = $true + Verbose = $true } $extra = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/extra_v6.txt" + UseBasicParsing = $true + Verbose = $true } $extra_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt" + UseBasicParsing = $true + Verbose = $true } $spy = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy_v6.txt" + UseBasicParsing = $true + Verbose = $true } $spy_v6 = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update.txt" + UseBasicParsing = $true + Verbose = $true } $update = (Invoke-WebRequest @Parameters).Content $Parameters = @{ - Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" - UseBasicParsing = $true - Verbose = $true + Uri = "https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/update_v6.txt" + UseBasicParsing = $true + Verbose = $true } $update_v6 = (Invoke-WebRequest @Parameters).Content @@ -869,7 +870,7 @@ public static string GetString(uint strId) Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4096,12 +4097,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4202,7 +4203,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4216,12 +4217,12 @@ function Cursors { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4322,7 +4323,7 @@ function Cursors Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -4644,8 +4645,8 @@ public static bool MarkFileDelete (string sourcefile) Remove-Item -Path $Path -Recurse -Force -ErrorAction Ignore Unregister-ScheduledTask -TaskName *OneDrive* -Confirm:$false -ErrorAction Ignore - # Getting the OneDrive folder path - $OneDriveFolder = Split-Path -Path (Split-Path -Path $OneDriveSetup[0] -Parent) + # Getting the OneDrive folder path and replacing quotes if exist + $OneDriveFolder = (Split-Path -Path (Split-Path -Path $OneDriveSetup[0] -Parent)) -replace '"', "" # Terminate the File Explorer process New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name AutoRestartShell -PropertyType DWord -Value 0 -Force @@ -4714,12 +4715,12 @@ public static bool MarkFileDelete (string sourcefile) { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -4762,7 +4763,7 @@ public static bool MarkFileDelete (string sourcefile) Remove-Item -Path "$DownloadsFolder\OneDriveSetup.exe" -Force } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -6260,13 +6261,12 @@ function WindowsCapabilities { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - SslProtocol = "Tls13" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -6275,7 +6275,7 @@ function WindowsCapabilities $ButtonContent = $Localization.Install $ButtonAdd_Click = {InstallButton} } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -6829,12 +6829,12 @@ function IPv6Component { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -6869,7 +6869,7 @@ function IPv6Component Write-Error -Message ($Localization.RestartFunction -f $MyInvocation.Line.Trim()) -ErrorAction SilentlyContinue } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -9746,12 +9746,12 @@ function InstallVCRedist { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -9798,7 +9798,7 @@ function InstallVCRedist Get-ChildItem -Path $Paths -Recurse -Force | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -9826,12 +9826,12 @@ function InstallDotNetRuntimes { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -9936,7 +9936,7 @@ function InstallDotNetRuntimes Get-ChildItem -Path $Paths -Force -ErrorAction Ignore | Remove-Item -Recurse -Force -ErrorAction Ignore } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -10050,12 +10050,12 @@ function Install-WSA { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } @@ -10072,7 +10072,7 @@ function Install-WSA # Open Misrosoft Store WSA page to install it manually Start-Process -FilePath ms-windows-store://pdp/?ProductId=9P3395VX91NR } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue @@ -11468,17 +11468,17 @@ function HEVC { # Check the internet connection $Parameters = @{ - Uri = "https://www.cloudflare.com" - Method = "Head" - DisableKeepAlive = $true - UseBasicParsing = $true + Name = "dns.msftncsi.com" + Server = "1.1.1.1" + DnsOnly = $true + ErrorAction = "Stop" } - if (-not (Invoke-WebRequest @Parameters).StatusDescription) + if ((Resolve-DnsName @Parameters).IPAddress -notcontains "131.107.255.255") { return } } - catch [System.Net.WebException] + catch [System.ComponentModel.Win32Exception] { Write-Warning -Message $Localization.NoInternetConnection Write-Error -Message $Localization.NoInternetConnection -ErrorAction SilentlyContinue