Open source · MIT · Free forever

Test your Microsoft 365 security, every day, in one run.

Maester checks Entra, Azure, Exchange, Teams and Active Directory against CIS, CISA, Microsoft's Zero Trust Assessment and more, and writes a report you can act on.

PS>Install-Module Maester -AllowPrereleaseInstall-Module Maester

Installs the 3.0 preview, which these docs describe. About the previewInstalls the stable release, 2.3.0. 2.x docs

Runs on Windows, macOS and Linux · Nothing leaves your tenant

The Maester report overview: 57% of checks passed, failures by severity, and the checks to fix firstThe Maester report overview: 57% of checks passed, failures by severity, and the checks to fix first

One page that says how your tenant is doing, what changed since the last run, and what to fix first.

625K+PowerShell Gallery downloads
1,926Checks
1.2KGitHub stars
77+Contributors

01The checks

1,926 checks. Every framework your auditors ask about.

Each check names the requirement it implements, so one report answers CIS, CISA, Microsoft's Zero Trust Assessment, MITRE ATT&CK and NIST at once.

Checks by release
05001,0001,5002,000Maester 0.1 (2024-06-18): 106 checksMaester 0.2.0 (2024-07-06): 121 checksMaester 0.3.0 (2024-08-05): 123 checksMaester 0.4.0 (2024-12-11): 174 checksMaester 1.0.0 (2024-12-11): 174 checksMaester 1.1.0 (2025-05-12): 267 checksMaester 1.2.0 (2025-06-23): 276 checksMaester 1.3.0 (2025-06-24): 267 checksMaester 2.0.0 (2025-12-07): 317 checksMaester 2.1.0 (2026-05-02): 411 checksMaester 2.2.0 (2026-07-27): 722 checksMaester 2.3.0 (2026-10-06): 751 checksToday (2026-11-09): 1,926 checks1,926v0.1v1.0v2.0Today
Checks by product
Browse every check →

02How it works

From install to a report in five minutes.

Then run it every night from the pipeline you already have.

Transcript

Maester. This is Maester: the open-source and most comprehensive way to test your Microsoft 365 security, every day, in one run.

Install. Install it from the PowerShell Gallery. Every check ships inside the module, so there's nothing else to set up.

Connect. Connect Maester to your tenant. It reads your configuration with read-only permissions, and nothing leaves your tenant.

Run. Now run Invoke-Maester. Add the Zero Trust Assessment pack, and Microsoft's own assessment runs in the same pass.

Watch it run. The console shows every product as it's tested, the checks running right now, and the results as they land: over twelve hundred checks across CIS, CISA, Microsoft's guidance and Zero Trust.

The report. When the run finishes, your report opens. It tells you what to fix first, ranked by severity and effort.

Every finding. Every finding explains what an attacker could do, what Maester found, and exactly how to fix it.

Frameworks. See where you stand against the frameworks your auditors ask about, and the attack techniques each gap leaves open.

Zero Trust. And Microsoft's Zero Trust Assessment sits right alongside, in the same report.

Automate. Run it every day in GitHub Actions or Azure DevOps, and know the moment something changes.

Maester Cloud. Or run it with Maester Cloud, securely, in your own Azure subscription: your data never leaves your tenant. Find out more at maester.cloud, and get started at maester.dev.

Updated 2026-11-02 for Maester 3.0. Made with HyperFrames from HTML in the Maester repository.

  1. 1InstallInstall-Module Maester
  2. 2ConnectConnect-Maester
  3. 3RunInvoke-Maester -Pack ZTA
  4. 4Automatemaester-action@main

Runs in GitHub Actions, Azure DevOps, Azure Automation, Azure Container Apps, GitLab, Bitbucket and Terraform, and sends results to email, Teams and Slack.

03Maester Packs

Need a check Maester doesn't have? Add a pack.

Packs add checks from Microsoft and the community, in the same report. The community's CIS Intune benchmark packs add 631 device checks on their own, one for each setting.

Zero Trust Assessment

Microsoft's assessment, in your Maester report.

The pack ships with Maester. One command runs both, and the plan turns the results into work.

Invoke-Maester -Pack ZTA
Microsoft's Zero Trust Assessment report: test results for each pillar and Sankey charts of the authentication methods privileged users and all users have registeredMicrosoft's Zero Trust Assessment report: test results for each pillar and Sankey charts of the authentication methods privileged users and all users have registered

Security config as code

Define your security config as code.

Write each policy as a Maester test: one PowerShell function that says how your tenant must be set up. Maester runs it with everything else and puts it in the same report.

  • Policies in a repository. Every rule your tenant must follow, versioned and reviewed like any other code.
  • Regression tests for your tenant. Run them after every change, by hand, from a pipeline or after Terraform, and see at once what a change broke.
  • Guardrails for AI agents. When an agent changes your configuration, it runs your Maester tests to check its own work, and keeps running them to watch for drift.
function Test-CT1001 {
    [MaesterTest(Id = 'CT.1001',
        Title = 'Our licensing groups are not empty')]
    param()
    # The groups that assign licences in this tenant
    foreach ($name in 'LIC-M365-E5', 'LIC-Copilot', 'LIC-Intune-Suite') {
        $group = Invoke-MtGraphRequest 'groups' -Filter "displayName eq '$name'"
        if (-not $group) { return $false }
        $count = Invoke-MtGraphRequest "groups/$($group.id)/transitiveMembers/`$count"
        if ($count -eq 0) { return $false }
    }
    $true
}

04New in 3.0

Maester 3.0. Rebuilt to run faster and say more.

A test engine of its own, checks that ship in the module, and a reason for every skip.

A test engine of its ownMaester 3.0 runs its checks on its own engine: faster, with time-outs, and one row per policy or mailbox.
Tests in the moduleNo separate tests folder to install or update. Update-Module updates the checks.
Pick what to runSelect by product, feature, framework, severity or ID, and preview a run with -DryRun.

05Community

Built in the open by 77+ contributors.

Security practitioners, Microsoft MVPs and Microsoft engineers write the checks.

Michael SouleJeremy FinneyThomas NaunheimSebastian ClaessonFabian BaderEduard ArbonaBoris DrogjaBen MilesAgnivesh S.Nicola Suter-MynsterJustin MiddlerThomas SchmidtHenrik PiechaStefan WeyBenjamin MetzOfir GavishTruls Thorstad Dahlsveen

Maester or Maester Cloud

Same checks. You choose who runs them.

Maester is free and you run it yourself. Maester Cloud runs it for you, securely in Azure, and keeps every run.

MaesterFree, open sourceMaester CloudFrom $99 / month
Checks, packs and reportEvery oneThe checks in Maester 2.3 for now, plus your Zero Trust Assessment results. Packs and checks new in 3.0 aren't in managed runs yet, and Active Directory checks run with Maester itself
Where it runsYour desktop, GitHub Actions or your own pipelinesSecurely in your own Azure subscription
Your dataStays on your machine or in your own pipelineReport data never leaves the Azure region you choose
SetupYou install, schedule and store the reportsSimplified deployment, nothing to script
Run historyOne report per runEvery run, for every tenant
Fixing findingsCompare one report with the next yourselfTrack each finding through to resolution
DriftDrift checks against a baseline you keepChanges between runs, detected for you
TenantsOne tenant per runEvery tenant in one place
AlertsEmail and Teams alerts you set upBuilt in
SupportThe community on Discord and GitHubFormal support
PriceFreeFrom $99 a month, plus the Azure resources it uses
Supports MaesterContribute checks or sponsor the maintainersYour subscription keeps Maester and its checks free for everyone

Sponsors

Thank you, sponsors.

Maester is free because of the people and companies who pay for it. There are three ways to support it.

Maester Cloud supportersSubscribe to Maester Cloud.Teams that subscribe to Maester Cloud, the hosted product, fund the open-source core: the engine, the checks and the report everyone uses for free.
Company sponsorsSponsor Merill to work on Maester.Companies that sponsor Merill, Maester's creator, buy him the time to build and maintain Maester.Sponsor as a company
GitHub SponsorsSponsor a maintainer or test writer.The maintainers and the people who write the checks take sponsorships on GitHub. Pick the person whose work you rely on.
Merill FernandoMichael SouleSam ErdeJeremy FinneyEduard ArbonaJustin MiddlerStephan van RooijBastien PerezJos Lieben
Choose who to sponsor
Thanks to everyone sponsoring on GitHub
Merill FernandoRobin PieterseSteven LorenzGraham Gold