Microsoft Teams Administration: Complete Practical Course — Matching the Teams Admin Center & MS-700 Certification

📘 Course Guide

Microsoft Teams Administration: Complete Practical Course — Matching the Teams Admin Center & MS-700 Certification

This course guide maps directly to the Microsoft Teams Admin Center (admin.teams.microsoft.com) — every blade in the left navigation is covered here as a practical module. Whether you are preparing for the MS-700: Managing Microsoft Teams certification or administering a live Teams environment, this guide delivers hands-on knowledge, real admin tasks, and Microsoft Teams PowerShell commands for every functional area.

The guide covers all Teams Admin Center sections — Manage Teams & Channels, Guest & External Access, Meeting Policies & Audio Conferencing, Webinars & Town Halls, Teams Phone System, Auto Attendants & Call Queues, Messaging Policies, App Management, Analytics & Reports, and Notifications — including the latest 2025–2026 updates: Town Halls replacing Live Events, Copilot in Teams meeting policies, and the new shared channel architecture with Azure B2B Direct Connect.

🗺️ Course Module Map

1

Teams Admin Center Overview

Dashboard, navigation, service health, Teams usage cards, and key operational views

2

Teams — Manage Teams & Channels

Team types, Standard/Private/Shared channels, team lifecycle, templates, archive & delete

3

Teams Policies & Settings

Teams policies, update policies, Teams templates, org-wide settings, team discovery

4

Users — Guest & External Access

Guest access configuration, external access (federation), trusted organizations, B2B Direct Connect

5

Meetings — Policies & Audio Conferencing

Meeting policies, meeting settings, audio conferencing, conference bridges, dial-in numbers

6

Meetings — Webinars & Town Halls

Webinar policies, registration, town hall settings replacing Live Events, event management

7

Voice — Teams Phone System

Phone numbers, calling plans, Direct Routing, Operator Connect, voicemail, call routing policies

8

Voice — Auto Attendants & Call Queues

Auto attendants, call queues, resource accounts, holiday schedules, business hours routing

9

Messaging Policies

Chat settings, Giphy, memes, URL previews, read receipts, priority notifications, message deletion

10

Apps — Management & Policies

Manage apps, app permission policies, app setup policies, custom apps, Teams marketplace governance

11

Analytics, Reports & Notifications

Usage reports, PSTN reports, call quality dashboard, alert rules, monitoring

12

MS-700 Certification Alignment

Exam domains, skill weightings, scenario tips, and study resources

🏠 Module 1: Teams Admin Center Overview

The Teams Admin Center at admin.teams.microsoft.com is the single management plane for all Microsoft Teams configuration. It provides a real-time operational dashboard alongside deep policy management for meetings, voice, messaging, and apps across every user in the tenant.

Dashboard Cards & Navigation

Dashboard Card What It Shows Go Deeper
Active Teams users Count of users who sent a message, attended a meeting, or made a call in the last 30 days Analytics & reports → Usage reports → Teams user activity
Teams & Channels Total active teams and total channels across the tenant Teams → Manage teams
Calling activity PSTN call minutes (inbound and outbound) and call count in the last 7 days Analytics & reports → PSTN usage reports
Meeting quality Percentage of meetings rated Poor or Unknown for audio/video quality — Call Quality Dashboard link Analytics & reports → Call quality dashboard
Service health Active Teams service incidents and advisories from Microsoft 365 Service Health Microsoft 365 Admin Center → Service health
🏠 Dashboard
👥 Teams
👤 Users
📞 Meetings
🕽️ Voice
💬 Messaging
📍 Locations
📊 Analytics & reports
🛠️ Planning
📱 Apps
🔔 Notifications & alerts

👥 Module 2: Teams — Manage Teams & Channels

The Manage teams blade provides a complete inventory of every team in the tenant with inline editing, member management, and the ability to create, archive, and delete teams. Understanding team types and channel types is foundational for both daily administration and the MS-700 exam.

Teams Types

Team Type Visibility Who Can Join Use Case
Private Hidden from Teams search Owners add members only — users can request to join Project teams, sensitive departmental workspaces, executive teams
Public Visible in Teams search Any user in the org can join without approval Company-wide communities, interest groups, open collaboration spaces
Org-wide Auto-includes all org users All licensed users added automatically — max 10,000 members Company announcements, all-staff communications (max 5 per tenant)

Channel Types

Channel Type Membership SharePoint Site Key Characteristics
Standard All team members Shared with team site Default channel type — visible and accessible to all team members; cannot be restricted
Private Selected members only (subset of team) Separate dedicated site collection Restricted conversations within a team — ideal for sensitive sub-groups (e.g. managers within a dept team); max 30 per team
Shared Members from multiple teams or external tenants (B2B Direct Connect) Separate dedicated site collection Cross-team and cross-tenant collaboration — external users from partner tenants without guest account; requires Azure B2B Direct Connect setup
1

Inventory All Teams, Manage Members & Archive Inactive Teams

Export a full tenant teams inventory, manage team members and owners, create new teams with specific visibility settings, and archive teams that are no longer actively used.

Microsoft Teams PowerShell

Install-Module MicrosoftTeams -Force
Connect-MicrosoftTeams

# Export all teams in the tenant
Get-Team | Select-Object DisplayName,Description,Visibility,MailNickName,Archived,GroupId |
  Export-Csv -Path "AllTeams.csv" -NoTypeInformation

# Find all public teams (potential oversharing risk)
Get-Team -Visibility Public |
  Select-Object DisplayName,Visibility,MailNickName |
  Format-Table -AutoSize

# Find teams with no owners (governance gap)
Get-Team | ForEach-Object {
  $Owners = Get-TeamMember -GroupId $_.GroupId | Where-Object {$_.Role -eq "Owner"}
  if ($Owners.Count -eq 0) {
    Write-Host "NO OWNER: $($_.DisplayName)" -ForegroundColor Red
  }
}

# Create a new Private team
$NewTeam = New-Team -DisplayName "Project Phoenix" -Description "Project Phoenix workspace" -Visibility Private
Write-Host "Team created: $($NewTeam.GroupId)"

# Add a member and an owner
Add-TeamMember -GroupId $NewTeam.GroupId -User "john.doe@contoso.com"
Add-TeamMember -GroupId $NewTeam.GroupId -User "jane.smith@contoso.com" -Role Owner

# Get all channels and create a Private channel
Get-TeamChannel -GroupId $NewTeam.GroupId | Select-Object DisplayName,MembershipType | Format-Table -AutoSize
New-TeamChannel -GroupId $NewTeam.GroupId -DisplayName "Leadership Only" -MembershipType Private

# Archive an inactive team (makes it read-only, preserves content)
Set-TeamArchivedState -GroupId "team-groupid-here" -Archived $true

⚙️ Module 3: Teams Policies & Settings

Teams policies control what features users can access within Teams itself — team creation permissions, team discovery, update channels, and org-wide settings. These are separate from meeting, messaging, and app policies, which each have their own dedicated blades.

Key Teams Policy Settings

Policy Setting What It Controls Recommendation
Allow team creation Whether non-admin users can create new teams from the Teams client Restrict to IT staff or M365 Group owners via Entra ID Group creation policy — open team creation leads to team sprawl
Allow private channel creation Whether team owners and members can create private channels within a team Allow for owners, restrict for members in security-sensitive environments
Allow shared channel creation Whether team owners can create shared channels (cross-team and cross-tenant) Enable with caution — requires Azure B2B Direct Connect configuration
Teams update policy — update channel Controls which update ring users receive Teams client updates from (General, Preview, Developer Preview) Use Preview channel for IT pilot group, General for all users
Org-wide team — show in channels list Whether Org-wide teams appear pinned in all users’ Teams client channel list Enable for company announcement teams so all staff see updates
2

Configure Teams Policies & Assign to Users

Create a custom Teams policy, set update channels for pilot groups, and use batch policy assignment to apply policies to groups of users efficiently.

Microsoft Teams PowerShell

Connect-MicrosoftTeams

# Get all Teams channel policies
Get-CsTeamsChannelsPolicy | Select-Object Identity,AllowPrivateChannelCreation,AllowSharedChannelCreation | Format-Table -AutoSize

# Create a restricted Teams channels policy
New-CsTeamsChannelsPolicy -Identity "RestrictedChannels" `
  -AllowPrivateChannelCreation $false `
  -AllowSharedChannelCreation $false

# Assign the policy to a specific user
Grant-CsTeamsChannelsPolicy -Identity "user@contoso.com" -PolicyName "RestrictedChannels"

# Batch assign policy to multiple users at once
New-CsBatchPolicyAssignmentOperation `
  -PolicyType TeamsChannelsPolicy `
  -PolicyName "RestrictedChannels" `
  -Identity @("user1@contoso.com","user2@contoso.com","user3@contoso.com") `
  -OperationName "Restrict channel creation for contractors"

# Set Teams update channel for IT pilot group
New-CsTeamsUpdateManagementPolicy -Identity "ITPilotRing" -UseNewTeamsClient MicrosoftChoice -AllowPreview $true
Grant-CsTeamsUpdateManagementPolicy -Identity "itadmin@contoso.com" -PolicyName "ITPilotRing"

🔓 Module 4: Users — Guest & External Access

Teams provides two distinct mechanisms for external collaboration: Guest access (adding external individuals as guests in your tenant — they get a guest account in Entra ID) and External access (federated communication with users in other organisations — no guest account created). Understanding the difference is critical for the MS-700 exam.

Guest Access vs External Access

Feature Guest Access External Access (Federation)
Account type Guest account created in tenant Entra ID (B2B invite) No account created — federated identity stays in their home tenant
Team membership Yes — added to teams, has access to channels, files, meetings No — can only chat 1:1 or group chat; cannot be added to teams
File access Full access to SharePoint files shared in team channels No file access — chat only
Meeting access Full meeting participation — scheduled from within shared teams Can be invited to meetings as an external attendee
Governance Managed via Entra ID Guest Access Reviews; counted in licence usage for some features Managed via Teams External Access policy — allow/block by domain
Shared channels Not applicable — guest users use B2B invite Used for Shared channels via Azure B2B Direct Connect (no guest account)
3

Configure Guest Access & External Access Policies

Enable or restrict guest access for the tenant, configure guest calling and meeting capabilities, and set external access (federation) to allow or block specific domains.

Microsoft Teams PowerShell

Connect-MicrosoftTeams

# Get current guest access configurations
Get-CsTeamsGuestCallingConfiguration
Get-CsTeamsGuestMeetingConfiguration
Get-CsTeamsGuestMessagingConfiguration

# Configure guest calling capabilities
Set-CsTeamsGuestCallingConfiguration -AllowPrivateCalling $true

# Configure guest meeting capabilities
Set-CsTeamsGuestMeetingConfiguration `
  -AllowIPVideo $true `
  -AllowMeetNow $false `
  -LiveCaptionsEnabledType Disabled

# Configure guest messaging capabilities (disable Giphy and memes)
Set-CsTeamsGuestMessagingConfiguration `
  -AllowUserChat $true `
  -AllowGiphy $false `
  -AllowMemes $false

# Enable open federation (communicate with all external tenants)
Set-CsExternalAccessPolicy -Identity Global -EnableFederationAccess $true

# Block a specific domain from federating with your tenant
$BlockList = New-CsEdgeBlockList -BlockedDomain (New-CsEdgeDomainPattern -Domain "blocked-org.com")
Set-CsTenantFederationConfiguration -BlockedDomains $BlockList

📞 Module 5: Meetings — Policies & Audio Conferencing

Meeting policies control the meeting features available to organisers and participants in Teams meetings. They are among the most frequently configured policies in Teams and are heavily tested in MS-700. Audio Conferencing adds PSTN dial-in capability to Teams meetings — users can join by calling a phone number without a Teams client.

Key Meeting Policy Settings

Setting Description Exam Focus
Who can bypass the lobby Controls who can enter the meeting directly vs who waits in the lobby for an organiser to admit them High — know all values: Everyone, People in my org and guests, People in my org, Only organisers and co-organisers
Allow cloud recording Whether meeting organisers can record Teams meetings (stored in OneDrive or SharePoint) Medium — know that recording now goes to OneDrive (not Stream) by default
Allow transcription Whether live captions and post-meeting transcription is available Medium — required for Copilot in Teams meeting intelligence
Allow meeting chat Whether the chat panel is available during meetings — can be set to Enabled, Disabled, or Read-only after meeting Low — note the “Read-only” option for post-meeting access
Copilot in Teams meetings Controls whether Microsoft 365 Copilot can provide meeting summaries, action items, and Q&A — requires transcription enabled High — new in 2025–2026; requires M365 Copilot licence
Anonymous users can join Whether users without an account (no sign-in) can join meetings — tenant-level and per-meeting-policy setting High — security-critical; know that tenant setting overrides policy
4

Create Meeting Policies & Configure Audio Conferencing

Build a secure meetings policy for general staff and a restricted policy for external-facing meetings, then configure audio conferencing bridge settings and dial-in PIN policies.

Microsoft Teams PowerShell

Connect-MicrosoftTeams

# Get all meeting policies
Get-CsTeamsMeetingPolicy | Select-Object Identity,AllowAnonymousUsersToJoinMeeting,AutoAdmittedUsers,AllowCloudRecording,AllowTranscription | Format-Table -AutoSize

# Create a secure internal meeting policy
New-CsTeamsMeetingPolicy -Identity "SecureInternalMeetings" `
  -AllowAnonymousUsersToJoinMeeting $false `
  -AutoAdmittedUsers "EveryoneInCompanyExcludingGuests" `
  -AllowCloudRecording $true `
  -AllowTranscription $true `
  -AllowIPVideo $true `
  -AllowScreenSharing "EntireScreen"

# Create an external-facing meeting policy (lobby-first for all)
New-CsTeamsMeetingPolicy -Identity "ExternalMeetings" `
  -AllowAnonymousUsersToJoinMeeting $true `
  -AutoAdmittedUsers "OrganizerOnly" `
  -AllowCloudRecording $false `
  -AllowTranscription $false

# Assign meeting policy to a user
Grant-CsTeamsMeetingPolicy -Identity "user@contoso.com" -PolicyName "SecureInternalMeetings"

# Get audio conferencing bridge numbers
Get-CsOnlineDialInConferencingServiceNumber | Select-Object Number,City,CountryOrRegion,IsDefault | Format-Table -AutoSize

# Get all users with audio conferencing assigned
Get-CsOnlineDialInConferencingUser -ResultSize Unlimited |
  Select-Object Identity,ConferenceId,TollNumber,TollFreeNumber |
  Format-Table -AutoSize

🎥 Module 6: Meetings — Webinars & Town Halls

Teams provides two dedicated large-audience event experiences: Webinars (interactive, registration-based events for up to 1,000 attendees with Q&A and registration management) and Town Halls (structured broadcast events for up to 20,000 attendees, replacing Live Events as of October 2024). Both are managed through dedicated policy blades in the Teams Admin Center.

Webinars vs Town Halls vs Meetings

Feature Regular Meeting Webinar Town Hall
Max attendees 1,000 (view-only overflow to 10,000) 1,000 (Teams Premium: 10,000) 10,000 (Teams Premium: 20,000)
Registration No Yes — custom registration form, approval, waitlist No — open join link or org-wide
Attendee interaction Full — audio, video, screen share Q&A, polls; attendee mic/camera controlled by organiser Q&A only — attendees cannot unmute; producer controls all
Presenter separation No formal role separation Organiser, presenter, attendee roles Organiser, presenter, co-organiser; attendees are view-only
Recording OneDrive / SharePoint OneDrive — shared with registrants OneDrive — available after event ends
Licence required Teams (included in M365) Teams (basic webinar); Teams Premium for advanced registration features Teams (up to 10,000); Teams Premium for 20,000 and eCDN
Live Events replacement N/A N/A ✅ Town Halls replaced Live Events from October 2024
5

Configure Webinar & Town Hall Policies

Manage webinar and town hall event policies to control who can create events, registration settings, and attendee experience across the organisation.

Microsoft Teams PowerShell

Connect-MicrosoftTeams

# Get current events policy
Get-CsTeamsEventsPolicy | Select-Object Identity,AllowWebinars,AllowTownhalls,EventExpiryDays | Format-Table -AutoSize

# Create a full events policy (webinars + town halls)
New-CsTeamsEventsPolicy -Identity "FullEventsAccess" `
  -AllowWebinars Enabled `
  -AllowTownhalls Enabled `
  -EventExpiryDays 90

# Create a restricted policy (webinars only)
New-CsTeamsEventsPolicy -Identity "WebinarOnly" `
  -AllowWebinars Enabled `
  -AllowTownhalls Disabled

# Grant policy to a group (batch group assignment)
New-CsBatchGroupPolicyAssignmentOperation `
  -PolicyType TeamsEventsPolicy `
  -PolicyName "FullEventsAccess" `
  -GroupIds @("group-id-here") `
  -OperationName "Assign events policy to All Staff"

⚠️ Live Events Retirement — October 2024

Microsoft retired Teams Live Events in October 2024. All large-audience broadcasts should now use Town Halls. If you have existing Live Events configurations or policies in older tenants, these need to be migrated to Town Hall policies. The CsTeamsMeetingBroadcastPolicy cmdlets are deprecated — use CsTeamsEventsPolicy for all new configurations.

🕽️ Module 7: Voice — Teams Phone System

Teams Phone System enables PSTN calling directly within Teams — replacing traditional PBX systems. Phone numbers can be provisioned through Microsoft Calling Plans, Operator Connect (bring your existing carrier into Teams), or Direct Routing (connect your own SBC to Teams via SIP). All three are managed through the Voice blade in the Teams Admin Center.

Teams Phone Connectivity Options

Option How It Works Infrastructure Needed Best For
Microsoft Calling Plans Microsoft provides PSTN connectivity directly — numbers purchased through Microsoft, minutes billed by Microsoft None — fully cloud, no on-prem hardware Organisations wanting a fully Microsoft-managed telephony solution with no SBC or carrier management
Operator Connect Approved carrier connects their PSTN network to Teams via Microsoft-managed interconnect — numbers ported to or provided by the carrier None on-prem — carrier manages SBC in their network Organisations with existing carrier relationships wanting to keep their carrier but move to Teams calling
Direct Routing Organisation deploys a certified Session Border Controller (SBC) that connects their PSTN trunk directly to the Teams Phone System via SIP TLS Certified SBC (AudioCodes, Ribbon, Oracle, etc.) — on-prem or cloud-hosted Complex environments: PBX migration, legacy trunk reuse, specific dial plans, regulatory numbering requirements
Teams Phone Mobile Mobile carrier SIM integrates with Teams — native mobile number rings as Teams call; employee uses one number for mobile and Teams None — SIM-based integration via approved carriers Mobile-first frontline workers needing a single number for Teams and their mobile phone
6

Assign Phone Numbers, Enable Enterprise Voice & Manage Calling Policies

Assign PSTN phone numbers to users, enable Teams Phone (Enterprise Voice), configure calling policies, and report on all phone-enabled users across the tenant.

Microsoft Teams PowerShell

Connect-MicrosoftTeams

# Get all unassigned phone numbers in the tenant
Get-CsPhoneNumberAssignment -CapabilitiesContain UserAssignment -PstnAssignmentStatus Unassigned |
  Select-Object TelephoneNumber,NumberType,CapabilitiesName |
  Format-Table -AutoSize

# Assign a Calling Plan number to a user
Set-CsPhoneNumberAssignment `
  -Identity "user@contoso.com" `
  -PhoneNumber "+14255551234" `
  -PhoneNumberType CallingPlan

# Enable the user for Enterprise Voice (Teams Phone)
Set-CsPhoneNumberAssignment `
  -Identity "user@contoso.com" `
  -EnterpriseVoiceEnabled $true

# Export all Teams Phone-enabled users
Get-CsOnlineUser -Filter {EnterpriseVoiceEnabled -eq $true} |
  Select-Object DisplayName,SipAddress,LineUri,EnterpriseVoiceEnabled |
  Export-Csv -Path "TeamsPhoneUsers.csv" -NoTypeInformation

# Create a restricted calling policy (block external forwarding)
New-CsTeamsCallingPolicy -Identity "NoExternalForwarding" `
  -AllowPrivateCalling $true `
  -AllowCallForwardingToUser $true `
  -AllowCallForwardingToPhone $false `
  -AllowVoicemail AlwaysEnabled

# Get voicemail policies
Get-CsOnlineVoicemailPolicy | Select-Object Identity,EnableTranscription,MaximumRecordingLength | Format-Table -AutoSize

📞 Module 8: Voice — Auto Attendants & Call Queues

Auto attendants and call queues are the building blocks of an enterprise telephony experience in Teams Phone. Auto attendants provide the main menu experience (“Press 1 for Sales, Press 2 for Support”) and Call queues distribute incoming calls to a group of agents with hold music and overflow handling — both require Resource Accounts with phone numbers assigned.

Auto Attendant vs Call Queue

Feature Auto Attendant Call Queue
Purpose Route callers to correct destination via menu prompts Queue callers to be answered by the next available agent
Interaction DTMF (key presses) or speech recognition for menu navigation No caller interaction — callers wait on hold until agent available
Business hours Separate routing for business hours vs after hours vs holidays Overflow and timeout routing for queued calls that wait too long
Hold experience Custom greeting + routing — no hold music Hold music (custom or default), position announcement, estimated wait time
Resource account Required — one resource account per auto attendant Required — one resource account per call queue
Agents N/A — routes to users, call queues, or voicemail Teams users or M365 Groups; routing: serial, round robin, longest idle, attendant
7

Create Resource Accounts, Auto Attendants & Call Queues

Provision resource accounts, build a call queue for a support team, and assign a phone number to the queue so external callers can reach agents directly.

Microsoft Teams PowerShell

Connect-MicrosoftTeams

# Step 1: Create a Resource Account for the Call Queue
New-CsOnlineApplicationInstance `
  -UserPrincipalName "cq-itsupport@contoso.com" `
  -DisplayName "IT Support Queue" `
  -ApplicationId "11cd3e2e-fccb-42ad-ad00-878b93575e07"  # Call Queue App ID

Sync-CsOnlineApplicationInstance -ObjectId (Get-CsOnlineApplicationInstance -Identity "cq-itsupport@contoso.com").ObjectId

# Step 2: Assign a phone number to the resource account
Set-CsPhoneNumberAssignment `
  -Identity "cq-itsupport@contoso.com" `
  -PhoneNumber "+14255559876" `
  -PhoneNumberType CallingPlan

# Step 3: Create the Call Queue with round-robin routing
$Agents = @(
  (Get-CsOnlineUser -Identity "agent1@contoso.com").Identity,
  (Get-CsOnlineUser -Identity "agent2@contoso.com").Identity
)

New-CsCallQueue `
  -Name "IT Support Queue" `
  -UseDefaultMusicOnHold $true `
  -DistributionMethod RoundRobin `
  -AgentAlertTime 30 `
  -OverflowThreshold 50 `
  -TimeoutThreshold 600 `
  -Users $Agents

# Get all call queues and auto attendants
Get-CsCallQueue | Select-Object Name,DistributionMethod,AgentAlertTime,OverflowThreshold | Format-Table -AutoSize
Get-CsAutoAttendant | Select-Object Name,LanguageId,TimeZoneId | Format-Table -AutoSize
Get-CsOnlineApplicationInstance | Select-Object DisplayName,UserPrincipalName,PhoneNumber | Format-Table -AutoSize

💬 Module 9: Messaging Policies

Messaging policies control the chat and channel messaging experience for Teams users. They determine whether users can edit or delete sent messages, use Giphy or stickers, send priority notifications, and use URL previews. Messaging policies are per-user and can be assigned to individuals or groups.

Key Messaging Policy Settings

Setting Description Recommended
Allow user edit messages Whether users can edit messages after sending Enable — reduces follow-up correction messages
Allow user delete messages Whether users can delete their own sent messages Enable with caution — deleted messages are not recoverable by admins in standard config
Allow owners to delete all messages Whether team owners can delete any message in their channels Evaluate — useful for moderating public teams; not appropriate for all scenarios
Allow Giphy in messages Whether the Giphy GIF picker is available in chat compose box Restrict or set to Strict rating in regulated industries (financial, healthcare, legal)
Allow priority notifications Whether users can send “Urgent” messages that notify the recipient every 2 minutes for 20 minutes Enable for operational staff; consider restricting for executive users
Read receipts Whether sent messages show read status to the sender User controlled (default) — allow users to manage their own privacy preference
Allow URL previews Whether URLs in messages auto-expand to show a rich link preview card Enable — improves communication context; can be disabled for data privacy concerns
8

Create & Assign Custom Messaging Policies

Create a compliant messaging policy for regulated industry users (no Giphy, no stickers, restricted deletion) and a standard policy for general staff.

Microsoft Teams PowerShell

Connect-MicrosoftTeams

# Get all messaging policies
Get-CsTeamsMessagingPolicy | Select-Object Identity,AllowGiphy,AllowMemes,AllowUserDeleteMessage,AllowOwnerDeleteMessage,ReadReceiptsEnabledType | Format-Table -AutoSize

# Create a compliant messaging policy for regulated users
New-CsTeamsMessagingPolicy -Identity "RegulatedUserPolicy" `
  -AllowGiphy $false `
  -AllowMemes $false `
  -AllowStickers $false `
  -AllowUserEditMessage $true `
  -AllowUserDeleteMessage $false `
  -AllowOwnerDeleteMessage $false `
  -AllowPriorityMessages $false `
  -ReadReceiptsEnabledType UserPreference

# Create a standard policy for general staff
New-CsTeamsMessagingPolicy -Identity "StandardPolicy" `
  -AllowGiphy $true `
  -GiphyRatingType Moderate `
  -AllowMemes $true `
  -AllowUserDeleteMessage $true `
  -AllowPriorityMessages $true

# Assign a messaging policy to a user
Grant-CsTeamsMessagingPolicy -Identity "user@contoso.com" -PolicyName "RegulatedUserPolicy"

# Remove custom assignment (revert to Global policy)
Grant-CsTeamsMessagingPolicy -Identity "user@contoso.com" -PolicyName $null

📱 Module 10: Apps — Management & Policies

The Apps section in the Teams Admin Center governs what apps — Microsoft-built, partner-built, and custom — can be installed and used within Teams. App governance is a three-layer model: Org-level app settings (master on/off switches), App permission policies (what apps are available to which users), and App setup policies (what apps are pre-pinned to the Teams navigation bar).

App Governance Three-Layer Model

Layer What It Controls Where Configured
1. Org-wide app settings Master switches — allow/block third-party apps for the entire tenant; allow/block custom (LOB) apps for the entire tenant Apps → Manage apps → Org-wide app settings
2. Per-app allow/block status Individual app allow or block status — overrides user policy if blocked at org level Apps → Manage apps → Per-app toggle
3. App permission policy Which apps (Microsoft, third-party, custom) are available to specific users or groups via policy assignment Apps → Permission policies → Assign to users/groups
4. App setup policy Which apps appear pinned in the Teams left rail navigation bar for a user — pre-install and pin apps automatically Apps → Setup policies → Pinned apps list
9

Manage Apps, Permission Policies & App Setup Policies

Audit all apps in the tenant app catalogue, configure app permission policies to restrict third-party apps, and create a custom setup policy to pin specific apps for all users.

Microsoft Teams PowerShell

Connect-MicrosoftTeams

# Get all apps in the Teams app catalogue
Get-CsTeamsApp | Select-Object Id,DisplayName,DistributionMethod,ExternalId |
  Sort-Object DistributionMethod,DisplayName |
  Format-Table -AutoSize

# Get all app permission policies
Get-CsTeamsAppPermissionPolicy |
  Select-Object Identity,DefaultCatalogApps,GlobalCatalogApps,PrivateCatalogApps |
  Format-Table -AutoSize

# Block all third-party apps (only allow Microsoft + custom apps)
New-CsTeamsAppPermissionPolicy -Identity "BlockThirdPartyApps" `
  -DefaultCatalogApps AllowedAppList `
  -GlobalCatalogApps BlockedAppList `
  -PrivateCatalogApps AllowedAppList

# Get all app setup policies
Get-CsTeamsAppSetupPolicy | Select-Object Identity,AllowUserPinning,AllowSideloading | Format-Table -AutoSize

# Assign an app setup policy to a user
Grant-CsTeamsAppSetupPolicy -Identity "frontlineworker@contoso.com" -PolicyName "FrontlineWorkers"

📊 Module 11: Analytics, Reports & Notifications

The Analytics & reports blade gives administrators actionable insight into Teams adoption, usage trends, and call quality. The Call Quality Dashboard (CQD) is the primary tool for diagnosing audio/video quality issues at scale — it aggregates call quality telemetry for every call and meeting in the tenant and is available at cqd.teams.microsoft.com.

Available Reports in Teams Admin Center

Report What It Shows Data Range
Teams user activity Per-user breakdown of messages sent, calls, meetings attended, and meeting minutes 7, 30, 90, 180 days
Teams device usage Which devices (Windows, Mac, mobile, web, Rooms) users are accessing Teams from 7, 30, 90, 180 days
Teams usage Active teams, active channels, active users per team — identify stale or abandoned teams 7, 30, 90, 180 days
PSTN usage report Every PSTN call with duration, caller, callee, cost, and call type (calling plan vs Direct Routing) Up to 90 days
PSTN minute pools Calling Plan minutes consumed vs remaining for the month — zone A minutes (UK/US/EU) Current billing period
Call Quality Dashboard Poor call percentage, stream quality, network jitter/packet loss/round-trip metrics by location, subnet, device, or user Rolling 28 days (CQD) — last 30 min available for recent sessions
Direct Routing health dashboard SBC status, SIP options heartbeat, active calls per SBC — real-time monitoring of Direct Routing infrastructure Real-time + 7-day trend
10

Export Teams Usage & PSTN Reports via Microsoft Graph

Pull Teams activity reports programmatically via Microsoft Graph PowerShell for automated governance reporting, inactive user identification, and PSTN cost analysis.

Microsoft Graph PowerShell (Teams Reports)

Connect-MgGraph -Scopes "Reports.Read.All"

# Export Teams user activity report (last 30 days)
Invoke-MgGraphRequest -Method GET `
  "https://graph.microsoft.com/v1.0/reports/getTeamsUserActivityUserDetail(period='D30')" `
  -OutputFilePath "TeamsUserActivity30Days.csv"
Write-Host "Teams user activity report exported."

# Export Teams device usage report
Invoke-MgGraphRequest -Method GET `
  "https://graph.microsoft.com/v1.0/reports/getTeamsDeviceUsageUserDetail(period='D30')" `
  -OutputFilePath "TeamsDeviceUsage30Days.csv"

# Get Teams activity summary counts
$Summary = Invoke-MgGraphRequest -Method GET `
  "https://graph.microsoft.com/v1.0/reports/getTeamsUserActivityCounts(period='D30')"
$Summary.value | Format-Table

# Get all Teams-mode users for governance review
Connect-MicrosoftTeams
Get-CsOnlineUser -ResultSize Unlimited |
  Where-Object {$_.TeamsUpgradeEffectiveMode -eq "TeamsOnly"} |
  Select-Object DisplayName,SipAddress,WhenChanged |
  Export-Csv -Path "AllTeamsUsers.csv" -NoTypeInformation

🎓 Module 12: MS-700 Certification Alignment

The MS-700: Managing Microsoft Teams certification validates your ability to plan, deploy, configure, and manage Microsoft Teams as a collaboration, calling, and meeting platform. This guide covers all four MS-700 exam skill domains.

🎍 MS-700: Microsoft 365 Certified: Teams Administrator Associate
40%

Plan and Configure a Microsoft Teams Environment

Network settings, QoS, Teams Phone connectivity options (Calling Plans vs Operator Connect vs Direct Routing), security & compliance, guest & external access, Teams upgrade modes — Modules 1, 4, 7

25%

Manage Chat, Teams, Channels, and Apps

Team types & lifecycle, channel types (Standard vs Private vs Shared), Teams policies, app permission & setup policies, custom apps, team templates — Modules 2, 3, 9, 10

25%

Manage Meetings and Calling

Meeting policies (lobby, recording, transcription, Copilot), audio conferencing, webinars, town halls (Live Events retirement), auto attendants, call queues, voicemail — Modules 5, 6, 7, 8

10%

Monitor, Report, and Troubleshoot

Teams usage reports, PSTN reports, Call Quality Dashboard (CQD), Direct Routing health dashboard, alert rules, call analytics per user — Module 11

✅ MS-700 Exam Study Tips

  • Know the difference between Guest access and External access precisely — guest access creates an Entra ID B2B account and allows full team membership; external access is federated 1:1 chat only with no team membership or file access
  • Understand all three Teams Phone connectivity options — Calling Plans (Microsoft-managed), Operator Connect (carrier-managed via Microsoft interconnect), and Direct Routing (customer-managed SBC) — and when each is appropriate
  • Study the meeting lobby policy settings (AutoAdmittedUsers) in depth — know every value and what combination of organiser, co-organiser, internal users, guests, and anonymous users each setting admits directly vs holds in lobby
  • Memorise the call queue routing algorithms — Attendant routing (all agents ring simultaneously), Serial routing (agents ring in order), Round Robin, and Longest Idle — and when each is appropriate
  • Know that Town Halls replaced Live Events in October 2024 — CsTeamsMeetingBroadcastPolicy is deprecated; use CsTeamsEventsPolicy
  • Understand policy precedence: user-assigned policy beats group policy beats Global (Org-wide default) policy — and that group policy assignment is asynchronous (may take up to 24 hours to apply)
  • Study Teams Phone resource accounts thoroughly — auto attendants and call queues each require a resource account; the resource account must have a Virtual Phone System licence or Teams Phone Resource Account licence and a phone number assignment
  • Practice the Teams PowerShell module — know Get-CsTeamsMeetingPolicy, New-CsTeamsMeetingPolicy, Grant-CsTeamsMeetingPolicy, and the pattern that applies to all Cs* policy cmdlets

💡 Best Practices Summary

  • Implement Teams team governance from day one — restrict team creation to approved users via Entra ID Group creation policy, require a naming convention (e.g. DEPT-ProjectName), and enforce minimum two owners per team
  • Set the global meeting policy to require lobby for guests and anonymous users — never set AutoAdmittedUsers to “Everyone” for the Global policy as this allows anonymous attendees to bypass the lobby on all meetings
  • Use Teams templates for repeatable team types (Project, Incident Response, Onboarding) — templates pre-create channels, tabs, and apps ensuring consistent structure across all new teams of that type
  • Enable audio conferencing for all licensed users who host external meetings — dial-in access is essential when participants are in locations with poor internet or are joining from a traditional phone
  • Always assign at least two resource account licences when building auto attendant and call queue chains — you need one resource account per auto attendant and per call queue in the call routing path
  • Review the Call Quality Dashboard (CQD) weekly during the first 90 days of a Teams rollout — identify poor-quality subnets, device types with high failure rates, and buildings with network issues before users escalate to helpdesk
  • Configure Teams Notifications & Alerts for call quality degradation and Teams service health — proactive monitoring prevents slow degradation going unnoticed until a major user complaint
  • Use group-based policy assignment (New-CsBatchGroupPolicyAssignmentOperation) for all policy assignments at scale — individual user assignments are hard to audit and govern across large tenants
  • Archive rather than delete inactive teams — archiving makes the team read-only, preserves all content and chat history, and keeps the team searchable; deletion permanently removes all content after 30 days
  • Enforce Teams Premium for regulated meetings (watermarking, end-to-end encryption, sensitivity labels on meetings, advanced webinar registration) in financial, legal, and healthcare scenarios

📚 References & Further Reading

Leave a Comment

Your email address will not be published. Required fields are marked *