Maester
Maester is a test automation framework to help you stay in control of your Microsoft security configuration.
**Monitor your Microsoft 365 tenant's security configuration using Maester!** The project is written primarily in HTML, distributed under the MIT License license, first published in 2023. Key topics include: config-as-code, configuration-management, cybersecurity, devops, entra.
🔥 Maester
Monitor your Microsoft 365 tenant's security configuration using Maester!
Maester is an open source PowerShell-based test automation framework designed to help you monitor and maintain the security configuration of your Microsoft 365 environment. To learn more about Maester and to get started, visit Maester.dev.
[!WARNING]
Known Issue: We recommend not using v3.9.2 of the ExchangeOnlineManagement module at this time. Many users experience errors while connecting with v3.9.2 but previous versions are generally reliable. This is an issue with the ExchangeOnlineManagement module and not Maester itself.
Key Features
- Automated Testing: Maester provides a comprehensive set of automated tests to ensure the security of your Microsoft 365 setup.
- Customizable: Tailor Maester to your specific needs by adding custom Pester tests.
- Formatted Results: Export results in CSV, Excel, HTML, JSON, or Markdown format.
- Notifications: Send notification of results to email, Teams, or Slack.
- CI/CD Workflows: Run Maester in a GitHub, Azure DevOps, or GitLab pipeline.
- And much more...
Getting Started
Installation
powershellInstall-Module -Name Maester -Scope CurrentUser
Installing Maester Tests
Run the following commands to install the Maester tests under your home directory. Pester will be installed if needed.
powershellmd ~/maester-tests cd ~/maester-tests Install-MaesterTests
Running Maester
To run the tests in this folder run the following PowerShell commands. To learn more see maester.dev.
powershellcd ~/maester-tests Connect-Maester Invoke-Maester
Running Maester in a National Cloud Environment
An optional parameter, -Environment, can be utilized on Connect-Maester to specify the name of the national cloud environment to connect to. By default global cloud is used.
Allowed values include:
- Global (default, if parameter is not specified)
- China
- USGov
- USGovDOD
powershellConnect-Maester -Environment USGov
Keeping your Maester tests up to date
The Maester team will add new tests over time. To get the latest updates, use the commands below to update this folder with the latest tests.
- Update the
MaesterPowerShell module to the latest version and load it. - Use
Update-MaesterTeststo update the test files in the folder where you have installed them.
powershellUpdate-Module Maester -Force Import-Module Maester Update-MaesterTests -Path ~/maester-tests
Use as GitHub action
Maester is also published to the GitHub marketplace and can be used directly in any GitHub workflow. Because it is built for GitHub, it integrates with the features of GitHub Actions, like uploading artifacts and writing a summary to the workflow run.
For more details, please refer to the docs or the action repository.
Migrate from old action
The GitHub Action is moved to a new repository.
[!NOTE]
If you are using the old actionmaester365/maesteryou should migrate to the new actionmaester365/maester-action. Check out the deprecation notice for more details.
Contributing
Contributions are welcome! If you want to contribute new tests or improve existing ones, please refer to the contribution guide.
Contributors
Showing top 12 contributors by commit count.
