Microsoft Teams governance

How to check messaging policies in Microsoft Teams

Read every messaging policy's chat, edit and delete settings with the Microsoft Teams PowerShell module, review them in the Teams admin centre, or run Altivane's Teams Policies report.

By the Published

To check messaging policies in Microsoft Teams, read every policy with Get-CsTeamsMessagingPolicy and compare the settings that decide what people can do with messages: chat, editing and deleting what they sent, and whether owners can delete other people's posts. Everyone gets the Global (Org-wide default) policy unless a custom policy is assigned, and Microsoft says a policy change can take up to 24 hours to apply.

Choose the method that fits the job
MethodBest fit
PowerShellA CSV of every messaging policy's chat, edit, delete, Giphy and read receipt settings.
Admin centreReading or comparing a few policies in the Teams admin centre.
AltivaneRecommended for recurring reviews, with how many people each policy applies to beside its settings.

Before you start

Use an account with the Teams Administrator role, which manages messaging policies, or Teams Reader to read them in the admin centre without changing anything. The example passes no permission or scope: its access is the signed-in account's role.

Know the defaults. Microsoft lists them as chat, editing sent messages, deleting sent messages and Giphy on, Giphy content rated Moderate, owners deleting sent messages off, and read receipts user controlled. Messaging policies cover chat and channel messages. The examples read and export; they change and assign no policy.

Option 1

Check messaging policies with PowerShell

Install the module once, then connect and export 1 row for each messaging policy.

PowerShell
# Install once, if the module is not already installed.
Install-Module MicrosoftTeams -Scope CurrentUser
PowerShell
$ErrorActionPreference = 'Stop'
Connect-MicrosoftTeams | Out-Null
try {
    $policies = @(Get-CsTeamsMessagingPolicy)
    $report = @(foreach ($policy in $policies) {
        [pscustomobject]@{
            Policy = "$($policy.Identity)" -replace '^Tag:', ''
            Chat = $policy.AllowUserChat
            EditSentMessages = $policy.AllowUserEditMessage
            DeleteSentMessages = $policy.AllowUserDeleteMessage
            OwnersDeleteMessages = $policy.AllowOwnerDeleteMessage
            Giphy = $policy.AllowGiphy
            GiphyRating = $policy.GiphyRatingType
            LinkPreviews = $policy.AllowUrlPreviews
            PriorityNotifications = $policy.AllowPriorityMessages
            ReadReceipts = $policy.ReadReceiptsEnabledType
        }
    })
    $report | Sort-Object Policy |
        Export-Csv -Path './teams-messaging-policies.csv' -NoTypeInformation -Encoding utf8
    Write-Output "$($report.Count) messaging policies exported."
} finally {
    Disconnect-MicrosoftTeams
}

The CSV has 1 row per policy. The script takes the Tag: prefix off custom policy names, and Global is the org-wide default, which every tenant has, so the list is never empty. To add a setting, add its property to the object: the names match the parameters of Set-CsTeamsMessagingPolicy, such as AllowUserDeleteChat or AllowMemes.

Check 1 policy

Reconnect with Connect-MicrosoftTeams, then read every setting of 1 policy. The export above disconnects when it finishes.

PowerShell
# Run while connected to Microsoft Teams.
Get-CsTeamsMessagingPolicy -Identity Global | Format-List

Option 2

Review messaging policies in the admin centre

  1. Sign in to the Microsoft Teams admin centre for the correct tenant.
  2. Go to Messaging > Messaging policies. Where the admin centre shows Settings & policies instead, open it and choose the Messaging category.
  3. Select a policy, such as Global (Org-wide default).
  4. Read Owners can delete sent messages, Delete sent messages, Edit sent messages, Read receipts, Chat and the Giphy settings.
  5. Leave the page without choosing Save.

This suits checking a few policies. It does not suit a side-by-side review of every policy, since each one opens on its own page.

Common questions

Why can people still turn read receipts off?

The default is user controlled, which lets each person choose. To turn receipts on for everyone, set Read receipts to Turned on for everyone in the Global policy and give every custom messaging policy the same setting.

Why hasn't a policy change taken effect?

Microsoft says policy changes can take up to 24 hours, and that a restart may be needed for the change to sync in some cases. Check which policy the person has before changing it again.

Who has which messaging policy?

Everyone without a custom policy assigned has Global. To export who has each policy, see how to export policy assignments in Microsoft Teams.

Microsoft references

Technical references checked on 7 November 2026. The example scripts have been reviewed and syntax checked; they have not been run against a live tenant.

Talk to us about Altivane

Questions, or pricing? Get in touch.

Contact us