mirror of
https://github.com/massgravel/Microsoft-Activation-Scripts.git
synced 2026-01-13 19:41:46 +00:00
Compare commits
14 Commits
3a99ea4eeb
...
3.6
| Author | SHA1 | Date | |
|---|---|---|---|
| a9c2f58741 | |||
| 79012c7db0 | |||
| caffa62abe | |||
| a8f6d051a6 | |||
| 6022b6de10 | |||
| 4ea26906cd | |||
| 564aad78b4 | |||
| d5e382e763 | |||
| 793550725a | |||
| 3917497c82 | |||
| 28c2264d89 | |||
| a51ae62332 | |||
| ffcb641f17 | |||
| 53a2747338 |
6
.gitattributes
vendored
6
.gitattributes
vendored
@ -1,4 +1,4 @@
|
|||||||
# MAS export-ignore
|
MAS export-ignore
|
||||||
# LICENSE export-ignore
|
LICENSE export-ignore
|
||||||
# README.md export-ignore
|
README.md export-ignore
|
||||||
.gitattributes export-ignore
|
.gitattributes export-ignore
|
||||||
|
|||||||
@ -1,18 +1,18 @@
|
|||||||
@::yfh37fow-random
|
@::r45f3r3-random
|
||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@setlocal DisableDelayedExpansion
|
@setlocal DisableDelayedExpansion
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
:: For command line switches, check mass<>grave<.>dev/command_line_switches
|
:: For command line switches, check mass()grave(dot)dev/command_line_switches
|
||||||
:: If you want to better understand script, read from separate files version.
|
:: If you want to better understand script, read from separate files version.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -44,6 +44,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
@ -1658,7 +1659,7 @@ sc start %%# %nul%
|
|||||||
if !errorlevel! EQU 1060 set _corrupt=1
|
if !errorlevel! EQU 1060 set _corrupt=1
|
||||||
sc query %%# %nul% || set _corrupt=1
|
sc query %%# %nul% || set _corrupt=1
|
||||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
||||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr="-RegistryError" )
|
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr=-RegistryError)
|
||||||
)
|
)
|
||||||
|
|
||||||
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
||||||
@ -1984,7 +1985,7 @@ cmd /c exit /b %error_code%
|
|||||||
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
||||||
|
|
||||||
if %error_code% NEQ 0 (
|
if %error_code% NEQ 0 (
|
||||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] %error_code%"
|
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
call :dk_color %Blue% "%_fixmsg%"
|
call :dk_color %Blue% "%_fixmsg%"
|
||||||
@ -2170,19 +2171,22 @@ call :dk_color %Gray% "Checking SkipRearm [Default 0 Value
|
|||||||
|
|
||||||
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||||
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
||||||
for /f "delims=" %%a in ('%psc% "(Get-ScheduledTask -TaskName 'SvcRestartTask' -TaskPath '\Microsoft\Windows\SoftwareProtectionPlatform\').State" %nul6%') do (set taskinfo=%%a)
|
for /f "delims=" %%a in ('%psc% "$s=New-Object -ComObject 'Schedule.Service'; $s.Connect(); $state=$s.GetFolder('\Microsoft\Windows\SoftwareProtectionPlatform').GetTask('SvcRestartTask').State; @{0='Unknown';1='Disabled';2='Queued';3='Ready';4='Running'}[$state]" %nul6%') do (set taskinfo=%%a)
|
||||||
|
|
||||||
echo !taskinfo! | find /i "Ready" %nul% || (
|
echo !taskinfo! | find /i "Ready" %nul% || (
|
||||||
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
||||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
||||||
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||||
|
|
||||||
call :dk_color %Red% "Checking SvcRestartTask Status [!taskinfo!, system might deactivate later]"
|
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
|
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||||
|
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||||
|
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||||
|
) || (
|
||||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||||
set fixes=%fixes% %mas%troubleshoot
|
)
|
||||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
|
||||||
echo:
|
echo:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -2300,7 +2304,7 @@ exit /b
|
|||||||
:: 2nd column = Generic Retail/OEM/MAK Key
|
:: 2nd column = Generic Retail/OEM/MAK Key
|
||||||
:: 3rd column = SKU ID
|
:: 3rd column = SKU ID
|
||||||
:: 4th column = Key part number
|
:: 4th column = Key part number
|
||||||
:: 5th column = Ticket signature value. It's as it is, it's not encoded. (Check mass<>grave<.>dev/hwid#manual-activation to see how it's generated)
|
:: 5th column = Ticket signature value. It's as it is, it's not encoded. (Check mass()grave(dot)dev/hwid#manual-activation to see how it's generated)
|
||||||
:: 6th column = 1 = activation is not working (at the time of writing this), 0 = activation is working
|
:: 6th column = 1 = activation is not working (at the time of writing this), 0 = activation is working
|
||||||
:: 7th column = Key Type
|
:: 7th column = Key Type
|
||||||
:: 8th column = WMI Edition ID (For reference only)
|
:: 8th column = WMI Edition ID (For reference only)
|
||||||
@ -2762,7 +2766,7 @@ call :dk_color %Gray% "Checking Old Office With Sub License [Found. Update Of
|
|||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
|
|
||||||
:: mass<>grave<.>dev/office-license-is-not-genuine
|
:: mass()grave(dot)dev/office-license-is-not-genuine
|
||||||
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
||||||
:: Script already is using MAK instead of GVLK so it won't appear anyway, but registry keys are added incase Office installs default GVLK grace key for volume products
|
:: Script already is using MAK instead of GVLK so it won't appear anyway, but registry keys are added incase Office installs default GVLK grace key for volume products
|
||||||
|
|
||||||
@ -3720,7 +3724,6 @@ exit /b
|
|||||||
|
|
||||||
14_4eaff0d0-c6cb-4187-94f3-c7656d49a0aa_Retail________ExcelR_[HSExcelR]
|
14_4eaff0d0-c6cb-4187-94f3-c7656d49a0aa_Retail________ExcelR_[HSExcelR]
|
||||||
14_7004b7f0-6407-4f45-8eac-966e5f868bde_Retail________GrooveR
|
14_7004b7f0-6407-4f45-8eac-966e5f868bde_Retail________GrooveR
|
||||||
14_fbf4ac36-31c8-4340-8666-79873129cf40_Retail________OutlookR
|
|
||||||
14_133c8359-4e93-4241-8118-30bb18737ea0_Retail________PowerPointR_[HSPowerPointR]
|
14_133c8359-4e93-4241-8118-30bb18737ea0_Retail________PowerPointR_[HSPowerPointR]
|
||||||
14_db3bbc9c-ce52-41d1-a46f-1a1d68059119_Retail________WordR_[HSWordR]
|
14_db3bbc9c-ce52-41d1-a46f-1a1d68059119_Retail________WordR_[HSWordR]
|
||||||
14_dbe3aee0-5183-4ff7-8142-66050173cb01_Retail________SmallBusBasicsR_[SmallBusBasicsMSDNR]
|
14_dbe3aee0-5183-4ff7-8142-66050173cb01_Retail________SmallBusBasicsR_[SmallBusBasicsMSDNR]
|
||||||
@ -3749,6 +3752,7 @@ for %%# in (
|
|||||||
14_85e22450-b741-430c-a172-a37962c938af_6GKT2-KMJPK-4RRBF-8VQKB-JB%f%6G6_MAK___________InfoPathVL
|
14_85e22450-b741-430c-a172-a37962c938af_6GKT2-KMJPK-4RRBF-8VQKB-JB%f%6G6_MAK___________InfoPathVL
|
||||||
14_3f7aa693-9a7e-44fc-9309-bb3d8e604925_2TG3P-9DB76-4YT99-8RXGD-CW%f%XBP_Retail________OneNoteR_[HSOneNoteR]
|
14_3f7aa693-9a7e-44fc-9309-bb3d8e604925_2TG3P-9DB76-4YT99-8RXGD-CW%f%XBP_Retail________OneNoteR_[HSOneNoteR]
|
||||||
14_6860b31f-6a67-48b8-84b9-e312b3485c4b_CV64P-F4VRH-BJ33D-PH6MR-X6%f%9RY_MAK___________OneNoteVL
|
14_6860b31f-6a67-48b8-84b9-e312b3485c4b_CV64P-F4VRH-BJ33D-PH6MR-X6%f%9RY_MAK___________OneNoteVL
|
||||||
|
14_fbf4ac36-31c8-4340-8666-79873129cf40_9D8FR-7GYBW-4YG8M-V36JK-VD%f%7CM_Retail________OutlookR
|
||||||
14_a9aeabd8-63b8-4079-a28e-f531807fd6b8_J8C9M-YXMH2-9CX44-2C3YG-V7%f%692_MAK___________OutlookVL
|
14_a9aeabd8-63b8-4079-a28e-f531807fd6b8_J8C9M-YXMH2-9CX44-2C3YG-V7%f%692_MAK___________OutlookVL
|
||||||
14_acb51361-c0db-4895-9497-1831c41f31a6_GMBWM-WVX26-7WHV4-DB43D-WV%f%DY2_Retail________PersonalR_[PersonalDemoR,PersonalPrepaidR]
|
14_acb51361-c0db-4895-9497-1831c41f31a6_GMBWM-WVX26-7WHV4-DB43D-WV%f%DY2_Retail________PersonalR_[PersonalDemoR,PersonalPrepaidR]
|
||||||
14_38252940-718c-4aa6-81a4-135398e53851_HPBQP-RJHDR-Q3472-PT9Q6-PB%f%B72_MAK___________PowerPointVL
|
14_38252940-718c-4aa6-81a4-135398e53851_HPBQP-RJHDR-Q3472-PT9Q6-PB%f%B72_MAK___________PowerPointVL
|
||||||
@ -4087,13 +4091,13 @@ $MemoryStream.Close()
|
|||||||
::
|
::
|
||||||
:: The files are encoded in base64 to make AIO version.
|
:: The files are encoded in base64 to make AIO version.
|
||||||
::
|
::
|
||||||
:: mass<>grave<.>dev/ohook
|
:: mass()grave(dot)dev/ohook
|
||||||
:: Here you can find the files source code and info on how to rebuild the identical sppc.dll files
|
:: Here you can find the files source code and info on how to rebuild the identical sppc.dll files
|
||||||
::
|
::
|
||||||
:: stackoverflow.com/a/35335273
|
:: stackoverflow.com/a/35335273
|
||||||
:: Here you can check how to extract sppc.dll files from base64
|
:: Here you can check how to extract sppc.dll files from base64
|
||||||
::
|
::
|
||||||
:: For any further question, feel free to contact us on mass<>grave<.>dev/contactus
|
:: For any further question, feel free to contact us on mass()grave(dot)dev/contactus
|
||||||
::
|
::
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
::
|
::
|
||||||
@ -4279,7 +4283,7 @@ set tsids=
|
|||||||
set _resall=0
|
set _resall=0
|
||||||
|
|
||||||
:: Choose activation method:
|
:: Choose activation method:
|
||||||
:: In builds 19041 and later, the script will auto select StaticCID (requires internet). If no internet is detected, it will then auto select the KMS4k method. For builds lower than 19041, the script will auto select ZeroCID.
|
:: In builds 26100 and later, the script will auto select StaticCID (requires internet). If no internet is detected, it will then auto select the KMS4k method. For builds lower than 26100, the script will auto select ZeroCID.
|
||||||
:: To change the activation method, run the script with the parameters "/Z-SCID", "/Z-ZCID", or "/Z-KMS4k", or modify the option from Auto to SCID, ZCID, or KMS4k in the line below.
|
:: To change the activation method, run the script with the parameters "/Z-SCID", "/Z-ZCID", or "/Z-KMS4k", or modify the option from Auto to SCID, ZCID, or KMS4k in the line below.
|
||||||
set _actmethod=Auto
|
set _actmethod=Auto
|
||||||
|
|
||||||
@ -4414,8 +4418,8 @@ echo:
|
|||||||
echo ______________________________________________________________
|
echo ______________________________________________________________
|
||||||
echo:
|
echo:
|
||||||
call :dk_color2 %_White% " [1] " %_Green% "Auto"
|
call :dk_color2 %_White% " [1] " %_Green% "Auto"
|
||||||
echo Builds ^>= 19041 - StaticCID (KMS4k if offline)
|
echo Builds ^>= 26100 - StaticCID (KMS4k if offline)
|
||||||
echo Builds ^< 19041 - ZeroCID
|
echo Builds ^< 26100 - ZeroCID
|
||||||
echo __________________________________________________
|
echo __________________________________________________
|
||||||
echo:
|
echo:
|
||||||
echo [2] StaticCID
|
echo [2] StaticCID
|
||||||
@ -4424,8 +4428,7 @@ echo Not for Windows 7 or older
|
|||||||
echo __________________________________________________
|
echo __________________________________________________
|
||||||
echo:
|
echo:
|
||||||
echo [3] ZeroCID
|
echo [3] ZeroCID
|
||||||
echo Works reliably on builds below 19041
|
echo Works reliably on builds below 26100
|
||||||
echo May break on builds between 19041-26100
|
|
||||||
echo Does not work on builds above 26100.4188
|
echo Does not work on builds above 26100.4188
|
||||||
echo __________________________________________________
|
echo __________________________________________________
|
||||||
echo:
|
echo:
|
||||||
@ -4537,7 +4540,7 @@ if /i %_actmethod%==ZCID set tsmethod=ZeroCID
|
|||||||
if /i %_actmethod%==KMS4k set tsmethod=KMS4k
|
if /i %_actmethod%==KMS4k set tsmethod=KMS4k
|
||||||
|
|
||||||
if /i %_actmethod%==Auto (
|
if /i %_actmethod%==Auto (
|
||||||
if %winbuild% GEQ 19041 (
|
if %winbuild% GEQ 26100 (
|
||||||
set tsmethod=StaticCID
|
set tsmethod=StaticCID
|
||||||
) else (
|
) else (
|
||||||
set tsmethod=ZeroCID
|
set tsmethod=ZeroCID
|
||||||
@ -5339,7 +5342,7 @@ call :ts_process
|
|||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
|
|
||||||
:: mass<>grave<.>dev/office-license-is-not-genuine
|
:: mass()grave(dot)dev/office-license-is-not-genuine
|
||||||
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
||||||
|
|
||||||
set "kmskey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663"
|
set "kmskey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663"
|
||||||
@ -6319,7 +6322,7 @@ using System.Xml.Linq;
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Common.cs
|
// LibTSforge/Common.cs
|
||||||
namespace LibTSforge
|
namespace LibTSforge
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -6561,7 +6564,7 @@ namespace LibTSforge
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/PKeyConfig.cs
|
// LibTSforge/SPP/PKeyConfig.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -6587,7 +6590,7 @@ namespace LibTSforge.SPP
|
|||||||
|
|
||||||
public bool Contains(int n)
|
public bool Contains(int n)
|
||||||
{
|
{
|
||||||
return Start <= n && End <= n;
|
return Start <= n && n <= End;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6717,10 +6720,19 @@ namespace LibTSforge.SPP
|
|||||||
string refActIdStr = configNode.SelectSingleNode("./p:ActConfigId", nsmgr).InnerText;
|
string refActIdStr = configNode.SelectSingleNode("./p:ActConfigId", nsmgr).InnerText;
|
||||||
Guid refActId = new Guid(refActIdStr);
|
Guid refActId = new Guid(refActIdStr);
|
||||||
int group = int.Parse(configNode.SelectSingleNode("./p:RefGroupId", nsmgr).InnerText);
|
int group = int.Parse(configNode.SelectSingleNode("./p:RefGroupId", nsmgr).InnerText);
|
||||||
List<KeyRange> keyRanges = ranges[refActIdStr];
|
List<KeyRange> keyRanges;
|
||||||
|
ranges.TryGetValue(refActIdStr, out keyRanges);
|
||||||
|
|
||||||
|
if (keyRanges == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (keyRanges.Count > 0 && !Products.ContainsKey(refActId))
|
if (keyRanges.Count > 0 && !Products.ContainsKey(refActId))
|
||||||
{
|
{
|
||||||
|
PKeyAlgorithm algorithm;
|
||||||
|
algorithms.TryGetValue(group, out algorithm);
|
||||||
|
|
||||||
ProductConfig productConfig = new ProductConfig
|
ProductConfig productConfig = new ProductConfig
|
||||||
{
|
{
|
||||||
GroupId = group,
|
GroupId = group,
|
||||||
@ -6728,7 +6740,7 @@ namespace LibTSforge.SPP
|
|||||||
Description = configNode.SelectSingleNode("./p:ProductDescription", nsmgr).InnerText,
|
Description = configNode.SelectSingleNode("./p:ProductDescription", nsmgr).InnerText,
|
||||||
Channel = configNode.SelectSingleNode("./p:ProductKeyType", nsmgr).InnerText,
|
Channel = configNode.SelectSingleNode("./p:ProductKeyType", nsmgr).InnerText,
|
||||||
Randomized = configNode.SelectSingleNode("./p:ProductKeyType", nsmgr).InnerText.ToLower() == "true",
|
Randomized = configNode.SelectSingleNode("./p:ProductKeyType", nsmgr).InnerText.ToLower() == "true",
|
||||||
Algorithm = algorithms[group],
|
Algorithm = algorithm,
|
||||||
Ranges = keyRanges,
|
Ranges = keyRanges,
|
||||||
ActivationId = refActId
|
ActivationId = refActId
|
||||||
};
|
};
|
||||||
@ -6778,7 +6790,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/ProductKey.cs
|
// LibTSforge/SPP/ProductKey.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -7094,7 +7106,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/SLAPI.cs
|
// LibTSforge/SPP/SLAPI.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -7507,7 +7519,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/SPPUtils.cs
|
// LibTSforge/SPP/SPPUtils.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
@ -7844,7 +7856,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/SPSys.cs
|
// LibTSforge/SPP/SPSys.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using Microsoft.Win32.SafeHandles;
|
using Microsoft.Win32.SafeHandles;
|
||||||
@ -7891,7 +7903,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Crypto/CryptoUtils.cs
|
// LibTSforge/Crypto/CryptoUtils.cs
|
||||||
namespace LibTSforge.Crypto
|
namespace LibTSforge.Crypto
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -8026,7 +8038,7 @@ namespace LibTSforge.Crypto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Crypto/Keys.cs
|
// LibTSforge/Crypto/Keys.cs
|
||||||
namespace LibTSforge.Crypto
|
namespace LibTSforge.Crypto
|
||||||
{
|
{
|
||||||
public static class Keys
|
public static class Keys
|
||||||
@ -8116,7 +8128,7 @@ namespace LibTSforge.Crypto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Crypto/PhysStoreCrypto.cs
|
// LibTSforge/Crypto/PhysStoreCrypto.cs
|
||||||
namespace LibTSforge.Crypto
|
namespace LibTSforge.Crypto
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -8201,7 +8213,7 @@ namespace LibTSforge.Crypto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/GenPKeyInstall.cs
|
// LibTSforge/Modifiers/GenPKeyInstall.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -8412,7 +8424,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/GracePeriodReset.cs
|
// LibTSforge/Modifiers/GracePeriodReset.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -8445,7 +8457,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/KeyChangeLockDelete.cs
|
// LibTSforge/Modifiers/KeyChangeLockDelete.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -8485,7 +8497,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/KMSHostCharge.cs
|
// LibTSforge/Modifiers/KMSHostCharge.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -8646,7 +8658,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/RearmReset.cs
|
// LibTSforge/Modifiers/RearmReset.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -8702,7 +8714,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/SetIIDParams.cs
|
// LibTSforge/Modifiers/SetIIDParams.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using PhysicalStore;
|
using PhysicalStore;
|
||||||
@ -8771,7 +8783,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/TamperedFlagsDelete.cs
|
// LibTSforge/Modifiers/TamperedFlagsDelete.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -8821,7 +8833,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/UniqueIdDelete.cs
|
// LibTSforge/Modifiers/UniqueIdDelete.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -8880,7 +8892,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Activators/KMS4K.cs
|
// LibTSforge/Activators/KMS4K.cs
|
||||||
namespace LibTSforge.Activators
|
namespace LibTSforge.Activators
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -9091,7 +9103,7 @@ namespace LibTSforge.Activators
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Activators/ZeroCID.cs
|
// LibTSforge/Activators/ZeroCID.cs
|
||||||
namespace LibTSforge.Activators
|
namespace LibTSforge.Activators
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -9280,7 +9292,7 @@ namespace LibTSforge.Activators
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TokenStore/Common.cs
|
// LibTSforge/TokenStore/Common.cs
|
||||||
namespace LibTSforge.TokenStore
|
namespace LibTSforge.TokenStore
|
||||||
{
|
{
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -9350,7 +9362,7 @@ namespace LibTSforge.TokenStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TokenStore/ITokenStore.cs
|
// LibTSforge/TokenStore/ITokenStore.cs
|
||||||
namespace LibTSforge.TokenStore
|
namespace LibTSforge.TokenStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -9370,7 +9382,7 @@ namespace LibTSforge.TokenStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TokenStore/TokenStoreModern.cs
|
// LibTSforge/TokenStore/TokenStoreModern.cs
|
||||||
namespace LibTSforge.TokenStore
|
namespace LibTSforge.TokenStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -9656,7 +9668,7 @@ namespace LibTSforge.TokenStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/Common.cs
|
// LibTSforge/PhysicalStore/Common.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
@ -9687,7 +9699,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/IPhysicalStore.cs
|
// LibTSforge/PhysicalStore/IPhysicalStore.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -9782,7 +9794,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/PhysicalStoreModern.cs
|
// LibTSforge/PhysicalStore/PhysicalStoreModern.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -10200,7 +10212,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/PhysicalStoreVista.cs
|
// LibTSforge/PhysicalStore/PhysicalStoreVista.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -10559,7 +10571,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/PhysicalStoreWin7.cs
|
// LibTSforge/PhysicalStore/PhysicalStoreWin7.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -10936,7 +10948,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/VariableBag.cs
|
// LibTSforge/PhysicalStore/VariableBag.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -11215,6 +11227,7 @@ else {
|
|||||||
if ($env:_debug -eq '0') {
|
if ($env:_debug -eq '0') {
|
||||||
[LibTSforge.Logger]::HideOutput = $true
|
[LibTSforge.Logger]::HideOutput = $true
|
||||||
}
|
}
|
||||||
|
[void][LibTSforge.Utils]::Wow64EnableWow64FsRedirection($false)
|
||||||
$ver = [LibTSforge.Utils]::DetectVersion()
|
$ver = [LibTSforge.Utils]::DetectVersion()
|
||||||
$prod = [LibTSforge.SPP.SPPUtils]::DetectCurrentKey()
|
$prod = [LibTSforge.SPP.SPPUtils]::DetectCurrentKey()
|
||||||
$tsactids = @($args)
|
$tsactids = @($args)
|
||||||
@ -13368,7 +13381,7 @@ if %winbuild% GEQ 9200 (
|
|||||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
||||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath /reg:32" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath /reg:32" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
||||||
if defined _C16R (
|
if defined _C16R (
|
||||||
REM mass<>grave<.>dev/office-license-is-not-genuine
|
REM mass()grave(dot)dev/office-license-is-not-genuine
|
||||||
set _server=10.0.0.10
|
set _server=10.0.0.10
|
||||||
call :_taskregserv
|
call :_taskregserv
|
||||||
echo Keeping the non-existent IP address 10.0.0.10 as %KS% Server.
|
echo Keeping the non-existent IP address 10.0.0.10 as %KS% Server.
|
||||||
@ -13713,7 +13726,7 @@ exit /b
|
|||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -50,6 +50,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
@ -1342,7 +1343,7 @@ sc start %%# %nul%
|
|||||||
if !errorlevel! EQU 1060 set _corrupt=1
|
if !errorlevel! EQU 1060 set _corrupt=1
|
||||||
sc query %%# %nul% || set _corrupt=1
|
sc query %%# %nul% || set _corrupt=1
|
||||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
||||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr="-RegistryError" )
|
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr=-RegistryError)
|
||||||
)
|
)
|
||||||
|
|
||||||
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
||||||
@ -1668,7 +1669,7 @@ cmd /c exit /b %error_code%
|
|||||||
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
||||||
|
|
||||||
if %error_code% NEQ 0 (
|
if %error_code% NEQ 0 (
|
||||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] %error_code%"
|
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
call :dk_color %Blue% "%_fixmsg%"
|
call :dk_color %Blue% "%_fixmsg%"
|
||||||
@ -1854,19 +1855,22 @@ call :dk_color %Gray% "Checking SkipRearm [Default 0 Value
|
|||||||
|
|
||||||
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||||
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
||||||
for /f "delims=" %%a in ('%psc% "(Get-ScheduledTask -TaskName 'SvcRestartTask' -TaskPath '\Microsoft\Windows\SoftwareProtectionPlatform\').State" %nul6%') do (set taskinfo=%%a)
|
for /f "delims=" %%a in ('%psc% "$s=New-Object -ComObject 'Schedule.Service'; $s.Connect(); $state=$s.GetFolder('\Microsoft\Windows\SoftwareProtectionPlatform').GetTask('SvcRestartTask').State; @{0='Unknown';1='Disabled';2='Queued';3='Ready';4='Running'}[$state]" %nul6%') do (set taskinfo=%%a)
|
||||||
|
|
||||||
echo !taskinfo! | find /i "Ready" %nul% || (
|
echo !taskinfo! | find /i "Ready" %nul% || (
|
||||||
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
||||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
||||||
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||||
|
|
||||||
call :dk_color %Red% "Checking SvcRestartTask Status [!taskinfo!, system might deactivate later]"
|
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
|
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||||
|
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||||
|
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||||
|
) || (
|
||||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||||
set fixes=%fixes% %mas%troubleshoot
|
)
|
||||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
|
||||||
echo:
|
echo:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -1984,7 +1988,7 @@ exit /b
|
|||||||
:: 2nd column = Generic Retail/OEM/MAK Key
|
:: 2nd column = Generic Retail/OEM/MAK Key
|
||||||
:: 3rd column = SKU ID
|
:: 3rd column = SKU ID
|
||||||
:: 4th column = Key part number
|
:: 4th column = Key part number
|
||||||
:: 5th column = Ticket signature value. It's as it is, it's not encoded. (Check mass<>grave<.>dev/hwid#manual-activation to see how it's generated)
|
:: 5th column = Ticket signature value. It's as it is, it's not encoded. (Check mass()grave(dot)dev/hwid#manual-activation to see how it's generated)
|
||||||
:: 6th column = 1 = activation is not working (at the time of writing this), 0 = activation is working
|
:: 6th column = 1 = activation is not working (at the time of writing this), 0 = activation is working
|
||||||
:: 7th column = Key Type
|
:: 7th column = Key Type
|
||||||
:: 8th column = WMI Edition ID (For reference only)
|
:: 8th column = WMI Edition ID (For reference only)
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -50,6 +50,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
@ -1427,7 +1428,7 @@ sc start %%# %nul%
|
|||||||
if !errorlevel! EQU 1060 set _corrupt=1
|
if !errorlevel! EQU 1060 set _corrupt=1
|
||||||
sc query %%# %nul% || set _corrupt=1
|
sc query %%# %nul% || set _corrupt=1
|
||||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
||||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr="-RegistryError" )
|
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr=-RegistryError)
|
||||||
)
|
)
|
||||||
|
|
||||||
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
||||||
@ -1753,7 +1754,7 @@ cmd /c exit /b %error_code%
|
|||||||
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
||||||
|
|
||||||
if %error_code% NEQ 0 (
|
if %error_code% NEQ 0 (
|
||||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] %error_code%"
|
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
call :dk_color %Blue% "%_fixmsg%"
|
call :dk_color %Blue% "%_fixmsg%"
|
||||||
@ -1939,19 +1940,22 @@ call :dk_color %Gray% "Checking SkipRearm [Default 0 Value
|
|||||||
|
|
||||||
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||||
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
||||||
for /f "delims=" %%a in ('%psc% "(Get-ScheduledTask -TaskName 'SvcRestartTask' -TaskPath '\Microsoft\Windows\SoftwareProtectionPlatform\').State" %nul6%') do (set taskinfo=%%a)
|
for /f "delims=" %%a in ('%psc% "$s=New-Object -ComObject 'Schedule.Service'; $s.Connect(); $state=$s.GetFolder('\Microsoft\Windows\SoftwareProtectionPlatform').GetTask('SvcRestartTask').State; @{0='Unknown';1='Disabled';2='Queued';3='Ready';4='Running'}[$state]" %nul6%') do (set taskinfo=%%a)
|
||||||
|
|
||||||
echo !taskinfo! | find /i "Ready" %nul% || (
|
echo !taskinfo! | find /i "Ready" %nul% || (
|
||||||
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
||||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
||||||
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||||
|
|
||||||
call :dk_color %Red% "Checking SvcRestartTask Status [!taskinfo!, system might deactivate later]"
|
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
|
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||||
|
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||||
|
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||||
|
) || (
|
||||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||||
set fixes=%fixes% %mas%troubleshoot
|
)
|
||||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
|
||||||
echo:
|
echo:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -50,6 +50,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
@ -727,7 +728,7 @@ call :dk_color %Gray% "Checking Old Office With Sub License [Found. Update Of
|
|||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
|
|
||||||
:: mass<>grave<.>dev/office-license-is-not-genuine
|
:: mass()grave(dot)dev/office-license-is-not-genuine
|
||||||
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
||||||
:: Script already is using MAK instead of GVLK so it won't appear anyway, but registry keys are added incase Office installs default GVLK grace key for volume products
|
:: Script already is using MAK instead of GVLK so it won't appear anyway, but registry keys are added incase Office installs default GVLK grace key for volume products
|
||||||
|
|
||||||
@ -2028,7 +2029,7 @@ sc start %%# %nul%
|
|||||||
if !errorlevel! EQU 1060 set _corrupt=1
|
if !errorlevel! EQU 1060 set _corrupt=1
|
||||||
sc query %%# %nul% || set _corrupt=1
|
sc query %%# %nul% || set _corrupt=1
|
||||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
||||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr="-RegistryError" )
|
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr=-RegistryError)
|
||||||
)
|
)
|
||||||
|
|
||||||
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
||||||
@ -2354,7 +2355,7 @@ cmd /c exit /b %error_code%
|
|||||||
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
||||||
|
|
||||||
if %error_code% NEQ 0 (
|
if %error_code% NEQ 0 (
|
||||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] %error_code%"
|
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
call :dk_color %Blue% "%_fixmsg%"
|
call :dk_color %Blue% "%_fixmsg%"
|
||||||
@ -2540,19 +2541,22 @@ call :dk_color %Gray% "Checking SkipRearm [Default 0 Value
|
|||||||
|
|
||||||
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||||
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
||||||
for /f "delims=" %%a in ('%psc% "(Get-ScheduledTask -TaskName 'SvcRestartTask' -TaskPath '\Microsoft\Windows\SoftwareProtectionPlatform\').State" %nul6%') do (set taskinfo=%%a)
|
for /f "delims=" %%a in ('%psc% "$s=New-Object -ComObject 'Schedule.Service'; $s.Connect(); $state=$s.GetFolder('\Microsoft\Windows\SoftwareProtectionPlatform').GetTask('SvcRestartTask').State; @{0='Unknown';1='Disabled';2='Queued';3='Ready';4='Running'}[$state]" %nul6%') do (set taskinfo=%%a)
|
||||||
|
|
||||||
echo !taskinfo! | find /i "Ready" %nul% || (
|
echo !taskinfo! | find /i "Ready" %nul% || (
|
||||||
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
||||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
||||||
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||||
|
|
||||||
call :dk_color %Red% "Checking SvcRestartTask Status [!taskinfo!, system might deactivate later]"
|
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
|
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||||
|
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||||
|
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||||
|
) || (
|
||||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||||
set fixes=%fixes% %mas%troubleshoot
|
)
|
||||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
|
||||||
echo:
|
echo:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -2682,7 +2686,6 @@ exit /b
|
|||||||
|
|
||||||
14_4eaff0d0-c6cb-4187-94f3-c7656d49a0aa_Retail________ExcelR_[HSExcelR]
|
14_4eaff0d0-c6cb-4187-94f3-c7656d49a0aa_Retail________ExcelR_[HSExcelR]
|
||||||
14_7004b7f0-6407-4f45-8eac-966e5f868bde_Retail________GrooveR
|
14_7004b7f0-6407-4f45-8eac-966e5f868bde_Retail________GrooveR
|
||||||
14_fbf4ac36-31c8-4340-8666-79873129cf40_Retail________OutlookR
|
|
||||||
14_133c8359-4e93-4241-8118-30bb18737ea0_Retail________PowerPointR_[HSPowerPointR]
|
14_133c8359-4e93-4241-8118-30bb18737ea0_Retail________PowerPointR_[HSPowerPointR]
|
||||||
14_db3bbc9c-ce52-41d1-a46f-1a1d68059119_Retail________WordR_[HSWordR]
|
14_db3bbc9c-ce52-41d1-a46f-1a1d68059119_Retail________WordR_[HSWordR]
|
||||||
14_dbe3aee0-5183-4ff7-8142-66050173cb01_Retail________SmallBusBasicsR_[SmallBusBasicsMSDNR]
|
14_dbe3aee0-5183-4ff7-8142-66050173cb01_Retail________SmallBusBasicsR_[SmallBusBasicsMSDNR]
|
||||||
@ -2711,6 +2714,7 @@ for %%# in (
|
|||||||
14_85e22450-b741-430c-a172-a37962c938af_6GKT2-KMJPK-4RRBF-8VQKB-JB%f%6G6_MAK___________InfoPathVL
|
14_85e22450-b741-430c-a172-a37962c938af_6GKT2-KMJPK-4RRBF-8VQKB-JB%f%6G6_MAK___________InfoPathVL
|
||||||
14_3f7aa693-9a7e-44fc-9309-bb3d8e604925_2TG3P-9DB76-4YT99-8RXGD-CW%f%XBP_Retail________OneNoteR_[HSOneNoteR]
|
14_3f7aa693-9a7e-44fc-9309-bb3d8e604925_2TG3P-9DB76-4YT99-8RXGD-CW%f%XBP_Retail________OneNoteR_[HSOneNoteR]
|
||||||
14_6860b31f-6a67-48b8-84b9-e312b3485c4b_CV64P-F4VRH-BJ33D-PH6MR-X6%f%9RY_MAK___________OneNoteVL
|
14_6860b31f-6a67-48b8-84b9-e312b3485c4b_CV64P-F4VRH-BJ33D-PH6MR-X6%f%9RY_MAK___________OneNoteVL
|
||||||
|
14_fbf4ac36-31c8-4340-8666-79873129cf40_9D8FR-7GYBW-4YG8M-V36JK-VD%f%7CM_Retail________OutlookR
|
||||||
14_a9aeabd8-63b8-4079-a28e-f531807fd6b8_J8C9M-YXMH2-9CX44-2C3YG-V7%f%692_MAK___________OutlookVL
|
14_a9aeabd8-63b8-4079-a28e-f531807fd6b8_J8C9M-YXMH2-9CX44-2C3YG-V7%f%692_MAK___________OutlookVL
|
||||||
14_acb51361-c0db-4895-9497-1831c41f31a6_GMBWM-WVX26-7WHV4-DB43D-WV%f%DY2_Retail________PersonalR_[PersonalDemoR,PersonalPrepaidR]
|
14_acb51361-c0db-4895-9497-1831c41f31a6_GMBWM-WVX26-7WHV4-DB43D-WV%f%DY2_Retail________PersonalR_[PersonalDemoR,PersonalPrepaidR]
|
||||||
14_38252940-718c-4aa6-81a4-135398e53851_HPBQP-RJHDR-Q3472-PT9Q6-PB%f%B72_MAK___________PowerPointVL
|
14_38252940-718c-4aa6-81a4-135398e53851_HPBQP-RJHDR-Q3472-PT9Q6-PB%f%B72_MAK___________PowerPointVL
|
||||||
@ -3229,13 +3233,13 @@ $MemoryStream.Close()
|
|||||||
::
|
::
|
||||||
:: The files are encoded in base64 to make AIO version.
|
:: The files are encoded in base64 to make AIO version.
|
||||||
::
|
::
|
||||||
:: mass<>grave<.>dev/ohook
|
:: mass()grave(dot)dev/ohook
|
||||||
:: Here you can find the files source code and info on how to rebuild the identical sppc.dll files
|
:: Here you can find the files source code and info on how to rebuild the identical sppc.dll files
|
||||||
::
|
::
|
||||||
:: stackoverflow.com/a/35335273
|
:: stackoverflow.com/a/35335273
|
||||||
:: Here you can check how to extract sppc.dll files from base64
|
:: Here you can check how to extract sppc.dll files from base64
|
||||||
::
|
::
|
||||||
:: For any further question, feel free to contact us on mass<>grave<.>dev/contactus
|
:: For any further question, feel free to contact us on mass()grave(dot)dev/contactus
|
||||||
::
|
::
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
::
|
::
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -75,6 +75,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
@ -1030,7 +1031,7 @@ if %winbuild% GEQ 9200 (
|
|||||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
||||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath /reg:32" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath /reg:32" %nul6%') do if exist "%%b\root\Licenses16\ProPlus*.xrm-ms" set "_C16R=1"
|
||||||
if defined _C16R (
|
if defined _C16R (
|
||||||
REM mass<>grave<.>dev/office-license-is-not-genuine
|
REM mass()grave(dot)dev/office-license-is-not-genuine
|
||||||
set _server=10.0.0.10
|
set _server=10.0.0.10
|
||||||
call :_taskregserv
|
call :_taskregserv
|
||||||
echo Keeping the non-existent IP address 10.0.0.10 as %KS% Server.
|
echo Keeping the non-existent IP address 10.0.0.10 as %KS% Server.
|
||||||
@ -1726,7 +1727,7 @@ exit /b
|
|||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -3091,7 +3092,7 @@ sc start %%# %nul%
|
|||||||
if !errorlevel! EQU 1060 set _corrupt=1
|
if !errorlevel! EQU 1060 set _corrupt=1
|
||||||
sc query %%# %nul% || set _corrupt=1
|
sc query %%# %nul% || set _corrupt=1
|
||||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
||||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr="-RegistryError" )
|
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr=-RegistryError)
|
||||||
)
|
)
|
||||||
|
|
||||||
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
||||||
@ -3417,7 +3418,7 @@ cmd /c exit /b %error_code%
|
|||||||
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
||||||
|
|
||||||
if %error_code% NEQ 0 (
|
if %error_code% NEQ 0 (
|
||||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] %error_code%"
|
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
call :dk_color %Blue% "%_fixmsg%"
|
call :dk_color %Blue% "%_fixmsg%"
|
||||||
@ -3603,19 +3604,22 @@ call :dk_color %Gray% "Checking SkipRearm [Default 0 Value
|
|||||||
|
|
||||||
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||||
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
||||||
for /f "delims=" %%a in ('%psc% "(Get-ScheduledTask -TaskName 'SvcRestartTask' -TaskPath '\Microsoft\Windows\SoftwareProtectionPlatform\').State" %nul6%') do (set taskinfo=%%a)
|
for /f "delims=" %%a in ('%psc% "$s=New-Object -ComObject 'Schedule.Service'; $s.Connect(); $state=$s.GetFolder('\Microsoft\Windows\SoftwareProtectionPlatform').GetTask('SvcRestartTask').State; @{0='Unknown';1='Disabled';2='Queued';3='Ready';4='Running'}[$state]" %nul6%') do (set taskinfo=%%a)
|
||||||
|
|
||||||
echo !taskinfo! | find /i "Ready" %nul% || (
|
echo !taskinfo! | find /i "Ready" %nul% || (
|
||||||
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
||||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
||||||
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||||
|
|
||||||
call :dk_color %Red% "Checking SvcRestartTask Status [!taskinfo!, system might deactivate later]"
|
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
|
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||||
|
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||||
|
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||||
|
) || (
|
||||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||||
set fixes=%fixes% %mas%troubleshoot
|
)
|
||||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
|
||||||
echo:
|
echo:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -46,7 +46,7 @@ set tsids=
|
|||||||
set _resall=0
|
set _resall=0
|
||||||
|
|
||||||
:: Choose activation method:
|
:: Choose activation method:
|
||||||
:: In builds 19041 and later, the script will auto select StaticCID (requires internet). If no internet is detected, it will then auto select the KMS4k method. For builds lower than 19041, the script will auto select ZeroCID.
|
:: In builds 26100 and later, the script will auto select StaticCID (requires internet). If no internet is detected, it will then auto select the KMS4k method. For builds lower than 26100, the script will auto select ZeroCID.
|
||||||
:: To change the activation method, run the script with the parameters "/Z-SCID", "/Z-ZCID", or "/Z-KMS4k", or modify the option from Auto to SCID, ZCID, or KMS4k in the line below.
|
:: To change the activation method, run the script with the parameters "/Z-SCID", "/Z-ZCID", or "/Z-KMS4k", or modify the option from Auto to SCID, ZCID, or KMS4k in the line below.
|
||||||
set _actmethod=Auto
|
set _actmethod=Auto
|
||||||
|
|
||||||
@ -84,6 +84,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
@ -544,8 +545,8 @@ echo:
|
|||||||
echo ______________________________________________________________
|
echo ______________________________________________________________
|
||||||
echo:
|
echo:
|
||||||
call :dk_color2 %_White% " [1] " %_Green% "Auto"
|
call :dk_color2 %_White% " [1] " %_Green% "Auto"
|
||||||
echo Builds ^>= 19041 - StaticCID (KMS4k if offline)
|
echo Builds ^>= 26100 - StaticCID (KMS4k if offline)
|
||||||
echo Builds ^< 19041 - ZeroCID
|
echo Builds ^< 26100 - ZeroCID
|
||||||
echo __________________________________________________
|
echo __________________________________________________
|
||||||
echo:
|
echo:
|
||||||
echo [2] StaticCID
|
echo [2] StaticCID
|
||||||
@ -554,8 +555,7 @@ echo Not for Windows 7 or older
|
|||||||
echo __________________________________________________
|
echo __________________________________________________
|
||||||
echo:
|
echo:
|
||||||
echo [3] ZeroCID
|
echo [3] ZeroCID
|
||||||
echo Works reliably on builds below 19041
|
echo Works reliably on builds below 26100
|
||||||
echo May break on builds between 19041-26100
|
|
||||||
echo Does not work on builds above 26100.4188
|
echo Does not work on builds above 26100.4188
|
||||||
echo __________________________________________________
|
echo __________________________________________________
|
||||||
echo:
|
echo:
|
||||||
@ -667,7 +667,7 @@ if /i %_actmethod%==ZCID set tsmethod=ZeroCID
|
|||||||
if /i %_actmethod%==KMS4k set tsmethod=KMS4k
|
if /i %_actmethod%==KMS4k set tsmethod=KMS4k
|
||||||
|
|
||||||
if /i %_actmethod%==Auto (
|
if /i %_actmethod%==Auto (
|
||||||
if %winbuild% GEQ 19041 (
|
if %winbuild% GEQ 26100 (
|
||||||
set tsmethod=StaticCID
|
set tsmethod=StaticCID
|
||||||
) else (
|
) else (
|
||||||
set tsmethod=ZeroCID
|
set tsmethod=ZeroCID
|
||||||
@ -1469,7 +1469,7 @@ call :ts_process
|
|||||||
|
|
||||||
::========================================================================================================================================
|
::========================================================================================================================================
|
||||||
|
|
||||||
:: mass<>grave<.>dev/office-license-is-not-genuine
|
:: mass()grave(dot)dev/office-license-is-not-genuine
|
||||||
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
:: Add registry keys for volume products so that 'non-genuine' banner won't appear
|
||||||
|
|
||||||
set "kmskey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663"
|
set "kmskey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\0ff1ce15-a989-479d-af46-f275c6370663"
|
||||||
@ -3097,7 +3097,7 @@ sc start %%# %nul%
|
|||||||
if !errorlevel! EQU 1060 set _corrupt=1
|
if !errorlevel! EQU 1060 set _corrupt=1
|
||||||
sc query %%# %nul% || set _corrupt=1
|
sc query %%# %nul% || set _corrupt=1
|
||||||
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
for %%G in (DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _regcorr (
|
||||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr="-RegistryError" )
|
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v %%G %nul% || (set _corrupt=1&set _regcorr=-RegistryError)
|
||||||
)
|
)
|
||||||
|
|
||||||
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
if defined _corrupt (if defined serv_cor (set "serv_cor=!serv_cor! %%#!_regcorr!") else (set "serv_cor=%%#!_regcorr!"))
|
||||||
@ -3423,7 +3423,7 @@ cmd /c exit /b %error_code%
|
|||||||
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
||||||
|
|
||||||
if %error_code% NEQ 0 (
|
if %error_code% NEQ 0 (
|
||||||
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] %error_code%"
|
call :dk_color %Red% "Checking SoftwareLicensingService [Not Working] [%error_code%]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
call :dk_color %Blue% "%_fixmsg%"
|
call :dk_color %Blue% "%_fixmsg%"
|
||||||
@ -3609,19 +3609,22 @@ call :dk_color %Gray% "Checking SkipRearm [Default 0 Value
|
|||||||
|
|
||||||
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
if %winbuild% GEQ 9200 if not exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||||
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
%psc% "Get-WmiObject -Query 'SELECT Description FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL AND LicenseDependsOn IS NULL' | Select-Object -Property Description" %nul2% | findstr /i "KMS_" %nul1% || (
|
||||||
for /f "delims=" %%a in ('%psc% "(Get-ScheduledTask -TaskName 'SvcRestartTask' -TaskPath '\Microsoft\Windows\SoftwareProtectionPlatform\').State" %nul6%') do (set taskinfo=%%a)
|
for /f "delims=" %%a in ('%psc% "$s=New-Object -ComObject 'Schedule.Service'; $s.Connect(); $state=$s.GetFolder('\Microsoft\Windows\SoftwareProtectionPlatform').GetTask('SvcRestartTask').State; @{0='Unknown';1='Disabled';2='Queued';3='Ready';4='Running'}[$state]" %nul6%') do (set taskinfo=%%a)
|
||||||
|
|
||||||
echo !taskinfo! | find /i "Ready" %nul% || (
|
echo !taskinfo! | find /i "Ready" %nul% || (
|
||||||
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "actionlist" /f %nul%
|
||||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask" %nul% || set taskinfo=Removed
|
||||||
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
if "!taskinfo!"=="" set "taskinfo=Not Found"
|
||||||
|
|
||||||
call :dk_color %Red% "Checking SvcRestartTask Status [!taskinfo!, system might deactivate later]"
|
call :dk_color %Gray% "Checking SvcRestartTask Status [!taskinfo!. System might deactivate later.]"
|
||||||
if not defined showfix (
|
if not defined showfix (
|
||||||
echo:
|
echo:
|
||||||
|
echo "!taskinfo!" | findstr /i "Removed Not Found" %nul1% && (
|
||||||
|
set fixes=%fixes% %mas%in-place_repair_upgrade
|
||||||
|
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%in-place_repair_upgrade"
|
||||||
|
) || (
|
||||||
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
call :dk_color %Blue% "Reboot your machine using the restart option and run the script again."
|
||||||
set fixes=%fixes% %mas%troubleshoot
|
)
|
||||||
call :dk_color2 %Blue% "Check this webpage for help - " %_Yellow% " %mas%troubleshoot"
|
|
||||||
echo:
|
echo:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -3951,7 +3954,7 @@ using System.Xml.Linq;
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Common.cs
|
// LibTSforge/Common.cs
|
||||||
namespace LibTSforge
|
namespace LibTSforge
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -4193,7 +4196,7 @@ namespace LibTSforge
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/PKeyConfig.cs
|
// LibTSforge/SPP/PKeyConfig.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -4219,7 +4222,7 @@ namespace LibTSforge.SPP
|
|||||||
|
|
||||||
public bool Contains(int n)
|
public bool Contains(int n)
|
||||||
{
|
{
|
||||||
return Start <= n && End <= n;
|
return Start <= n && n <= End;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4349,10 +4352,19 @@ namespace LibTSforge.SPP
|
|||||||
string refActIdStr = configNode.SelectSingleNode("./p:ActConfigId", nsmgr).InnerText;
|
string refActIdStr = configNode.SelectSingleNode("./p:ActConfigId", nsmgr).InnerText;
|
||||||
Guid refActId = new Guid(refActIdStr);
|
Guid refActId = new Guid(refActIdStr);
|
||||||
int group = int.Parse(configNode.SelectSingleNode("./p:RefGroupId", nsmgr).InnerText);
|
int group = int.Parse(configNode.SelectSingleNode("./p:RefGroupId", nsmgr).InnerText);
|
||||||
List<KeyRange> keyRanges = ranges[refActIdStr];
|
List<KeyRange> keyRanges;
|
||||||
|
ranges.TryGetValue(refActIdStr, out keyRanges);
|
||||||
|
|
||||||
|
if (keyRanges == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (keyRanges.Count > 0 && !Products.ContainsKey(refActId))
|
if (keyRanges.Count > 0 && !Products.ContainsKey(refActId))
|
||||||
{
|
{
|
||||||
|
PKeyAlgorithm algorithm;
|
||||||
|
algorithms.TryGetValue(group, out algorithm);
|
||||||
|
|
||||||
ProductConfig productConfig = new ProductConfig
|
ProductConfig productConfig = new ProductConfig
|
||||||
{
|
{
|
||||||
GroupId = group,
|
GroupId = group,
|
||||||
@ -4360,7 +4372,7 @@ namespace LibTSforge.SPP
|
|||||||
Description = configNode.SelectSingleNode("./p:ProductDescription", nsmgr).InnerText,
|
Description = configNode.SelectSingleNode("./p:ProductDescription", nsmgr).InnerText,
|
||||||
Channel = configNode.SelectSingleNode("./p:ProductKeyType", nsmgr).InnerText,
|
Channel = configNode.SelectSingleNode("./p:ProductKeyType", nsmgr).InnerText,
|
||||||
Randomized = configNode.SelectSingleNode("./p:ProductKeyType", nsmgr).InnerText.ToLower() == "true",
|
Randomized = configNode.SelectSingleNode("./p:ProductKeyType", nsmgr).InnerText.ToLower() == "true",
|
||||||
Algorithm = algorithms[group],
|
Algorithm = algorithm,
|
||||||
Ranges = keyRanges,
|
Ranges = keyRanges,
|
||||||
ActivationId = refActId
|
ActivationId = refActId
|
||||||
};
|
};
|
||||||
@ -4410,7 +4422,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/ProductKey.cs
|
// LibTSforge/SPP/ProductKey.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -4726,7 +4738,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/SLAPI.cs
|
// LibTSforge/SPP/SLAPI.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -5139,7 +5151,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/SPPUtils.cs
|
// LibTSforge/SPP/SPPUtils.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
@ -5476,7 +5488,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// SPP/SPSys.cs
|
// LibTSforge/SPP/SPSys.cs
|
||||||
namespace LibTSforge.SPP
|
namespace LibTSforge.SPP
|
||||||
{
|
{
|
||||||
using Microsoft.Win32.SafeHandles;
|
using Microsoft.Win32.SafeHandles;
|
||||||
@ -5523,7 +5535,7 @@ namespace LibTSforge.SPP
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Crypto/CryptoUtils.cs
|
// LibTSforge/Crypto/CryptoUtils.cs
|
||||||
namespace LibTSforge.Crypto
|
namespace LibTSforge.Crypto
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -5658,7 +5670,7 @@ namespace LibTSforge.Crypto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Crypto/Keys.cs
|
// LibTSforge/Crypto/Keys.cs
|
||||||
namespace LibTSforge.Crypto
|
namespace LibTSforge.Crypto
|
||||||
{
|
{
|
||||||
public static class Keys
|
public static class Keys
|
||||||
@ -5748,7 +5760,7 @@ namespace LibTSforge.Crypto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Crypto/PhysStoreCrypto.cs
|
// LibTSforge/Crypto/PhysStoreCrypto.cs
|
||||||
namespace LibTSforge.Crypto
|
namespace LibTSforge.Crypto
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -5833,7 +5845,7 @@ namespace LibTSforge.Crypto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/GenPKeyInstall.cs
|
// LibTSforge/Modifiers/GenPKeyInstall.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -6044,7 +6056,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/GracePeriodReset.cs
|
// LibTSforge/Modifiers/GracePeriodReset.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -6077,7 +6089,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/KeyChangeLockDelete.cs
|
// LibTSforge/Modifiers/KeyChangeLockDelete.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -6117,7 +6129,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/KMSHostCharge.cs
|
// LibTSforge/Modifiers/KMSHostCharge.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -6278,7 +6290,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/RearmReset.cs
|
// LibTSforge/Modifiers/RearmReset.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -6334,7 +6346,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/SetIIDParams.cs
|
// LibTSforge/Modifiers/SetIIDParams.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using PhysicalStore;
|
using PhysicalStore;
|
||||||
@ -6403,7 +6415,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/TamperedFlagsDelete.cs
|
// LibTSforge/Modifiers/TamperedFlagsDelete.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -6453,7 +6465,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Modifiers/UniqueIdDelete.cs
|
// LibTSforge/Modifiers/UniqueIdDelete.cs
|
||||||
namespace LibTSforge.Modifiers
|
namespace LibTSforge.Modifiers
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -6512,7 +6524,7 @@ namespace LibTSforge.Modifiers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Activators/KMS4K.cs
|
// LibTSforge/Activators/KMS4K.cs
|
||||||
namespace LibTSforge.Activators
|
namespace LibTSforge.Activators
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -6723,7 +6735,7 @@ namespace LibTSforge.Activators
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Activators/ZeroCID.cs
|
// LibTSforge/Activators/ZeroCID.cs
|
||||||
namespace LibTSforge.Activators
|
namespace LibTSforge.Activators
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -6912,7 +6924,7 @@ namespace LibTSforge.Activators
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TokenStore/Common.cs
|
// LibTSforge/TokenStore/Common.cs
|
||||||
namespace LibTSforge.TokenStore
|
namespace LibTSforge.TokenStore
|
||||||
{
|
{
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -6982,7 +6994,7 @@ namespace LibTSforge.TokenStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TokenStore/ITokenStore.cs
|
// LibTSforge/TokenStore/ITokenStore.cs
|
||||||
namespace LibTSforge.TokenStore
|
namespace LibTSforge.TokenStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -7002,7 +7014,7 @@ namespace LibTSforge.TokenStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TokenStore/TokenStoreModern.cs
|
// LibTSforge/TokenStore/TokenStoreModern.cs
|
||||||
namespace LibTSforge.TokenStore
|
namespace LibTSforge.TokenStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -7288,7 +7300,7 @@ namespace LibTSforge.TokenStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/Common.cs
|
// LibTSforge/PhysicalStore/Common.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
@ -7319,7 +7331,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/IPhysicalStore.cs
|
// LibTSforge/PhysicalStore/IPhysicalStore.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -7414,7 +7426,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/PhysicalStoreModern.cs
|
// LibTSforge/PhysicalStore/PhysicalStoreModern.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -7832,7 +7844,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/PhysicalStoreVista.cs
|
// LibTSforge/PhysicalStore/PhysicalStoreVista.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -8191,7 +8203,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/PhysicalStoreWin7.cs
|
// LibTSforge/PhysicalStore/PhysicalStoreWin7.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -8568,7 +8580,7 @@ namespace LibTSforge.PhysicalStore
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// PhysicalStore/VariableBag.cs
|
// LibTSforge/PhysicalStore/VariableBag.cs
|
||||||
namespace LibTSforge.PhysicalStore
|
namespace LibTSforge.PhysicalStore
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
@ -8847,6 +8859,7 @@ else {
|
|||||||
if ($env:_debug -eq '0') {
|
if ($env:_debug -eq '0') {
|
||||||
[LibTSforge.Logger]::HideOutput = $true
|
[LibTSforge.Logger]::HideOutput = $true
|
||||||
}
|
}
|
||||||
|
[void][LibTSforge.Utils]::Wow64EnableWow64FsRedirection($false)
|
||||||
$ver = [LibTSforge.Utils]::DetectVersion()
|
$ver = [LibTSforge.Utils]::DetectVersion()
|
||||||
$prod = [LibTSforge.SPP.SPPUtils]::DetectCurrentKey()
|
$prod = [LibTSforge.SPP.SPPUtils]::DetectCurrentKey()
|
||||||
$tsactids = @($args)
|
$tsactids = @($args)
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -37,6 +37,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -42,6 +42,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -37,6 +37,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
@set masver=3.4
|
@set masver=3.6
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
::============================================================================
|
::============================================================================
|
||||||
::
|
::
|
||||||
:: Homepage: mass<>grave<.>dev
|
:: Homepage: mass()grave(dot)dev
|
||||||
:: Email: mas.help@outlook.com
|
:: Email: mas.help@outlook.com
|
||||||
::
|
::
|
||||||
::============================================================================
|
::============================================================================
|
||||||
@ -37,6 +37,7 @@ set "_cmdf=%~f0"
|
|||||||
for %%# in (%*) do (
|
for %%# in (%*) do (
|
||||||
if /i "%%#"=="re1" set re1=1
|
if /i "%%#"=="re1" set re1=1
|
||||||
if /i "%%#"=="re2" set re2=1
|
if /i "%%#"=="re2" set re2=1
|
||||||
|
if /i "%%#"=="-qedit" (set re1=1&set re2=1)
|
||||||
)
|
)
|
||||||
|
|
||||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||||
|
|||||||
47
README.md
47
README.md
@ -6,25 +6,42 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
## How to Activate Windows / Office?
|
## How to Activate Windows / Office / Extended Updates (ESU)?
|
||||||
|
|
||||||
### Method 1 - PowerShell (Windows 8 and later) ❤️
|
### Method 1 - PowerShell ❤️
|
||||||
|
|
||||||
1. **Open PowerShell**
|
1. **Open PowerShell**
|
||||||
To do that, press the Windows key + X, then select PowerShell or Terminal.
|
Click the **Start Menu**, type `PowerShell`, then open it.
|
||||||
|
|
||||||
2. **Copy and paste the code below, then press enter.**
|
2. **Copy and paste the code below, then press enter.**
|
||||||
|
- For **Windows 8, 10, 11**: 📌
|
||||||
```
|
```
|
||||||
irm https://get.activated.win | iex
|
irm https://get.activated.win | iex
|
||||||
```
|
```
|
||||||
Alternatively, you can use the following (this will be deprecated in the future):
|
- For **Windows 7** and later:
|
||||||
```
|
```
|
||||||
irm https://massgrave.dev/get | iex
|
iex ((New-Object Net.WebClient).DownloadString('https://get.activated.win'))
|
||||||
```
|
```
|
||||||
|
|
||||||
3. You will see the activation options. Choose the activation options highlighted in green.
|
<details>
|
||||||
|
|
||||||
4. That's all
|
<summary>Script not launching❓Click here for info.</summary>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- 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 the below-listed Method 2.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
3. The activation menu will appear. **Choose the green-highlighted options** to activate Windows or Office.
|
||||||
|
|
||||||
|
4. **Done!**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -47,16 +64,14 @@ or
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
- To activate additional products such as **Office for macOS, Visual Studio, RDS CALs, and Windows XP**, check [here](https://massgrave.dev/unsupported_products_activation).
|
> [!TIP]
|
||||||
- To run the scripts in unattended mode, check [here](https://massgrave.dev/command_line_switches).
|
> - 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**❓Visit our [troubleshooting page](https://massgrave.dev/troubleshoot) or raise an issue on [GitHub](https://github.com/massgravel/Microsoft-Activation-Scripts/issues).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Not working ❓
|
- To activate additional products such as **Office for macOS, Visual Studio, RDS CALs, and Windows XP**, check [here](https://massgrave.dev/unsupported_products_activation).
|
||||||
|
- To run the scripts in unattended mode, check [here](https://massgrave.dev/command_line_switches).
|
||||||
- If you are **unable to launch MAS** using the PowerShell method, please refer to **Method 2** listed above.
|
|
||||||
- If MAS is launched and the script shows any errors, check for any troubleshooting steps mentioned in blue color and try to follow those.
|
|
||||||
- If you have any issues, please feel free to reach out to us [here](https://massgrave.dev/troubleshoot).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -69,8 +84,8 @@ or
|
|||||||
---
|
---
|
||||||
|
|
||||||
```
|
```
|
||||||
Latest Version: 3.4
|
Latest Version: 3.6
|
||||||
Release date: 3-June-2025
|
Release date: 9-Sep-2025
|
||||||
```
|
```
|
||||||
|
|
||||||
### [Troubleshooting / Help](https://massgrave.dev/troubleshoot)
|
### [Troubleshooting / Help](https://massgrave.dev/troubleshoot)
|
||||||
|
|||||||
Reference in New Issue
Block a user