diff --git a/docs/changelog.md b/docs/changelog.md
index e8d96ab..25037df 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -2,6 +2,39 @@
------------------------------------------------------------------------
+## 3.5
+
+**ESU for Home editions / Powershell method for Windows 7**
+
+#### HWID:
+- The script now won't change region (temporarily) in the top countries.
+
+#### KMS38:
+- Removed KMS38 protection (registry lock) feature, it's not important.
+
+#### TSforge:
+- Added ESU support for Home editions (license files updated in Windows 10 19045.6156).
+- Fixed a bug on W10 ARM64.
+
+#### Change Office Edition:
+- Fixed an issue with add/remove apps when more than one language is installed.
+- Added detection for unsupported languages in the Office 2019 Perpetual VL update channel.
+
+#### All:
+- Fixed a bug in detecting Terminal app.
+- The AIO script will now show a tip about ESU updates on Windows 10.
+- The AIO script will highlight Ohook in green if O365 is installed.
+- In all KMS-related activation options, the script will display a message about KMS renewal notifications on build 26200 and later.
+- Added checks for .NET corruption and Windows Sandbox.
+- Various fixes and improvements.
+
+#### Powershell command to launch MAS:
+
+- The command `irm https://massgrave.dev/get | iex` is now officially retired. It will display info on how to get the updated code.
+- Added a new command for Windows 7, along with an alternative DoH-based command for cases where `get.activated.win` is blocked by ISP/DNS. See https://massgrave.dev/ for details.
+
+------------------------------------------------------------------------
+
## 3.4
**Bug fixes**
diff --git a/docs/command_line_switches.md b/docs/command_line_switches.md
index 2f57f33..e6a2b8b 100644
--- a/docs/command_line_switches.md
+++ b/docs/command_line_switches.md
@@ -78,10 +78,19 @@ Run operations in silent mode (no output but the CMD window will still appear)
## Using in the Powershell One-Liner
-`& ([ScriptBlock]::Create((irm https://get.activated.win))) /para`
+For **Windows 7** and later:
+
+```
+& ([ScriptBlock]::Create((New-Object Net.WebClient).DownloadString('https://get.activated.win'))) /para
+```
+
+If the above is blocked (by DNS/ISP), try this alternative method (requires **updated Windows 10 or 11**):
+
+```
+& ([ScriptBlock]::Create((curl.exe -s --doh-url https://1.1.1.1/dns-query https://get.activated.win | Out-String))) /para
+```
- Replace `/para` in this command with the switches from the above table. You can also use multiple switches. For example, `/HWID /Ohook`
-- This Powershell one-liner will only work on Windows 8.1 and later.
- To change the edition through the command line, check [here](change_windows_edition.md#manual-edition-change). We didn't automate it in MAS because it requires a reboot in some cases.
------------------------------------------------------------------------
diff --git a/docs/intro.md b/docs/intro.md
index 4ee3ef0..040ae1d 100644
--- a/docs/intro.md
+++ b/docs/intro.md
@@ -10,27 +10,39 @@ Open-source Windows and Office activator featuring HWID, Ohook, TSforge, KMS38,
---
-### How to Activate Windows / Office?
+### How to Activate Windows / Office / Extended Updates (ESU)?
-#### Method 1 - PowerShell (Windows 8 and later) ❤️
+#### Method 1 - PowerShell ❤️
:::info
-1. **Open PowerShell**
- To do that, press the Windows key + X, then select PowerShell or Terminal.
+1. **Open PowerShell**
+ Click the **Start Menu**, type `PowerShell`, then open it.
-2. **Copy and paste the code below, then press enter.**
-```
-irm https://get.activated.win | iex
-```
-Alternatively, you can use the following (this will be deprecated in the future):
-```
-irm https://massgrave.dev/get | iex
-```
+2. **Copy and paste the code below, then press enter.**
+ - For **Windows 8, 10, 11**: 📌
+ ```
+ irm https://get.activated.win | iex
+ ```
+ - For **Windows 7** and later:
+ ```
+ iex ((New-Object Net.WebClient).DownloadString('https://get.activated.win'))
+ ```
+
-3. You will see the activation options. Choose the activation options highlighted in green.
+**Script not launching❓Click here for info.**
-4. That's all
+- If the above is blocked (by ISP/DNS), try this (needs **updated Windows 10 or 11**):
+ ```
+ iex (curl.exe -s --doh-url https://1.1.1.1/dns-query https://get.activated.win | Out-String)
+ ```
+- If that fails or you have an older Windows, use [**Method 2**](intro.md#method-2---traditional-windows-vista-and-later).
+
+
+
+3. The activation menu will appear. **Choose the green-highlighted options** to activate Windows or Office.
+
+4. **Done!**
:::
@@ -53,16 +65,17 @@ or
---
-- To activate additional products such as **Office for macOS, Visual Studio, RDS CALs, and Windows XP**, check [here](unsupported_products_activation.md).
-- To run the scripts in unattended mode, check [here](command_line_switches.md).
+:::tip
+
+- Some ISPs/DNS block access to our domains. You can bypass this by enabling [DNS-over-HTTPS (DoH)](https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/encrypted-dns-browsers/) in your browser.
+- **Having trouble**❓Connect with us [here](troubleshoot.md).
+
+:::
---
-### Not working ❓
-
-- If you are **unable to launch MAS** using the PowerShell method, please refer to **Method 2** above.
-- If MAS launches but displays errors, check for troubleshooting steps highlighted in blue and follow them.
-- If issues persist, feel free to reach out to us [here](troubleshoot.md).
+- To activate additional products such as **Office for macOS, Visual Studio, RDS CALs, and Windows XP**, check [here](unsupported_products_activation.md).
+- To run the scripts in unattended mode, check [here](command_line_switches.md).
---
@@ -78,7 +91,7 @@ or
## MAS Latest Release
-Last Release - v3.4 (3-June-2025)
+Last Release - v3.5 (10-Aug-2025)
[GitHub](https://github.com/massgravel/Microsoft-Activation-Scripts) / [Azure DevOps](https://dev.azure.com/massgrave/_git/Microsoft-Activation-Scripts) / [Self-hosted Git](https://git.activated.win/massgrave/Microsoft-Activation-Scripts)
------------------------------------------------------------------------
diff --git a/docs/news.md b/docs/news.md
index de8338a..236fcab 100644
--- a/docs/news.md
+++ b/docs/news.md
@@ -1,5 +1,8 @@
# News
+### [10-Aug-25] MAS 3.5 update is released
+ESU for Home editions / Powershell method for Windows 7, for details check the [changelog](changelog.md)
+
### [16-July-25] Added July 2025 updated ISOs
Windows 10 22H2 / Windows 11 24H2 / Windows 11 23H2 / Server 2025 / Server 2022 / Server 23H2
https://massgrave.dev/genuine-installation-media
diff --git a/docs/tsforge.md b/docs/tsforge.md
index 403f287..574672b 100644
--- a/docs/tsforge.md
+++ b/docs/tsforge.md
@@ -263,7 +263,7 @@ This activation method does not work if a phone license is not available or if l
| Windows Server 2012 | ServerDatacenter, ServerStandard and their Core variants | [3 Years](https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2012)
Oct 2023 to Oct 2026 | KB5017221 [x64](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2022/08/windows8-rt-kb5017221-x64_d01e9b9b910f5f1e374bc1b89a8d00c1a97e215f.msu)
KB2937636 [x64](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/crup/2014/07/windows8-rt-kb2937636-x64_29e0b587c8f09bcf635c1b79d09c00eef33113ec.msu) |
| Windows 8.1 | Enterprise, Professional, EmbeddedIndustry and their E/N variants | ESU is not officially supported,
but you can manually install Server 2012 R2 (for x64) updates until Jan 2024,
and Embedded 8.1 (for x86) updates until July 2023 | Build 9600.17415
+
KB3021910 [x64](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2015/04/windows8.1-kb3021910-x64_e291c0c339586e79c36ebfc0211678df91656c3d.msu)-[x86](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2015/04/windows8.1-kb3021910-x86_7e70173bec00c3d4fe3b0b8cba17b095b4ed2d20.msu)
KB3172614 [x64](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2016/07/windows8.1-kb3172614-x64_e41365e643b98ab745c21dba17d1d3b6bb73cfcc.msu)-[x86](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/updt/2016/07/windows8.1-kb3172614-x86_d11c233c8598b734de72665e0d0a3f2ef007b91f.msu)
KB5017220 [x64](https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2022/08/windows8.1-kb5017220-x64_d771111b22ec71560b207a6735d5ecebd47c4f38.msu)-[x86](https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/secu/2022/08/windows8.1-kb5017220-x86_3134a18dac1b1fe4f656c9e25d0e4aaa75619d16.msu) |
| Windows Server 2012 R2 | ServerDatacenter, ServerStandard and their Core variants | [3 Years](https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2012-r2)
Oct 2023 to Oct 2026 | Same as Windows 8.1 |
-| Windows 10 | Education, Enterprise, IoTEnterprise,
Professional, ProfessionalEducation,
ProfessionalWorkstation, ServerRdsh and their N variants | [3 Years](https://learn.microsoft.com/en-us/windows/whats-new/extended-security-updates)
Oct 2025 to Oct 2028 | Windows 10 22H2 (19045.4957)
Just run Windows Update |
+| Windows 10 | Core, CoreCountrySpecific, CoreSingleLanguage,
Education, Enterprise, IoTEnterprise,
Professional, ProfessionalEducation,
ProfessionalWorkstation, ServerRdsh and their N variants | [3 Years](https://learn.microsoft.com/en-us/windows/whats-new/extended-security-updates)
Oct 2025 to Oct 2028 | Windows 10 22H2
ESU license added in 19045.4957
ESU license last updated in 19045.6156
Just run Windows Update. |
------------------------------------------------------------------------
diff --git a/static/get.ps1 b/static/get.ps1
index 50ebb28..062772b 100644
--- a/static/get.ps1
+++ b/static/get.ps1
@@ -1,127 +1,16 @@
# Check massgrave.dev for more details
-write-host
-Write-Host "The current command (irm https://massgrave.dev/get | iex) will be retired in the future."
-Write-Host -ForegroundColor Green "Use the new command (irm https://get.activated.win | iex) moving forward."
-write-host
+Write-Host ""
+Write-Host "The command 'irm https://massgrave.dev/get | iex' is retired."
+Write-Host ""
+Write-Host "Visit the site below for the new command:" -ForegroundColor Green
+Write-Host ""
+Write-Host "https://massgrave.dev/" -ForegroundColor Cyan
+Write-Host ""
-$psv = (Get-Host).Version.Major
-$troubleshoot = 'https://massgrave.dev/troubleshoot'
-
-if ($ExecutionContext.SessionState.LanguageMode.value__ -ne 0) {
- $ExecutionContext.SessionState.LanguageMode
- Write-Host "PowerShell is not running in Full Language Mode."
- Write-Host "Help - https://gravesoft.dev/fix_powershell" -ForegroundColor White -BackgroundColor Blue
- return
-}
-
-try {
- [void][System.AppDomain]::CurrentDomain.GetAssemblies(); [void][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 {
- $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)) {
- Check3rdAV
- Write-Host "Failed to create MAS file in temp folder, aborting!"
- Write-Host "Help - $troubleshoot" -ForegroundColor White -BackgroundColor Blue
- throw
- }
-}
-
-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 {
- 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
-}
-
-# Verify script integrity
-$releaseHash = 'EF2F705B9E8BE2816598E2E8B70BADB200733F2287B917D6C9666D95C63AFBF9'
-$stream = New-Object IO.MemoryStream
-$writer = New-Object IO.StreamWriter $stream
-$writer.Write($response)
-$writer.Flush()
-$stream.Position = 0
-$hash = [BitConverter]::ToString([Security.Cryptography.SHA256]::Create().ComputeHash($stream)) -replace '-'
-if ($hash -ne $releaseHash) {
- Write-Warning "Hash ($hash) mismatch, aborting!`nReport this issue at $troubleshoot"
- $response = $null
- return
-}
-
-# Check for AutoRun registry which may create issues with CMD
-$paths = "HKCU:\SOFTWARE\Microsoft\Command Processor", "HKLM:\SOFTWARE\Microsoft\Command Processor"
-foreach ($path in $paths) {
- if (Get-ItemProperty -Path $path -Name "Autorun" -ErrorAction SilentlyContinue) {
- Write-Warning "Autorun registry found, CMD may crash! `nManually copy-paste the below command to fix...`nRemove-ItemProperty -Path '$path' -Name 'Autorun'"
- }
-}
-
-$rand = [Guid]::NewGuid().Guid
-$isAdmin = [bool]([Security.Principal.WindowsIdentity]::GetCurrent().Groups -match 'S-1-5-32-544')
-$FilePath = if ($isAdmin) { "$env:SystemRoot\Temp\MAS_$rand.cmd" } else { "$env:USERPROFILE\AppData\Local\Temp\MAS_$rand.cmd" }
-Set-Content -Path $FilePath -Value "@::: $rand `r`n$response"
-CheckFile $FilePath
-
-$env:ComSpec = "$env:SystemRoot\system32\cmd.exe"
-$chkcmd = & $env:ComSpec /c "echo CMD is working"
-if ($chkcmd -notcontains "CMD is working") {
- Write-Warning "cmd.exe is not working.`nReport this issue at $troubleshoot"
-}
-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..."
+if (-not $args) {
+ Write-Host "Press any key to open the website..."
[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 -ErrorAction SilentlyContinue | Remove-Item }
+ Start-Process "https://massgrave.dev/"
+}