Open source · MIT · Free forever

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

Maester is the open-source security test framework for Microsoft 365, Entra, Azure and Active Directory. Run 888 built-in checks across CIS, CISA SCuBA, EIDSCA and ORCA, add Microsoft's Zero Trust Assessment, and automate it in your pipeline.

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

Quickstart →Browse the 888 checks

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

Open the live report ↗
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,224Checks: 888 built in + 336 Zero Trust
1.2KGitHub stars
74+Contributors

How it works

From install to a report in five minutes.

Install the module, connect to your tenant, run it, with Microsoft's Zero Trust Assessment in the same pass. Watch the whole run.

Transcript

Maester. This is Maester: the open-source 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

Watch and listen

Maester on Entra.Chat

All episodes →

Coverage

One run. Every framework your auditors ask about.

Each check names the requirement it implements, so one report answers CIS, CISA and Microsoft's own guidance at once. Every check is also mapped to MITRE ATT&CK techniques and NIST SP 800-53 controls.

Microsoft Zero Trust Assessment

Microsoft's Zero Trust Assessment, inside your Maester report.

The Zero Trust Assessment pack ships with Maester. It runs Microsoft's assessment in its own PowerShell session and puts all 336 results next to Maester's checks, in one report and one pipeline.

How the pack works →
# Run Maester and the Zero Trust Assessment together
Invoke-Maester -Pack ZTA

New in 3.0

What's new in Maester 3.0.

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.
A reason for every skipA check that doesn't run says why: missing licence, permission or connection.
Layered configurationA base file plus per-tenant files that merge over it, for one setup across many tenants.
Maester PacksInstall community packs, or run the Zero Trust Assessment pack that ships with Maester.

Read what changed in 3.0 → · Get the preview →

Automate

Run it every day, wherever you already deploy.

Maester Packs

Extend Maester with packs.

Browse all packs ↗
OfficialShips with MaesterMicrosoft Zero Trust AssessmentRun Microsoft's Zero Trust Assessment from Maester and see every result next to Maester's own checks.336 checks · maester365
Module packLeast Privileged MSGraphChecks that service principals hold only the Graph permissions their real API activity needs.5 checks · Mynster9361
Script packRKSolutions Intune AnomaliesFinds devices that miss protection, drift out of compliance or fall out of management.8 checks · royklo

Write your own

Write your policies as tests.

A Maester test is one PowerShell function with an attribute that says what it checks. Maester finds it, runs it with the built-in checks and puts it in the same report.

Write your first test → · Test builder →

function Test-CT1001 {
    [MaesterTest(
        Id       = 'CT.1001',
        Title    = 'Only admins and guest inviters can invite guests',
        Severity = 'Medium',
        Service  = 'Graph'
    )]
    param()
    $policy = Invoke-MtGraphRequest -RelativeUri 'policies/authorizationPolicy'
    $policy.allowInvitesFrom -in 'adminsAndGuestInviters', 'none'
}

Checks for the services you actually run.

Entra IDConditional AccessIntuneExchange OnlineDefenderTeamsSharePointPurviewAzureAzure DevOpsGitHubCopilot StudioFabricActive Directory

Sponsors

Maester is free because these sponsors pay for the work.

Sponsorship pays for maintainer time and the test tenants every check is proven against. It never buys a say in what a check reports.

BackersMerill FernandoRobin PieterseSteven LorenzGraham Gold

Maester Cloud

Need history, drift and every tenant in one place?

Maester Cloud keeps your results over time, shows what changed between runs and alerts you when it does. Your subscription also keeps the Maester core open and free.

Explore Maester Cloud ↗

Community

Built in the open by 74+ contributors.

Maester is written by security practitioners, Microsoft MVPs and Microsoft engineers. Ask questions on Discord, add a check to the catalog, or write a pack.

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