MET
0.12.0
Security Posture Scanner for MDO, EXO and Teams - assesses MDO, EXO/EOP, and Teams protection posture.
Minimum PowerShell version
7.4
Installation Options
Owners
Copyright
(c) 2026 Pierre Thoor. MIT License.
Package Details
Author(s)
- Pierre Thoor
Tags
MDO Microsoft365 Defender ExchangeOnline Teams Security Posture Assessment
Functions
Connect-METSession Disconnect-METSession Invoke-METAssessment Get-METCheck Get-METReport Import-METReport Test-METPrerequisites
PSEditions
Dependencies
This module has no dependencies.
Release Notes
v0.12.0 - Pre-1.0 audit remediation, Teams and MDO protection updates. The first release since 0.11.0 (0.11.1 was never published). Fixes checks that reported Pass for settings the service never returned, a stored cross-site scripting vulnerability in the HTML report, reports labelled with the wrong tenant, and posture-score defects. Adds Get-METCheck, Import-METReport, about_MET, MET-Teams016 and MET-MDO015, and a redesigned, keyboard-accessible HTML report. Invoke-METTriage is now Invoke-METAssessment (alias kept); review the Changed section of CHANGELOG.md before upgrading - scoring, risk acceptances and -OutputPath behaviour changed. See https://github.com/pthoor/MET/blob/main/CHANGELOG.md
FileList
- MET.nuspec
- CHANGELOG.md
- Private\Get-METReportGlossaryTerms.ps1
- Checks\EXO\MET-EXO007-TransportRuleAudit.ps1
- Checks\Teams\MET-Teams008-AppPermissionPolicy.ps1
- MET.psd1
- Private\New-METCheckResult.ps1
- Checks\EXO\MET-EXO021-MailboxAuditing.ps1
- Checks\Teams\MET-Teams012-CallReporting.ps1
- LICENSE
- Private\Get-METAssemblyFileVersion.ps1
- Checks\EXO\MET-EXO009-QuarantinePolicyVerdictAlignment.ps1
- Checks\Teams\MET-Teams006-ExternalAccess.ps1
- MET.psm1
- Private\Resolve-METAntiPhishEffectivePolicy.ps1
- Checks\EXO\MET-EXO012-MailboxForwarding.ps1
- Checks\Teams\MET-Teams014-CrossTenantAccess.ps1
- README.md
- Private\Get-METWorstSeverity.ps1
- Checks\EXO\MET-EXO018-RemoteDomainForwarding.ps1
- Checks\Teams\MET-Teams001-SafeLinks.ps1
- Private\Resolve-METTenantGuid.ps1
- Checks\EXO\MET-EXO014-AdvancedDeliveryPolicy.ps1
- Checks\Teams\MET-Teams004-ZAPForTeams.ps1
- MET.Format.ps1xml
- Private\Test-METAssemblyLoadConflict.ps1
- Checks\EXO\MET-EXO001-DMARC.ps1
- Checks\Teams\MET-Teams003-MeetingProtection.ps1
- Private\New-METEffectivePolicyCoverageResult.ps1
- Private\Expand-METGroupMembership.ps1
- Checks\EXO\MET-EXO006-SubmissionPolicy.ps1
- Checks\Teams\MET-Teams015-EmailIntegration.ps1
- Private\Get-METEndUserQuarantinePermission.ps1
- Private\New-METRestrictedFile.ps1
- Checks\EXO\MET-EXO019-SmtpAuthentication.ps1
- Checks\Teams\MET-Teams005-TeamsUserReporting.ps1
- Private\Get-METCheckMetadata.ps1
- Private\Get-METSafeSeverity.ps1
- Checks\EXO\MET-EXO010-DirectSend.ps1
- Checks\MDO\MET-MDO015-IntraOrgSpamFiltering.ps1
- Private\Get-METCertificateFromFile.ps1
- Private\Test-METIsPresetSecurityPolicyName.ps1
- Checks\EXO\MET-EXO020-ConnectionFilterPolicy.ps1
- Checks\MDO\MET-MDO011-UserTags.ps1
- Private\Test-METExoSupportsDisableWam.ps1
- Private\Resolve-METPresetPolicy.ps1
- Checks\EXO\MET-EXO002-DKIM.ps1
- Checks\MDO\MET-MDO003-AntiPhish.ps1
- Private\Resolve-METSafeLinksEffectivePolicy.ps1
- Private\Test-METIsBuiltInQuarantinePolicyName.ps1
- Checks\EXO\MET-EXO023-UnifiedAuditLog.ps1
- Checks\MDO\MET-MDO009-ZAP.ps1
- Private\Get-METPolicyOrderingObservations.ps1
- en-US\about_MET.help.txt
- Checks\EXO\MET-EXO011-ConnectorHygiene.ps1
- Checks\MDO\MET-MDO006-AntiSpamInbound.ps1
- Private\Resolve-METDnsName.ps1
- Public\Import-METReport.ps1
- Checks\EXO\MET-EXO013-SpoofIntelligenceAllowList.ps1
- Checks\MDO\MET-MDO014-GroupReferenceAudit.ps1
- Private\Get-METRuleScope.ps1
- Public\Get-METReport.ps1
- Checks\EXO\MET-EXO017-QuarantineNotificationCadence.ps1
- Checks\MDO\MET-MDO004-AntiSpoofing.ps1
- Private\Expand-METRuleRecipients.ps1
- Public\Test-METPrerequisites.ps1
- Checks\EXO\MET-EXO022-SharingPolicy.ps1
- Checks\MDO\MET-MDO010-PriorityAccounts.ps1
- Private\Get-METPresetSecurityPolicyTier.ps1
- Public\Invoke-METAssessment.ps1
- Checks\EXO\MET-EXO016-ArcTrustedSealers.ps1
- Checks\MDO\MET-MDO001-SafeLinks.ps1
- Private\New-METErrorRecord.ps1
- Public\Connect-METSession.ps1
- Checks\EXO\MET-EXO005-TenantAllowBlockList.ps1
- Checks\MDO\MET-MDO007-AntiSpamOutbound.ps1
- Private\Get-METCertificateByThumbprint.ps1
- Public\Get-METCheck.ps1
- Checks\Teams\MET-Teams011-SecOpsBlocklistAuthority.ps1
- Checks\MDO\MET-MDO002-SafeAttachments.ps1
- Private\Find-METRuleContradictions.ps1
- Public\Disconnect-METSession.ps1
- Checks\Teams\MET-Teams010-ExternalAccessPolicyDrift.ps1
- Checks\MDO\MET-MDO012-SafeDocuments.ps1
- Private\Resolve-METCoverageMatrix.ps1
- Checks\EXO\MET-EXO004-QuarantinePolicy.ps1
- Checks\Teams\MET-Teams009-TrialTenantFederation.ps1
- Checks\MDO\MET-MDO013-PolicyPrecedenceConflicts.ps1
- Private\Get-METAssessableMailboxes.ps1
- Checks\EXO\MET-EXO003-SPF.ps1
- Checks\Teams\MET-Teams002-SafeAttachments.ps1
- Checks\MDO\MET-MDO005-AntiMalware.ps1
- Private\Resolve-METEffectivePolicy.ps1
- Checks\EXO\MET-EXO015-ExternalSenderTag.ps1
- Checks\Teams\MET-Teams016-MessagingSafety.ps1
- Checks\MDO\MET-MDO008-PresetPolicyCoverage.ps1
- Private\Get-METCheckWeight.ps1
- Checks\EXO\MET-EXO008-QuarantineRetention.ps1
- Checks\Teams\MET-Teams007-GuestConfiguration.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.12.1 | 4 | 10/8/2026 |
| 0.12.0 (current version) | 7 | 10/7/2026 |
| 0.11.0 | 26 | 9/2/2026 |
| 0.10.0 | 15 | 8/19/2026 |