This page documents the system requirements, compatibility constraints, and prerequisite checks for all Microsoft Activation Scripts (MAS) activation methods. For information about the diagnostic system that validates these requirements at runtime, see page 5.4. For deployment planning that considers these requirements, see page 4.3.
MAS supports a wide range of Windows and Office versions, but each activation method has specific operating system, architecture, and component requirements. All scripts perform comprehensive pre-flight validation before attempting activation to detect configuration issues, missing components, and unsupported environments.
The requirements fall into four categories:
Windows version compatibility by activation method (winbuild check values)
Sources: MAS/All-In-One-Version-KL/MAS_AIO.cmd156-166 MAS/Separate-Files-Version/Activators/HWID_Activation.cmd186-200 MAS/Separate-Files-Version/Activators/TSforge_Activation.cmd231-265 MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd217-239
Sources: MAS/All-In-One-Version-KL/MAS_AIO.cmd156-166 MAS/Separate-Files-Version/Activators/HWID_Activation.cmd186-200
The scripts detect Windows build number using the ver command in dk_setvar and validate against minimum requirements:
| Check Type | Code Location | Variable / Marker |
|---|---|---|
| Build Detection | MAS/Separate-Files-Version/Activators/HWID_Activation.cmd880-881 | winbuild set via ver parsing |
| Minimum Version | MAS/All-In-One-Version-KL/MAS_AIO.cmd156-166 | if %winbuild% LSS 6001 — rejects Vista RTM (build 6000) |
| HWID Constraint | MAS/Separate-Files-Version/Activators/HWID_Activation.cmd186-193 | if %winbuild% LSS 10240 — requires Windows 10+ |
| Server Detection | MAS/Separate-Files-Version/Activators/HWID_Activation.cmd195-200 | Microsoft-Windows-Server*Edition~*.mum in %SystemRoot%\Servicing\Packages\ |
| Sandbox Detection | MAS/All-In-One-Version-KL/MAS_AIO.cmd146-154 | WDAGUtilityAccount user folder + gcs service running |
Windows Vista RTM (Build 6000):
Windows Sandbox:
%Systemdrive%\Users\WDAGUtilityAccount combined with the gcs service runningEvaluation Editions:
PowerShell validation sequence (:pstst marker + inline checks)
Sources: MAS/All-In-One-Version-KL/MAS_AIO.cmd168-178 MAS/All-In-One-Version-KL/MAS_AIO.cmd224-300
| Requirement | Minimum Version | Check Location | Failure Action |
|---|---|---|---|
| Installation | PowerShell 2.0 | MAS/All-In-One-Version-KL/MAS_AIO.cmd168-178 | Direct user to KB968930 download |
| Modules Folder | Windows 7+ | MAS/All-In-One-Version-KL/MAS_AIO.cmd168-178 | %SysPath%\WindowsPowerShell\v1.0\Modules must exist |
| Language Mode | FullLanguage | MAS/All-In-One-Version-KL/MAS_AIO.cmd226-246 | Abort if ConstrainedLanguage, RestrictedLanguage, or NoLanguage |
| Edition | Windows PowerShell | MAS/All-In-One-Version-KL/MAS_AIO.cmd250-256 | Abort if PSEdition equals Core |
| .NET Framework | Functional | MAS/All-In-One-Version-KL/MAS_AIO.cmd272-280 | Tests [System.Math]::Sqrt(144) — exit code 3 = fail |
| No Malware | Clean system | MAS/All-In-One-Version-KL/MAS_AIO.cmd260-267 | Scans %ProgramFiles% recursively for secureboot.exe |
The scripts use an embedded PowerShell test approach with the :pstst delimiter marker. A line beginning with ::pstst and ending with :pstst wraps a PowerShell expression directly inside the batch file. At runtime, the batch script reads its own file contents via [System.IO.File]::ReadAllText, splits on the :pstst delimiter, and evaluates the embedded block via [scriptblock]::Create. The result (FullLanguage, ConstrainedLanguage, etc.) is captured in tstresult.
This allows the scripts to test PowerShell LanguageMode before any other activation work begins.
Location: MAS/All-In-One-Version-KL/MAS_AIO.cmd226-234
Architecture relaunch using re1/re2 sentinel parameters
Sources: MAS/All-In-One-Version-KL/MAS_AIO.cmd49-64
| Architecture | Support Status | Validation | Notes |
|---|---|---|---|
| x86 (32-bit) | Full support | Process runs natively | Used on 32-bit Windows Vista-10 |
| x64 (64-bit) | Full support | Auto-relaunch from x86 via Sysnative | Primary architecture for modern systems |
| ARM64 | Full support | Dual relaunch: x64→ARM32 and x86→ARM64 | Windows 10+ on ARM devices |
| ARM32 | Limited | Via ARM64 relaunch chain | Older Windows RT devices |
%SystemRoot%\Sysnative\cmd.exe with re1 not set triggers relaunch. MAS/All-In-One-Version-KL/MAS_AIO.cmd52-56%SystemRoot%\SysArm32\cmd.exe with PROCESSOR_ARCHITECTURE==AMD64 and re2 not set triggers relaunch. MAS/All-In-One-Version-KL/MAS_AIO.cmd60-64PROCESSOR_ARCHITECTURE or PROCESSOR_ARCHITEW6432 contains ARM64 and winbuild is below 21277, the variable ps32onArm is set, causing the script to use 32-bit PowerShell. MAS/All-In-One-Version-KL/MAS_AIO.cmd892Service dependencies as expressed in _serv variable passed to dk_errorcheck
Sources: MAS/Separate-Files-Version/Activators/HWID_Activation.cmd513-522 MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd583-595 MAS/Separate-Files-Version/Activators/TSforge_Activation.cmd706-713
| Component | File Path | Purpose | Checked By |
|---|---|---|---|
| sppsvc.exe (Win7+) | %SysPath%\sppsvc.exe | Software Protection Service (_slexe variable) | HWID, KMS, TSforge, Ohook |
| SLsvc.exe (Vista) | %SysPath%\SLsvc.exe | Legacy Software Licensing Service (_slexe on Vista) | Vista systems only |
| ClipUp.exe | %SysPath%\ClipUp.exe | GenuineTicket.xml installer | HWID only |
| wmic.exe | %SysPath%\wbem\wmic.exe | WMI command-line interface | All methods (fallback to PowerShell WMI when _wmic=0) |
dk_setvar selects between sppsvc.exe and SLsvc.exe into the _slexe and _slser variables based on winbuild. MAS/Separate-Files-Version/Activators/HWID_Activation.cmd882-885
File existence checks:
sppsvc.exe and ClipUp.exe individually before proceeding: MAS/Separate-Files-Version/Activators/HWID_Activation.cmd418-435%_slexe% (either sppsvc.exe or SLsvc.exe): MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd530-542 MAS/Separate-Files-Version/Activators/TSforge_Activation.cmd594-606All scripts check that the Windows Null service is running before proceeding via sc query Null | find /i "RUNNING". If the Null service is absent, the script warns and pauses (via ping 127.0.0.1 -n 20) but does not abort — the warning indicates severe system corruption.
Check: MAS/All-In-One-Version-KL/MAS_AIO.cmd73-85
The Null service (NUL device driver) is a minimal kernel device that the batch runtime itself depends on. Its absence typically indicates OS-level corruption.
| Activation Method | Internet Required | Purpose | Fallback Behavior |
|---|---|---|---|
| HWID | Yes (mandatory) | Communicates with Microsoft licensing servers (licensing.mp.microsoft.com, login.live.com, purchase.mp.microsoft.com) | Activation fails — sets error=1, checked via _int variable |
| Online KMS | Yes (mandatory) | Connects to public KMS servers for 180-day activation | Activation fails — _int variable must be set |
| TSforge (StaticCID) | Yes (for StaticCID method) | Required for build >= 26100; auto-falls back to KMS4k if offline | Sets tsmethod=KMS4k automatically if Auto mode selected |
| TSforge (ZeroCID / KMS4k) | No | Local manipulations only | Fully offline capable |
| Ohook | No | Local DLL hook injection, no external communication | Fully offline capable |
The scripts employ a multi-stage approach to validate connectivity:
Internet connectivity check pipeline (_int variable + licensing server test, HWID only)
Sources: MAS/Separate-Files-Version/Activators/HWID_Activation.cmd492-509 MAS/Separate-Files-Version/Activators/HWID_Activation.cmd714-752
The three-stage connectivity check is shared across HWID, Online KMS, and TSforge (for StaticCID mode). Stage 3 (licensing server HTTPS POST) only runs for HWID.
_int=1 if any IP is returned in brackets. MAS/Separate-Files-Version/Activators/HWID_Activation.cmd492-496IsConnectedToInternet via CLSID DCB00C01-570F-4A9B-8D69-199FDBA5723B; sets ping_f if Stage 1 failed. MAS/Separate-Files-Version/Activators/HWID_Activation.cmd498-501resfail=1 if any return no HTTP response object. MAS/Separate-Files-Version/Activators/HWID_Activation.cmd727-735When resfail is set, HWID checks %SysPath%\drivers\etc\hosts for each of: live.com, microsoft.com, login.live.com, purchase.mp.microsoft.com, licensing.mp.microsoft.com. Any match appends the domain to hosfail and is shown in the error output.
Location: MAS/Separate-Files-Version/Activators/HWID_Activation.cmd728-752
Office install detection variables set by oh_getpath subroutine
Sources: MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd780-825 MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd732-750
Office install detection is performed in the oh_getpath subroutine. It reads registry keys under HKLM\SOFTWARE\Microsoft\Office (both native and Wow6432Node paths, stored as _68 and _86) and validates file existence:
ClickToRun /v InstallPath → file root\Licenses16\ProPlus*.xrm-ms sets o16c2r and o16c2r_reg16.0\Common\InstallRoot /v Path → file *Picker.dll sets o16msi15.0\ClickToRun\InstallPath → file root\Licenses\ProPlus*.xrm-ms sets o15c2r15.0\Common\InstallRoot /v Path → file *Picker.dll sets o15msi14.0\Common\InstallRoot /v Path → file *Picker.dll sets o14msiGet-AppxPackage -name Microsoft.Office.Desktop + Integration\Integrator.exe sets o16uwpo16c2r is set but sc query ClickToRunSvc returns error 1060 (service not found), o16c2r is cleared and error=1 is set. MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd788-796o15c2r is set but both ClickToRunSvc and OfficeSvc return error 1060, o15c2r is cleared and error=1 is set. MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd798-806| Configuration | Detection Method | Supported Alternative |
|---|---|---|
| Office 2010 C2R | Registry: 14.0\CVH /f Click2run | Unsupported - Use MSI version |
| Office UWP (Ohook) | AppX: Microsoft.Office.Desktop | Unsupported by Ohook - Use TSforge |
| Office Dashboard Only | AppX: Microsoft.MicrosoftOfficeHub without full Office | Not an Office installation - Install full Office |
| Multiple Office Versions | Simultaneous detection of 14/15/16 | Supported but not recommended |
Detection Code: MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd760-769
| Requirement | HWID | Online KMS | Ohook | TSforge |
|---|---|---|---|---|
| Minimum Windows | 10240 (Win10) | 6001 (Vista SP1) | 6001 (Vista SP1) | 6001 (Vista SP1) |
| Windows Server | ❌ Not supported | ✅ Supported | ✅ Supported | ✅ Supported |
| Internet Required | ✅ Yes | ✅ Yes | ❌ No | ❌ No |
| Office Support | ❌ Windows only | ✅ 2010-2024 | ✅ 2010-2024 | ✅ 2010-2024 |
| ESU Support | ❌ No | ❌ No | ❌ No | ✅ Win7/8/Server |
| ClipSVC Required | ✅ Yes | ❌ No | ❌ No | ❌ No |
| wlidsvc Required | ✅ Yes | ❌ No | ❌ No | ❌ No |
| KeyIso Required | ✅ Yes | ❌ No | ❌ No | ❌ No |
| LicenseManager Required | ✅ Yes | ❌ No | ❌ No | ❌ No |
| ClickToRun Service | N/A | ✅ For Office C2R | ✅ For Office C2R | N/A |
| Evaluation Editions | ❌ Limited | ✅ Supported | ✅ Supported | ✅ Supported + Reset |
| Activation Type | Permanent | 180-day renewable | Permanent | Permanent |
| Renewal Task | No | Optional (default: Yes) | No | No |
Sources: MAS/Separate-Files-Version/Activators/HWID_Activation.cmd515-523 MAS/Separate-Files-Version/Activators/Online_KMS_Activation.cmd589-593 MAS/Separate-Files-Version/Activators/Ohook_Activation_AIO.cmd504-507
All activation scripts execute a standardized validation sequence before attempting activation.
Pre-flight check order with code locations
Sources: MAS/All-In-One-Version-KL/MAS_AIO.cmd25-396
Windows 11's Terminal app introduces compatibility issues with the scripts. Detection relies on the terminal variable:
terminal=1 is set when winbuild GEQ 17763 MAS/All-In-One-Version-KL/MAS_AIO.cmd305-309mode con. If lines GEQ 100, terminal is cleared (the Terminal app uses wide buffers). MAS/All-In-One-Version-KL/MAS_AIO.cmd311-319terminal remains set, the script relaunches via start conhost.exe with the -qedit flag, then exits. MAS/All-In-One-Version-KL/MAS_AIO.cmd332-335This ensures consistent behavior with QuickEdit disabled across both conhost and Terminal environments.
No specific hardware requirements exist beyond the ability to run the supported Windows versions. The scripts perform no intensive computation beyond standard WMI queries and service operations.
| Component | Approximate Size | Location |
|---|---|---|
| Script files | 2–3 MB | User-specified |
| Temporary files | 1–5 MB | %TEMP% |
ClipSVC\GenuineTicket | 100–500 KB | %ProgramData%\Microsoft\Windows\ClipSVC\ |
| SPP token files | 1–10 MB | %SystemRoot%\System32\spp\tokens\ |
Ohook DLLs (sppc*.dll) | 50–200 KB per file | Office installation directories |
If activation fails due to requirements issues, the scripts direct users to specific fixes:
| Issue Detected | Error Message | Recommended Fix | Documentation Link |
|---|---|---|---|
| PowerShell not installed | "PowerShell is not installed" | Install KB968930 | catalog.update.microsoft.com |
| LanguageMode restricted | "FullLanguage mode not found" | Check execution policies | massgrave.dev/fix_powershell |
| PowerShell Core | "Windows Powershell needed" | In-place repair upgrade | massgrave.dev/in-place_repair_upgrade |
| .NET Framework failure | "Failed to load .NET command" | In-place repair upgrade | massgrave.dev/in-place_repair_upgrade |
| Malware detected | "secureboot.exe found" | Remove malware | massgrave.dev/remove_malware |
| sppsvc.exe missing | "file is missing, aborting" | DISM restore + SFC scan | massgrave.dev/in-place_repair_upgrade |
| No Internet (HWID) | "Internet is required" | Fix connectivity | massgrave.dev/licensing-servers-issue |
| Licensing servers blocked | "Failed to Connect" + hosts file | Unblock domains in hosts | massgrave.dev/licensing-servers-issue |
| Windows Update blocked | "Update Blocker In Registry" | Undo update blocking tool | Manual registry cleanup |
The troubleshooting script (Troubleshoot.cmd) can automatically fix many of these issues. See Troubleshooting for details.
Sources: MAS/All-In-One-Version-KL/MAS_AIO.cmd172-178 MAS/All-In-One-Version-KL/MAS_AIO.cmd244-245 MAS/Separate-Files-Version/Activators/HWID_Activation.cmd750-752
Refresh this wiki
This wiki was recently refreshed. Please wait 4 days to refresh again.