πŸ”’ Guided

Pre-launch preview. Authorised access only.

Incorrect code

Guided by A Guide to Cloud
Explore AB-900 AI-901 aws-saa-c03 aws-aif-c01
Guided MS-700 Domain 1
Domain 1 β€” Module 13 of 13 100%
13 of 27 overall

MS-700 Study Guide

Domain 1: Configure and manage a Teams environment

  • Network Planning & Readiness
  • Security Roles, Alerts & Defender
  • Retention & Sensitivity Labels
  • DLP & Conditional Access
  • Information Barriers & Insider Risk
  • Update Policies & Policy Packages
  • Group Creation, Naming & Expiration
  • Archive, Restore & Access Reviews
  • Guest Access & External Sharing
  • Shared Channels & Cross-Tenant Access
  • Teams Phone & Resource Accounts
  • Teams Rooms & Device Management
  • PowerShell & Graph Automation

Domain 2: Manage teams, channels, chats, and apps

  • Teams Rollout & Creation Free
  • Membership, Roles & Team Settings Free
  • Channel Types & Policies Free
  • App Management & Permissions Free
  • App Extensibility & Store Free

Domain 3: Manage meetings and calling

  • Meeting Types & Settings
  • Webinars & Town Halls
  • Phone Numbers & Conferencing
  • Voice Policies & Voicemail
  • Auto Attendants & Call Routing

Domain 4: Monitor, report on, and troubleshoot Teams

  • Voice & Meeting Quality
  • Usage, Alerts & Diagnostics Tools
  • Client Logs & Diagnostics
  • Copilot & Meeting Troubleshooting

MS-700 Study Guide

Domain 1: Configure and manage a Teams environment

  • Network Planning & Readiness
  • Security Roles, Alerts & Defender
  • Retention & Sensitivity Labels
  • DLP & Conditional Access
  • Information Barriers & Insider Risk
  • Update Policies & Policy Packages
  • Group Creation, Naming & Expiration
  • Archive, Restore & Access Reviews
  • Guest Access & External Sharing
  • Shared Channels & Cross-Tenant Access
  • Teams Phone & Resource Accounts
  • Teams Rooms & Device Management
  • PowerShell & Graph Automation

Domain 2: Manage teams, channels, chats, and apps

  • Teams Rollout & Creation Free
  • Membership, Roles & Team Settings Free
  • Channel Types & Policies Free
  • App Management & Permissions Free
  • App Extensibility & Store Free

Domain 3: Manage meetings and calling

  • Meeting Types & Settings
  • Webinars & Town Halls
  • Phone Numbers & Conferencing
  • Voice Policies & Voicemail
  • Auto Attendants & Call Routing

Domain 4: Monitor, report on, and troubleshoot Teams

  • Voice & Meeting Quality
  • Usage, Alerts & Diagnostics Tools
  • Client Logs & Diagnostics
  • Copilot & Meeting Troubleshooting
Domain 1: Configure and manage a Teams environment Premium ⏱ ~12 min read

PowerShell & Graph Automation

When you manage 50,000 users, clicking through the admin center isn't an option. Learn the Teams PowerShell module cmdlets and Microsoft Graph API calls the exam tests.

Automation for Teams admins

β˜• Simple explanation

Imagine you’re a school administrator who needs to update the lunch menu for 500 classrooms.

You could walk into each classroom and change the poster. Or you could send one email to all classroom displays that updates automatically.

PowerShell is that email β€” you type a command, and it changes settings for thousands of users at once. Microsoft Graph is the postal service behind it β€” the API that connects to Teams, Exchange, SharePoint, and everything else. Both let you automate what would take hours in the admin center.

The Microsoft Teams PowerShell module (MicrosoftTeams) provides cmdlets for managing Teams policies, settings, voice, and users from the command line. It uses a Cs prefix (from Skype for Business heritage) for many cmdlets β€” e.g., Get-CsTeamsMeetingPolicy. The module connects to your tenant via Connect-MicrosoftTeams.

Microsoft Graph API provides RESTful access to Teams data β€” creating teams, managing channels, sending messages, and reading analytics. Graph is the preferred API for automation, integrations, and applications that interact with Teams programmatically.

Teams PowerShell module

Getting started

# Install the module
Install-Module -Name MicrosoftTeams -Force

# Connect to your tenant
Connect-MicrosoftTeams

# Verify connection
Get-CsTenant

Key cmdlets the exam tests

The exam tests your ability to choose the right cmdlet for a scenario. Here are the most important ones:

Team management:

CmdletWhat It DoesExample
New-TeamCreate a new teamNew-Team -DisplayName "Project Phoenix" -Visibility Private
Get-TeamList teams or get detailsGet-Team -DisplayName "Marketing"
Set-TeamUpdate team settingsSet-Team -GroupId $id -Description "Updated"
Remove-TeamDelete a teamRemove-Team -GroupId $id
Add-TeamUserAdd member or ownerAdd-TeamUser -GroupId $id -User "user@domain.com" -Role Member
Set-TeamArchivedStateArchive/unarchiveSet-TeamArchivedState -GroupId $id -Archived $true

Policy management (Cs prefix):

CmdletWhat It DoesExample
Get-CsTeamsMeetingPolicyList meeting policiesGet-CsTeamsMeetingPolicy -Identity "RestrictedMeetings"
Set-CsTeamsMeetingPolicyModify meeting policySet-CsTeamsMeetingPolicy -Identity "RestrictedMeetings" -AllowRecording $false
New-CsTeamsMeetingPolicyCreate meeting policyNew-CsTeamsMeetingPolicy -Identity "NoRecording"
Grant-CsTeamsMeetingPolicyAssign policy to userGrant-CsTeamsMeetingPolicy -Identity "user@domain.com" -PolicyName "NoRecording"
Get-CsTeamsCallingPolicyList calling policiesGet-CsTeamsCallingPolicy
Grant-CsTeamsCallingPolicyAssign calling policyGrant-CsTeamsCallingPolicy -Identity "user@domain.com" -PolicyName "AllowCalling"
Get-CsTeamsMessagingPolicyList messaging policiesGet-CsTeamsMessagingPolicy
New-CsGroupPolicyAssignmentAssign policy to a groupAssign policy to all members of a security group

Voice management:

CmdletWhat It Does
Set-CsPhoneNumberAssignmentAssign phone number to user
Get-CsOnlineVoiceRoutingPolicyList voice routing policies
New-CsAutoAttendantCreate auto attendant
New-CsCallQueueCreate call queue
Get-CsOnlineUserGet user voice configuration
πŸ’‘ Exam tip: Cs prefix and the Grant pattern

The exam loves testing the Get β†’ Set β†’ New β†’ Grant pattern:

  • Get-CsTeamsPolicyType = view existing policies (e.g., Get-CsTeamsMeetingPolicy)
  • New-CsTeamsPolicyType = create a new policy
  • Set-CsTeamsPolicyType = modify an existing policy
  • Grant-CsTeamsPolicyType = assign a policy to a user or group

The Grant cmdlet is how you assign policies to users. Without Grant, creating a policy does nothing β€” it exists but isn’t applied to anyone.

Also: the Cs prefix comes from the Skype for Business heritage. Microsoft kept it for backward compatibility. Don’t be confused β€” these are Teams cmdlets despite the Cs prefix.

Scenario: Kofi's bulk operations at Harbour University

Kofi needs to assign the Education (Student) meeting policy to 50,000 students. Doing this in the admin center would take weeks.

PowerShell approach:

# Get the student security group (Microsoft Graph PowerShell)
$groupId = (Get-MgGroup -Filter "displayName eq 'All Students'").Id

# Assign meeting policy to the group
New-CsGroupPolicyAssignment `
  -GroupId $groupId `
  -PolicyType TeamsMeetingPolicy `
  -PolicyName "Education_Student" `
  -Rank 1

The group policy assignment applies to all group members automatically. Kofi checks status with:

Get-CsGroupPolicyAssignment -PolicyType TeamsMeetingPolicy

50,000 policy assignments handled through one group assignment instead of individual operations.

Microsoft Graph API

Graph for Teams

Microsoft Graph provides REST API access to Teams:

EndpointWhat It DoesHTTP Method
/teamsCreate a teamPOST
/teams/team-idGet/update/delete a teamGET / PATCH / DELETE
/teams/team-id/membersManage team membershipGET / POST / DELETE
/teams/team-id/channelsList/create channelsGET / POST
/teams/team-id/channels/channel-id/messagesSend channel messagePOST
/teams/team-id/archiveArchive a teamPOST
/teams/team-id/unarchiveUnarchive a teamPOST

PowerShell vs. Graph β€” when to use which

PowerShell vs. Graph for Teams automation
FeaturePowerShellMicrosoft Graph
Best forAdmin policy management, bulk operations, voice configurationApplication integrations, custom apps, automation workflows
AuthenticationInteractive (Connect-MicrosoftTeams) or certificate-basedOAuth 2.0 (app registration in Entra ID)
Policy managementFull support β€” Get/Set/New/Grant for all policy typesLimited β€” some policies not exposed via Graph
Voice featuresFull support β€” phone numbers, routing, auto attendantsLimited voice support
Team/channel operationsSupported (New-Team, Add-TeamUser, etc.)Full support with richer options
Automation platformAzure Automation, scheduled tasks, scriptsPower Automate, Logic Apps, Azure Functions, custom apps

Graph permissions

Graph API calls require application permissions or delegated permissions configured in an Entra ID app registration:

PermissionTypeUse Case
Team.ReadBasic.AllApplicationRead team properties
TeamMember.ReadWrite.AllApplicationManage team membership
Channel.CreateDelegatedCreate channels on behalf of a user
TeamsActivity.SendApplicationSend activity feed notifications

Exam tip: Application permissions run without a user context (daemon/background). Delegated permissions run on behalf of a signed-in user. The exam may test which permission type is appropriate for a scenario.

🎬 Video walkthrough

🎬 Video coming soon

PowerShell & Graph Automation β€” MS-700 Module 13

PowerShell & Graph Automation β€” MS-700 Module 13

~10 min

Flashcards

Question

What PowerShell cmdlet assigns a Teams meeting policy to a specific user?

Click or press Enter to reveal answer

Answer

Grant-CsTeamsMeetingPolicy -Identity 'user@domain.com' -PolicyName 'PolicyName'. The Grant cmdlet assigns policies; New creates them; Set modifies them; Get reads them.

Click to flip back

Question

Why do Teams PowerShell cmdlets use the 'Cs' prefix?

Click or press Enter to reveal answer

Answer

The Cs prefix comes from Skype for Business (Communications Server) heritage. Microsoft kept it for backward compatibility. Despite the prefix, these are Teams cmdlets β€” e.g., Get-CsTeamsMeetingPolicy manages Teams meetings.

Click to flip back

Question

How do you bulk-assign a policy to thousands of users in Teams?

Click or press Enter to reveal answer

Answer

Use New-CsGroupPolicyAssignment to assign a policy to a security group. Specify the GroupId, PolicyType, PolicyName, and Rank. All group members get the policy automatically. Check with Get-CsGroupPolicyAssignment.

Click to flip back

Question

When should you use Microsoft Graph instead of PowerShell for Teams?

Click or press Enter to reveal answer

Answer

Use Graph for: application integrations, custom apps, Power Automate flows, and programmatic access via REST APIs. Use PowerShell for: admin policy management (Get/Set/New/Grant), voice configuration, and bulk scripted operations.

Click to flip back

Knowledge Check

Knowledge Check

Kofi needs to create a PowerShell script that assigns the 'NoRecording' meeting policy to all members of the 'Students' security group. Which cmdlet sequence is correct?

Knowledge Check

A developer at Pinnacle Corp wants to build a custom app that automatically creates a team when a new project is approved in their project management system. Which approach should they use?


You’ve completed Domain 1! πŸŽ‰ All 13 modules covering Teams environment configuration and management.

Next up: Teams Rollout & Creation β€” Domain 2 begins with planning your Teams rollout and creating teams from templates, Groups, and SharePoint sites.

← Previous

Teams Rooms & Device Management

Next β†’

Teams Rollout & Creation

Guided

I learn, I simplify, I share.

A Guide to Cloud YouTube Feedback

© 2026 Sutheesh. All rights reserved.

Guided is an independent study resource and is not affiliated with, endorsed by, or officially connected to Microsoft. Microsoft, Azure, and related trademarks are property of Microsoft Corporation. Always verify information against Microsoft Learn.