From ccaa9a7b6f6600efa4c3515a1e09b156b26475d9 Mon Sep 17 00:00:00 2001 From: WindowsAddict Date: Thu, 7 Aug 2025 19:53:32 +0530 Subject: [PATCH] Add Windows 7 (Powershell 2.0) support in loader script, add .NET checks --- index.html | 58 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index 2702992..b5d866a 100644 --- a/index.html +++ b/index.html @@ -1,45 +1,77 @@ # This script is hosted on https://get.activated.win for https://massgrave.dev
 
+$psv = (Get-Host).Version.Major
 $troubleshoot = 'https://massgrave.dev/troubleshoot'
+
 if ($ExecutionContext.SessionState.LanguageMode.value__ -ne 0) {
     $ExecutionContext.SessionState.LanguageMode
-    Write-Host "Windows PowerShell is not running in Full Language Mode."
+    Write-Host "PowerShell is not running in Full Language Mode."
     Write-Host "Help - https://gravesoft.dev/fix_powershell" -ForegroundColor White -BackgroundColor Blue
     return
 }
 
+try {
+    [System.AppDomain]::CurrentDomain.GetAssemblies(); [System.Math]::Sqrt(144)
+}
+catch {
+    Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
+    Write-Host "Powershell failed to load .NET command."
+    Write-Host "Help - https://gravesoft.dev/in-place_repair_upgrade" -ForegroundColor White -BackgroundColor Blue
+    return
+}
+
 function Check3rdAV {
-    $avList = Get-CimInstance -Namespace root\SecurityCenter2 -Class AntiVirusProduct | Where-Object { $_.displayName -notlike '*windows*' } | Select-Object -ExpandProperty displayName
+    $cmd = if ($psv -ge 3) { 'Get-CimInstance' } else { 'Get-WmiObject' }
+    $avList = & $cmd -Namespace root\SecurityCenter2 -Class AntiVirusProduct | Where-Object { $_.displayName -notlike '*windows*' } | Select-Object -ExpandProperty displayName
+
     if ($avList) {
         Write-Host '3rd party Antivirus might be blocking the script - ' -ForegroundColor White -BackgroundColor Blue -NoNewline
         Write-Host " $($avList -join ', ')" -ForegroundColor DarkRed -BackgroundColor White
     }
 }
 
-function CheckFile { 
-    param ([string]$FilePath) 
-    if (-not (Test-Path $FilePath)) { 
+function CheckFile {
+    param ([string]$FilePath)
+    if (-not (Test-Path $FilePath)) {
         Check3rdAV
         Write-Host "Failed to create MAS file in temp folder, aborting!"
         Write-Host "Help - $troubleshoot" -ForegroundColor White -BackgroundColor Blue
-        throw 
-    } 
+        throw
+    }
 }
 
-[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+try { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 } catch {}
+
 $URLs = @(
     'https://raw.githubusercontent.com/massgravel/Microsoft-Activation-Scripts/67abcd0c8925832fcf4365b9cf3706ab6fbf8571/MAS/All-In-One-Version-KL/MAS_AIO.cmd',
     'https://dev.azure.com/massgrave/Microsoft-Activation-Scripts/_apis/git/repositories/Microsoft-Activation-Scripts/items?path=/MAS/All-In-One-Version-KL/MAS_AIO.cmd&versionType=Commit&version=67abcd0c8925832fcf4365b9cf3706ab6fbf8571',
     'https://git.activated.win/massgrave/Microsoft-Activation-Scripts/raw/commit/67abcd0c8925832fcf4365b9cf3706ab6fbf8571/MAS/All-In-One-Version-KL/MAS_AIO.cmd'
 )
 
+$errors = @()
 foreach ($URL in $URLs | Sort-Object { Get-Random }) {
-    try { $response = Invoke-WebRequest -Uri $URL -UseBasicParsing; break } catch {}
+    try {
+        if ($psv -ge 3) {
+            $response = Invoke-WebRequest -Uri $URL -UseBasicParsing
+        }
+        else {
+            $w = New-Object Net.WebClient
+            $response = $w.DownloadString($URL)
+        }
+        break
+    }
+    catch {
+        $errors += $_
+    }
 }
 
 if (-not $response) {
     Check3rdAV
+    foreach ($err in $errors) {
+        Write-Host "Error: $($err.Exception.Message)" -ForegroundColor Red
+    }
     Write-Host "Failed to retrieve MAS from any of the available repositories, aborting!"
+    Write-Host "Check if antivirus or firewall is blocking the connection."
     Write-Host "Help - $troubleshoot" -ForegroundColor White -BackgroundColor Blue
     return
 }
@@ -80,5 +112,11 @@ if ($chkcmd -notcontains "CMD is working") {
 saps -FilePath $env:ComSpec -ArgumentList "/c """"$FilePath"" $args""" -Wait
 CheckFile $FilePath
 
+if ($psv -lt 3) {
+    write-host ""
+    write-host "Press any key to exit when process is done..."
+    [void][System.Console]::ReadKey($true)
+}
+
 $FilePaths = @("$env:SystemRoot\Temp\MAS*.cmd", "$env:USERPROFILE\AppData\Local\Temp\MAS*.cmd")
-foreach ($FilePath in $FilePaths) { Get-Item $FilePath | Remove-Item }
+foreach ($FilePath in $FilePaths) { Get-Item $FilePath -ErrorAction SilentlyContinue | Remove-Item }