Choosing Between All-In-One and Separate-Files MAS Versions: Complete Deployment Guide

Choose the All-In-One version for portable, single-file deployment and the Separate-Files version for modular maintenance, customization, or scripting individual activation methods.

Microsoft Activation Scripts (MAS) from the massgravel/Microsoft-Activation-Scripts repository ships as two distinct distribution models. Understanding the architectural differences between the All-In-One (AIO) and Separate-Files layouts ensures you select the optimal approach for your deployment scenario, maintenance workflow, and customization needs.

Key Architectural Differences

File Structure and Entry Points

The All-In-One version centers on a single monolithic batch file located at MAS/All-In-One-Version-KL/MAS_AIO.cmd. This ~200 KB file embeds every activation method—including HWID, Ohook, TSforge, and Online KMS—along with diagnostic routines, environment setup, and the menu interface. Everything resides inline within one script.

The Separate-Files version uses a folder hierarchy anchored by MAS/Separate-Files-Version/_ReadMe.html. This HTML file serves as the menu interface, while individual activation logic lives in discrete scripts under MAS/Separate-Files-Version/Activators/. Key files include HWID_Activation.cmd, Ohook_Activation.cmd, TSforge_Activation.cmd, and Online_KMS_Activation.cmd, alongside utility scripts like Check_Activation_Status.cmd and Change_Windows_Edition.cmd.

Execution Flow and Resource Loading

When you launch MAS_AIO.cmd, the script loads the entire codebase into memory at startup, then branches to the requested routine based on user input or command-line switches. This self-contained approach means the script carries all activation logic regardless of which method you ultimately use.

In the Separate-Files layout, the _ReadMe.html menu calls the specific .cmd file only when selected. Each activator runs independently, loading solely its own code into memory. This modular execution reduces memory footprint per operation and isolates failure domains to individual scripts.

Update and Maintenance Workflows

Modifying the All-In-One version requires editing the massive MAS_AIO.cmd file directly. Any typo risks breaking unrelated activation routines, and updating to the latest release means replacing the entire file, potentially overwriting custom modifications.

The Separate-Files version allows granular updates. You can replace HWID_Activation.cmd with a newer version without touching Ohook_Activation.cmd or the menu system. This architecture supports version control for individual components and enables safe experimentation with specific activation methods.

When to Use the All-In-One Version

Select the All-In-One layout when you need maximum portability and simplicity:

  • Offline deployment: Drop a single file onto a USB stick or network share without maintaining folder hierarchies.
  • One-off activations: Execute MAS_AIO.cmd /HWID or /Ohook from an administrative command prompt without navigating subdirectories.
  • Embedding in installers: Include the script in software deployment packages where a single file reference simplifies integration logic.
  • Minimal distribution: The ~200 KB compressed archive transfers faster than the ~250 KB folder-based package when bandwidth is constrained.

When to Use the Separate-Files Version

Choose the Separate-Files layout for development, customization, and selective automation scenarios:

  • Component inspection: Examine or edit individual activation algorithms without scrolling through thousands of lines of unrelated code.
  • Partial deployment: Distribute only Online_KMS_Activation.cmd to endpoints that specifically require KMS activation, excluding HWID and Ohook logic.
  • External scripting: Call specific activators from your own batch files using call "path\to\HWID_Activation.cmd" while maintaining clean separation between your logic and MAS internals.
  • Targeted updates: Patch a single activation method (e.g., fixing a detection bug in TSforge_Activation.cmd) without regression-testing the entire suite.

Implementation Examples

Running All-In-One with Command-Line Switches

Execute specific activation methods directly without navigating the interactive menu:

:: Activate Windows using HWID method
MAS_AIO.cmd /HWID

:: Activate Office using Ohook method  
MAS_AIO.cmd /Ohook

The script parses the switch, jumps to the embedded routine (e.g., :HWIDActivation), and executes the full diagnostic and activation flow immediately.

Executing Individual Activators from Separate-Files

Target specific activation files for isolated execution:

:: Navigate to activators directory
cd MAS\Separate-Files-Version\Activators

:: Run only the HWID activator
HWID_Activation.cmd

This approach loads only the HWID activation logic, bypassing menu systems and unrelated checks for faster execution and debugging.

Embedding in Automation Scripts

Integrate specific MAS components into custom deployment workflows:

@echo off
set "MAS_PATH=%~dp0MAS\Separate-Files-Version\Activators"

:: Call only Online KMS for Windows and Office
call "%MAS_PATH%\Online_KMS_Activation.cmd" /K-WindowsOffice

:: Check status using utility script
call "%~dp0MAS\Separate-Files-Version\Check_Activation_Status.cmd"

This pattern leverages MAS’s internal diagnostics while maintaining fine-grained control over which activation methods execute during your automation sequence.

Using the HTML Menu Interface

Launch the graphical menu for interactive selection:

:: Open the HTML menu in default browser
MAS\Separate-Files-Version\_ReadMe.html

The HTML interface displays activation options and launches the corresponding .cmd files when you select specific methods like HWID or TSforge.

Summary

  • All-In-One (MAS/All-In-One-Version-KL/MAS_AIO.cmd) provides a single-file solution ideal for portable deployment, offline usage, and simple execution via command-line switches like /HWID or /Ohook.
  • Separate-Files (MAS/Separate-Files-Version/) offers a modular architecture where Activators/HWID_Activation.cmd, Activators/Ohook_Activation.cmd, and other scripts operate independently, enabling targeted maintenance and custom scripting.
  • Choose All-In-One when distribution simplicity outweighs customization needs; choose Separate-Files when you require component isolation, selective updates, or integration with external automation frameworks.

Frequently Asked Questions

Is the All-In-One version safe compared to Separate-Files?

Both versions contain identical activation logic sourced from the same massgravel/Microsoft-Activation-Scripts repository. The All-In-One file simply concatenates the contents of the Separate-Files activators into MAS_AIO.cmd. Security depends on obtaining the files from the official repository rather than the distribution model you select.

Can I mix All-In-One and Separate-Files components?

While technically possible, mixing architectures is not recommended. The All-In-One script expects its routines to be internal, while Separate-Files activators assume specific relative paths to utilities like Check_Activation_Status.cmd. Stick to one layout per deployment to avoid path resolution errors and variable conflicts.

Which version is better for enterprise deployment?

For enterprise scenarios requiring mass deployment tools like SCCM or Intune, the All-In-One version simplifies packaging because you reference a single MAS_AIO.cmd file with appropriate switches (e.g., /HWID or /TSforge). However, if your environment requires different activation methods for different organizational units, the Separate-Files version allows you to push only Online_KMS_Activation.cmd to specific endpoints while excluding unnecessary methods.

How do I update MAS without losing custom modifications?

If you maintain custom code modifications, use the Separate-Files version. You can update individual activator files (e.g., replacing TSforge_Activation.cmd with the latest release) while preserving your customized versions of other scripts. With the All-In-One version, you must manually merge changes into MAS_AIO.cmd or risk overwriting your customizations during a full file replacement.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →