0% found this document useful (0 votes)
56 views4 pages

This Script Office

This PowerShell script is designed to troubleshoot issues related to Microsoft Activation Scripts by checking for third-party antivirus interference and ensuring the script runs in Full Language Mode. It retrieves a command script from multiple URLs, verifies its integrity using a hash, and checks for potential issues with the CMD environment. The script also cleans up temporary files created during its execution.

Uploaded by

danilo.souza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views4 pages

This Script Office

This PowerShell script is designed to troubleshoot issues related to Microsoft Activation Scripts by checking for third-party antivirus interference and ensuring the script runs in Full Language Mode. It retrieves a command script from multiple URLs, verifies its integrity using a hash, and checks for potential issues with the CMD environment. The script also cleans up temporary files created during its execution.

Uploaded by

danilo.souza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

# This script is hosted on https://get.activated.win for https://massgrave.

dev

$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 "Help - https://gravesoft.dev/fix_powershell" -ForegroundColor White -


BackgroundColor Blue

return

function Check3rdAV {

$avList = Get-CimInstance -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

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

$URLs = @(

'https://raw.githubusercontent.com/massgravel/Microsoft-Activation-Scripts/
313f240448953cd5fe3c5631f4e4de502f23fc9a/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=313f240448953cd5fe3c5631f4e4de50
2f23fc9a',

'https://git.activated.win/massgrave/Microsoft-Activation-Scripts/raw/commit/
313f240448953cd5fe3c5631f4e4de502f23fc9a/MAS/All-In-One-Version-KL/
MAS_AIO.cmd'

foreach ($URL in $URLs | Sort-Object { Get-Random }) {

try { $response = Invoke-WebRequest -Uri $URL -UseBasicParsing; break } catch


{}

if (-not $response) {

Check3rdAV

Write-Host "Failed to retrieve MAS from any of the available repositories, aborting!"

Write-Host "Help - $troubleshoot" -ForegroundColor White -BackgroundColor Blue

return

# Verify script integrity


$releaseHash =
'919F17B46BF62169E8811201F75EFDF1D5C1504321B78A7B0FB47C335ECBC1B0'

$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($str
eam)) -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

$FilePaths = @("$env:SystemRoot\Temp\MAS*.cmd", "$env:USERPROFILE\AppData\


Local\Temp\MAS*.cmd")

foreach ($FilePath in $FilePaths) { Get-Item $FilePath | Remove-Item }

You might also like