Microsoft 365 Admin Center: Complete Practical Course — Matching the M365 Admin Center Tabs & MS-102 Certification

📘 Course Guide

Microsoft 365 Admin Center: Complete Practical Course — Matching the M365 Admin Center Tabs & MS-102 Certification

This course guide maps directly to the Microsoft 365 Admin Center (admin.microsoft.com) — every section visible in the left navigation is covered here as a practical module. Whether you are preparing for the MS-102: Microsoft 365 Administrator Expert certification or managing a live Microsoft 365 tenant, this guide delivers hands-on knowledge, real admin tasks, and Microsoft Graph PowerShell commands for each functional area of the M365 Admin Center.

The guide is structured around the actual Admin Center Home dashboard — including the Quick tasks panel, Service health status bar, Users and Groups management, Billing and Licenses, Reports and Productivity Score, and all linked specialist Admin Centers — all explored in depth with PowerShell automation below.

🗺️ Course Module Map

This guide follows the exact left-navigation order of the Microsoft 365 Admin Center. Complete each module in sequence for the strongest learning outcome and exam readiness.

1

M365 Admin Center Overview

Navigating the Home dashboard, Quick tasks panel, and the full M365 portal structure

2

Users

Active users, Guest users, Contacts, Deleted users — creation, licensing, and Graph PowerShell

3

Teams & Groups

Microsoft 365 Groups, Distribution lists, Shared mailboxes, and Dynamic group membership

4

Roles

Built-in admin roles, custom roles, Entra ID integration, and least-privilege delegation

5

Resources

Rooms & equipment, SharePoint sites, and resource account management

6

Billing & Licenses

Products, license assignment, purchase services, invoices, and license cost auditing

7

Settings

Org settings, domains, security & privacy, integrated apps, and search configuration

8

Reports & Usage

Usage reports, Productivity Score, Adoption Score, and data export for governance

9

Health

Service health dashboard, Message center, planned maintenance, and Windows release health

10

Admin Centers

Exchange, SharePoint, Teams, Intune, Entra, Compliance, Security — navigation and scope

11

Setup & Guided Onboarding

Guided setup wizard, domain verification, MX record configuration, and tenant hardening

12

MS-102 Certification Alignment

Exam domains, skill weightings, scenario tips, and certification pathway

🏠 Module 1: M365 Admin Center Overview

The Microsoft 365 Admin Center, accessible at admin.microsoft.com, is the unified web-based management console for all Microsoft 365 services and subscriptions. It is the starting point for every M365 administrator — from tenant setup and user provisioning through to billing, reporting, and security governance.

Home Dashboard Cards

The M365 Admin Center Home dashboard displays live operational cards on first login. The default layout includes:

Dashboard Card What It Shows Where to Go Deeper
Service health Real-time summary of all M365 service statuses — green (Healthy), yellow (Advisory), red (Incident) Health → Service health
Message center Latest Microsoft communications: planned changes, new features, action required notices Health → Message center
Recommended actions Microsoft Secure Score–driven security recommendations ranked by impact Security → Microsoft Secure Score
Users Total licensed users vs total accounts; link to add a new user Users → Active users
Training for admins Curated Microsoft Learn paths and certification guides for M365 administrators Microsoft Learn
Setup Progress indicator for the guided tenant setup checklist — domain, apps, security Setup
Billing Current subscription status, upcoming renewal dates, and licence consumption Billing → Your products

💡 Quick Tasks Panel

The Quick tasks panel at the top of the Home dashboard provides one-click access to the most common operations: Add a user, Install Microsoft 365 apps, Add a domain, View service health, and Get support. For any administrator onboarding a new tenant, these tasks define the initial setup sequence.

M365 Admin Center Left Navigation — Complete Menu Structure

🏠 Home
👤 Users
👥 Teams & groups
🔑 Roles
🏗️ Resources
💳 Billing
🠆 Support
⚙️ Settings
✅ Setup
📊 Reports
❤️ Health
🔗 Admin centers

⚠️ M365 Admin Center vs Specialist Admin Centers

The M365 Admin Center is the tenant-level management portal. Service-specific configuration always happens in the specialist admin centers — Exchange Admin Center for messaging, SharePoint Admin Center for sites, Teams Admin Center for telephony and meetings, and Entra Admin Center for identity. The M365 Admin Center provides a Admin centers link in the left navigation to launch each specialist portal directly.

👤 Module 2: Users

The Users section is the primary interface for identity lifecycle management in Microsoft 365. It contains four sub-sections: Active users, Guest users, Contacts, and Deleted users.

2.1 User Account Types

Account Type Description License Required Source
Internal User Standard employee account in the organisation’s Azure AD tenant Yes — M365 or standalone plan Cloud-only or synced from on-premises AD
Guest User (B2B) External user invited to collaborate — uses their own identity from another tenant or email provider No (subject to guest access policies) Azure AD B2B invitation
Mail Contact External address in the Global Address List with no login capability — recipients only No EAC or Exchange PowerShell
Deleted User Soft-deleted account retained for 30 days before permanent deletion — restorable within this window License freed on deletion Admin Center / Graph PowerShell
1

Create & License a New User via Graph PowerShell

Provision a new user account with a temporary password, set usage location, and assign a Microsoft 365 licence in a single workflow.

PowerShell — Microsoft Graph

# Install the Graph module if not already present
Install-Module Microsoft.Graph -Scope CurrentUser -Force

Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.ReadWrite.All"

# Create the user account
$PasswordProfile = @{
  Password = "TempP@ss2026!"
  ForceChangePasswordNextSignIn = $true
}

New-MgUser `
  -DisplayName "Jane Smith" `
  -UserPrincipalName "jsmith@contoso.com" `
  -MailNickname "jsmith" `
  -AccountEnabled `
  -PasswordProfile $PasswordProfile `
  -UsageLocation "GB" `
  -JobTitle "IT Engineer" `
  -Department "IT"

# Assign Microsoft 365 Business Premium licence (SPB SKU)
$Sku = Get-MgSubscribedSku | Where-Object {$_.SkuPartNumber -eq "SPB"}
$AddLicence = @{ SkuId = $Sku.SkuId }
Set-MgUserLicense -UserId "jsmith@contoso.com" -AddLicenses @($AddLicence) -RemoveLicenses @()

# Verify
Get-MgUser -UserId "jsmith@contoso.com" -Property DisplayName,UserPrincipalName,AssignedLicenses,AccountEnabled
2

Bulk Create Users from CSV & Export All Licensed Users

Provision multiple users from a CSV file and generate a full licensed-users audit report for compliance or cost review.

PowerShell — Microsoft Graph

Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.ReadWrite.All"

# CSV format: DisplayName,UPN,MailNickname,Department,JobTitle
$Users = Import-Csv -Path "C:\IT\NewUsers.csv"

foreach ($u in $Users) {
  $PasswordProfile = @{ Password = "Welcome1!"; ForceChangePasswordNextSignIn = $true }
  New-MgUser -DisplayName $u.DisplayName -UserPrincipalName $u.UPN -MailNickname $u.MailNickname `
    -AccountEnabled -PasswordProfile $PasswordProfile -UsageLocation "GB" `
    -Department $u.Department -JobTitle $u.JobTitle
  Write-Host "Created: $($u.UPN)" -ForegroundColor Green
}

# Export all licensed users org-wide
Get-MgUser -All -Property DisplayName,UserPrincipalName,AssignedLicenses,AccountEnabled,Department,JobTitle,UsageLocation |
  Where-Object {$_.AssignedLicenses.Count -gt 0} |
  Select-Object DisplayName,UserPrincipalName,AccountEnabled,Department,JobTitle,UsageLocation |
  Export-Csv -Path "LicensedUsersAudit.csv" -NoTypeInformation

2.2 Guest Users (Azure AD B2B)

Guest users are external identities invited into your tenant for collaboration. They authenticate with their own Microsoft account, work account, or email OTP — they never receive an internal credential. Guest access scope is controlled by External Collaboration Settings in the Entra Admin Center.

⚠️ Guest User Licensing Note

Guest users can access Microsoft Teams, SharePoint Online, and other M365 collaboration features at no additional licence cost under the 5:1 ratio rule — for every 5 licensed users, 1 guest user may collaborate for free. Features requiring a direct licence (e.g. Power BI Pro, Visio) must be separately licensed for guests. Always verify entitlement before provisioning guest access to premium features.

2.3 Deleted Users — 30-Day Recovery Window

Deleted users are soft-deleted and retained in the Deleted users list for 30 days. During this window, admins can restore the account along with its original group memberships, licences, and properties. After 30 days, the deletion is permanent and the associated mailbox enters a disconnected state.

👥 Module 3: Teams & Groups

The Teams & groups section manages all collaboration group objects in Microsoft 365. It contains Active teams & groups, Deleted groups, Shared mailboxes, and Distribution lists.

Group Types in Microsoft 365

Group Type Collaboration Workspace Mail-Enabled Best For
Microsoft 365 Group Teams channel, SharePoint site, Planner, shared inbox, shared calendar Yes Project teams, departments, cross-functional collaboration
Distribution List Email distribution only — no collaboration workspace Yes Company-wide announcements, department newsletters
Mail-Enabled Security Group Resource access control AND email distribution Yes Controlling SharePoint permissions while also sending email
Security Group Resource access control only — no mail delivery No Conditional Access policies, SharePoint/Teams membership
Dynamic Group Auto-managed membership based on user attributes (department, job title, etc.) Yes or No Large orgs where manual membership maintenance is impractical
3

Create a Microsoft 365 Group & Add Members via Graph PowerShell

Provision a collaboration group that automatically creates a Teams workspace, SharePoint site, and shared mailbox simultaneously.

PowerShell — Microsoft Graph

Connect-MgGraph -Scopes "Group.ReadWrite.All","GroupMember.ReadWrite.All"

# Create a Microsoft 365 Group (Teams-connectable)
$Group = New-MgGroup `
  -DisplayName "Project Apollo" `
  -MailNickname "projectapollo" `
  -Description "Cross-functional project team for Apollo delivery" `
  -GroupTypes @("Unified") `
  -MailEnabled `
  -SecurityEnabled:$false

Write-Host "Group created: $($Group.Id)"

# Add owner
$Owner = Get-MgUser -Filter "UserPrincipalName eq 'pm@contoso.com'"
New-MgGroupOwner -GroupId $Group.Id -DirectoryObjectId $Owner.Id

# Add members
$Members = @("dev1@contoso.com", "dev2@contoso.com", "designer@contoso.com")
foreach ($m in $Members) {
  $User = Get-MgUser -Filter "UserPrincipalName eq '$m'"
  New-MgGroupMember -GroupId $Group.Id -DirectoryObjectId $User.Id
}

# List all members
Get-MgGroupMember -GroupId $Group.Id | ForEach-Object {
  Get-MgUser -UserId $_.Id | Select-Object DisplayName,UserPrincipalName
}

💡 Shared Mailboxes via M365 Admin Center

The M365 Admin Center provides Teams & groups → Shared mailboxes as a direct management panel — create, manage delegates, and enable email alias from here without opening the Exchange Admin Center. For advanced permission control (Send As, Send on Behalf) or forwarding configuration, the Exchange Admin Center provides more granular options. Both portals write to the same Exchange Online backend.

🔑 Module 4: Roles

The Roles section in the M365 Admin Center manages administrator role assignments across all Microsoft 365 services. Roles are powered by Microsoft Entra ID (formerly Azure AD) built-in and custom role definitions. Role assignments grant specific administrative permissions without giving the assigned user Global Administrator rights.

Key Built-in Microsoft 365 Admin Roles

Role Name Permissions Scope Principle of Least Privilege
Global Administrator Full access to all M365 services and settings — highest privilege role Limit to 2–4 break-glass accounts; never use for day-to-day tasks
Global Reader Read-only view of all M365 admin settings — no write access Ideal for auditors, compliance officers, and security reviewers
User Administrator Create/manage users, reset passwords, manage licences and groups (non-admin users only) Help desk and HR administrators for routine user lifecycle management
Exchange Administrator Full management of Exchange Online — mailboxes, mail flow, connectors, EAC Messaging engineers and email platform team
SharePoint Administrator Manage SharePoint Online sites, storage, and sharing policies via SharePoint Admin Center SharePoint platform team and collaboration engineers
Teams Administrator Manage Teams policies, meeting settings, telephony, and Teams Admin Center Unified Communications and collaboration team
Intune Administrator Full Intune / Endpoint Manager administration — device and app policies Device management and endpoint security team
Security Administrator Microsoft Defender, Secure Score, security policies — read/write security configuration Security operations and threat management team
Compliance Administrator Microsoft Purview: DLP, retention policies, eDiscovery, audit, information barriers Legal, compliance, and records management team
Billing Administrator Purchase services, manage subscriptions, view invoices and billing accounts Finance and procurement team only
Helpdesk Administrator Reset passwords and manage service requests for non-admin users only Tier 1 support — strictly scoped to non-privileged users
Licence Administrator Assign and remove product licences for users and groups — no user creation HR onboarding workflows or licence management team
4

Audit All Admin Role Assignments Organisation-Wide

Generate a complete inventory of every admin role and its current members — essential for quarterly access reviews and MS-102 exam scenarios.

PowerShell — Microsoft Graph

Connect-MgGraph -Scopes "RoleManagement.Read.Directory","User.Read.All"

# Audit all active admin role assignments
$Report = @()
$Roles = Get-MgDirectoryRole

foreach ($Role in $Roles) {
  $Members = Get-MgDirectoryRoleMember -DirectoryRoleId $Role.Id -ErrorAction SilentlyContinue
  foreach ($Member in $Members) {
    $User = Get-MgUser -UserId $Member.Id -ErrorAction SilentlyContinue
    if ($User) {
      $Report += [PSCustomObject]@{
        Role           = $Role.DisplayName
        AssignedTo     = $User.DisplayName
        UPN            = $User.UserPrincipalName
        AccountEnabled = $User.AccountEnabled
      }
    }
  }
}

# Display and export
$Report | Sort-Object Role,AssignedTo | Format-Table -AutoSize
$Report | Export-Csv -Path "AdminRoleAudit.csv" -NoTypeInformation
Write-Host "Total privileged assignments: $($Report.Count)"

🏗️ Module 5: Resources

The Resources section manages physical and virtual assets that need scheduling through Microsoft 365. It contains Rooms & equipment (resource mailboxes for meeting room booking) and Sites (SharePoint site management shortcuts).

Resource Types in M365 Admin Center

Resource Type Function Backend Object License Required
Room Physical meeting room bookable via Outlook calendar — auto-accepts based on availability policy Room mailbox in Exchange Online No — free resource account
Equipment Schedulable asset (AV equipment, vehicle, projector) bookable like a room Equipment mailbox in Exchange Online No — free resource account
Teams Rooms (Android) Dedicated device for Microsoft Teams meeting rooms with touch-enabled console Resource account in Entra ID Teams Rooms Basic (free, limited) or Teams Rooms Pro
5

Create a Room Resource & Configure Auto-Booking via Graph PowerShell

Provision a meeting room resource account and configure its calendar processing policy for automatic booking acceptance.

PowerShell — Exchange Online + Microsoft Graph

Connect-ExchangeOnline

# Create the room mailbox
New-Mailbox -Room -Name "Meeting Room 3A" -DisplayName "Meeting Room 3A" `
  -Alias "meetingroom3a" -PrimarySmtpAddress "room3a@contoso.com"

# Configure auto-booking: accept when available, max 4hr, capacity 12
Set-CalendarProcessing -Identity "room3a@contoso.com" `
  -AutomateProcessing AutoAccept `
  -AddOrganizerToSubject $true `
  -DeleteComments $false `
  -MaximumDurationInMinutes 240 `
  -AllowConflicts $false `
  -BookingWindowInDays 180

Set-Mailbox -Identity "room3a@contoso.com" -ResourceCapacity 12

# List all room mailboxes with capacity
Get-Mailbox -RecipientTypeDetails RoomMailbox |
  Select-Object DisplayName,PrimarySmtpAddress,ResourceCapacity | Format-Table -AutoSize

💳 Module 6: Billing & Licenses

The Billing section is where you manage Microsoft 365 subscriptions, purchase new services, view and pay invoices, and control licence assignment across the organisation. Efficient licence management is both a cost control and compliance function — over-provisioning wastes budget, under-provisioning blocks productivity.

Common Microsoft 365 Licence SKU Part Numbers

SKU Part Number Product Name Key Services Included
SPB Microsoft 365 Business Premium Apps, Exchange, Teams, SharePoint, OneDrive, Intune, Entra P1, Defender for Business
O365_BUSINESS_PREMIUM Microsoft 365 Business Standard Apps, Exchange, Teams, SharePoint, OneDrive (no Intune/Entra P1/Defender)
SPE_E3 Microsoft 365 E3 Apps, Exchange, Teams, SharePoint, OneDrive, Intune, Entra P1, Compliance E3
SPE_E5 Microsoft 365 E5 All E3 + Entra P2, Defender for O365 P2, Purview E5, Teams Phone, Power BI Pro
EXCHANGESTANDARD Exchange Online Plan 1 50 GB mailbox, OWA, ActiveSync — no archive
EXCHANGEENTERPRISE Exchange Online Plan 2 Unlimited archive, Litigation Hold, DLP — add-on to M365 E3
TEAMS_EXPLORATORY Microsoft Teams Exploratory Teams-only, free exploratory licence for unlicensed users
6

Assign, Swap & Remove Licences via Graph PowerShell

Manage licence assignments for individual users and perform licence swaps — the correct approach for role changes (e.g. Business Standard → Business Premium on promotion).

PowerShell — Microsoft Graph

Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.Read.All"

# List all available SKUs and consumption
Get-MgSubscribedSku | Select-Object SkuPartNumber,SkuId,ConsumedUnits,
  @{N="TotalUnits";E={$_.PrepaidUnits.Enabled}},
  @{N="Available";E={$_.PrepaidUnits.Enabled - $_.ConsumedUnits}} | Format-Table -AutoSize

# Assign Business Premium to a user
$BPSku = Get-MgSubscribedSku | Where-Object {$_.SkuPartNumber -eq "SPB"}
Set-MgUserLicense -UserId "jsmith@contoso.com" -AddLicenses @(@{SkuId=$BPSku.SkuId}) -RemoveLicenses @()

# Swap licence: remove Business Standard, add Business Premium atomically
$OldSku = Get-MgSubscribedSku | Where-Object {$_.SkuPartNumber -eq "O365_BUSINESS_PREMIUM"}
$NewSku = Get-MgSubscribedSku | Where-Object {$_.SkuPartNumber -eq "SPB"}
Set-MgUserLicense -UserId "jsmith@contoso.com" -AddLicenses @(@{SkuId=$NewSku.SkuId}) -RemoveLicenses @($OldSku.SkuId)

# Remove all licences from a user (e.g. off-boarding)
$User = Get-MgUser -UserId "leaver@contoso.com" -Property AssignedLicenses
$RemoveIds = $User.AssignedLicenses | Select-Object -ExpandProperty SkuId
Set-MgUserLicense -UserId "leaver@contoso.com" -AddLicenses @() -RemoveLicenses $RemoveIds
7

Audit Licence Waste — Find Unlicensed, Inactive & Blocked Users

Identify accounts consuming licences with no recent sign-in activity — a critical cost optimisation exercise for organisations with large user bases.

PowerShell — Microsoft Graph

Connect-MgGraph -Scopes "User.Read.All","AuditLog.Read.All"

# Find licensed users who have not signed in for 90+ days
$CutoffDate = (Get-Date).AddDays(-90).ToString("yyyy-MM-dd")

Get-MgUser -All -Property DisplayName,UserPrincipalName,AssignedLicenses,AccountEnabled,SignInActivity |
  Where-Object {
    $_.AssignedLicenses.Count -gt 0 -and
    $_.AccountEnabled -eq $true -and
    ($_.SignInActivity.LastSignInDateTime -lt $CutoffDate -or $_.SignInActivity.LastSignInDateTime -eq $null)
  } |
  Select-Object DisplayName,UserPrincipalName,
    @{N="LastSignIn";E={$_.SignInActivity.LastSignInDateTime}},
    @{N="LicenceCount";E={$_.AssignedLicenses.Count}} |
  Export-Csv -Path "LicenceWasteAudit.csv" -NoTypeInformation

Write-Host "Stale licensed accounts exported to LicenceWasteAudit.csv"

⚙️ Module 7: Settings

The Settings section controls organisation-wide configuration for Microsoft 365 services, tenant identity, domain management, security posture, and third-party application integrations.

Settings Sub-Sections Overview

Settings Section What You Configure Key Admin Decisions
Org settings Per-service toggles: Sway, Forms, Whiteboard, Calendar sharing, Bing search, News, Viva Insights, third-party storage Disable services not used by the organisation to reduce attack surface
Org profile Company name, registered address, technical contact email, data location preferences Technical contact receives all service health alerts from Microsoft
Domains Add, verify, and set the default domain; manage DNS records for M365 services Verified domains control UPN suffix and email addressing; MX record controls mail flow
Integrated apps Control third-party and first-party app consent — allow/block OAuth apps from accessing M365 data Restrict user consent to admin-approved apps only to prevent token theft attacks
Security & privacy Customer Lockbox, data residency, privacy profile, sharing controls Enable Customer Lockbox for regulated industries requiring audit of Microsoft access
Search & intelligence Microsoft Search configuration — bookmarks, acronyms, floor plans, Q&A Configure bookmarks for internal tools to surface in search results across M365
Partner relationships View delegated admin relationships with Microsoft partners managing the tenant Regularly audit — revoke relationships with partners no longer actively engaged
8

Add & Verify a Custom Domain via Graph PowerShell

Add a new domain to Microsoft 365, retrieve the required DNS verification token, and confirm verification — the prerequisite for custom email addresses and UPNs.

PowerShell — Microsoft Graph

Connect-MgGraph -Scopes "Domain.ReadWrite.All"

# Add the domain to the tenant
New-MgDomain -Id "newdomain.com"

# Retrieve DNS verification records
$Domain = Get-MgDomain -DomainId "newdomain.com"
Get-MgDomainVerificationDnsRecord -DomainId "newdomain.com" |
  Select-Object RecordType,@{N="Value";E={$_.AdditionalProperties.text}},Label,Ttl

# After adding the TXT record to DNS, confirm verification
Confirm-MgDomain -DomainId "newdomain.com"

# Check domain status
Get-MgDomain -DomainId "newdomain.com" | Select-Object Id,IsVerified,IsDefault,SupportedServices

# Set as default domain for new users
Update-MgDomain -DomainId "newdomain.com" -IsDefault

📊 Module 8: Reports & Usage

The Reports section provides operational and strategic visibility into Microsoft 365 service adoption, user activity, and productivity across the organisation. It is a key tool for licence optimisation, adoption campaigns, and governance reporting.

Key M365 Usage Reports

Report What It Shows Data Period Access Path
Email Activity Per-user email send/receive/read counts — identifies inactive Exchange Online users 7 / 30 / 90 / 180 days Reports → Usage → Exchange
Teams User Activity Channel messages, calls, meetings, private chats per user — identifies Teams adoption gaps 7 / 30 / 90 / 180 days Reports → Usage → Teams
OneDrive Usage Active users, total files, storage consumed — helps identify storage quota issues 7 / 30 / 90 / 180 days Reports → Usage → OneDrive
SharePoint Site Usage Site visit counts, file activity, storage per site — identifies abandoned sites 7 / 30 / 90 / 180 days Reports → Usage → SharePoint
Microsoft 365 Apps Usage Devices and platforms using Office apps — desktop, web, mobile per app (Word, Excel, etc.) 7 / 30 / 90 / 180 days Reports → Usage → Microsoft 365 Apps
Active Users Cross-service active user counts by day — shows overall M365 platform engagement 7 / 30 / 90 / 180 days Reports → Usage → Overview
Productivity Score Organisation-level productivity score across People, Technology, and Infrastructure dimensions Rolling 28 days Reports → Productivity score
9

Pull M365 Usage Reports via Graph PowerShell

Export Teams, Exchange, and OneDrive usage reports programmatically for custom dashboards, compliance reporting, or licence reclamation workflows.

PowerShell — Microsoft Graph

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

# Export Teams user activity (last 30 days) to CSV
Invoke-MgGraphRequest -Method GET "https://graph.microsoft.com/v1.0/reports/getTeamsUserActivityUserDetail(period='D30')" `
  -OutputFilePath "C:\Reports\TeamsActivity30d.csv"

# Export Exchange email activity (last 30 days)
Invoke-MgGraphRequest -Method GET "https://graph.microsoft.com/v1.0/reports/getEmailActivityUserDetail(period='D30')" `
  -OutputFilePath "C:\Reports\EmailActivity30d.csv"

# Export OneDrive usage by user (last 30 days)
Invoke-MgGraphRequest -Method GET "https://graph.microsoft.com/v1.0/reports/getOneDriveUsageAccountDetail(period='D30')" `
  -OutputFilePath "C:\Reports\OneDriveUsage30d.csv"

# Get M365 Apps activation counts
Invoke-MgGraphRequest -Method GET "https://graph.microsoft.com/v1.0/reports/getOffice365ActivationsUserDetail" `
  -OutputFilePath "C:\Reports\AppsActivations.csv"

Write-Host "All usage reports exported to C:\Reports\"

💡 Productivity Score vs Adoption Score

Microsoft 365 provides two strategic analytics products under Reports. Productivity Score measures organisational capability across People experiences (mobility, communication, collaboration, meetings, content) and Technology experiences (network connectivity, security, endpoint health) — rated as a percentage. Adoption Score (formerly the primary dashboard) focuses on service-by-service adoption benchmarks against similar organisations. Both are valuable for executive reporting and change management campaigns.

❤️‍🩹 Module 9: Health

The Health section provides real-time and historical visibility into the operational status of Microsoft 365 services and upcoming changes that may affect users. It contains Service health, Message center, and Windows release health.

Health Section Components

Component What It Covers Notification Type
Service health — Incidents Active disruptions affecting M365 service functionality — includes impact scope, affected users, and resolution ETA Urgent — immediate action or user communication may be required
Service health — Advisories Degraded performance, workarounds available — service partially functional but affected Informational — monitor and inform users if needed
Message center — Plan for change Feature changes and retirements with action-required dates — e.g. protocol deprecations, UI changes Action Required — may require admin configuration changes before the deadline
Message center — Stay informed New features being rolled out gradually — no admin action required, informational awareness Informational — consider user training or communication
Message center — Prevent or fix Issues that require admin action to prevent service impact — configuration corrections Urgent — review and act before impact date
Windows release health Windows client update status, known issues per update version — useful for IT teams managing device updates via Intune or WSUS Informational / Advisory
10

Query Service Health & Message Center via Graph PowerShell

Monitor active incidents and retrieve unread Message center posts programmatically — useful for automated alerting and change management workflows.

PowerShell — Microsoft Graph

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

# Get health overview for all M365 services
Get-MgServiceAnnouncementHealthOverview |
  Select-Object Service,Status |
  Sort-Object Status,Service |
  Format-Table -AutoSize

# Get all active incidents and advisories
Get-MgServiceAnnouncementIssue -Filter "Status ne 'resolved'" |
  Select-Object Title,Service,ImpactDescription,Status,StartDateTime |
  Sort-Object StartDateTime -Descending |
  Format-Table -AutoSize

# Get recent Message center posts (last 30 days)
$Since = (Get-Date).AddDays(-30).ToString("yyyy-MM-ddTHH:mm:ssZ")
Get-MgServiceAnnouncementMessage -Filter "LastModifiedDateTime ge $Since" |
  Select-Object Title,Category,Severity,ActionRequiredByDateTime,LastModifiedDateTime |
  Sort-Object LastModifiedDateTime -Descending |
  Format-Table -AutoSize

# Export action-required posts only
Get-MgServiceAnnouncementMessage -Filter "ActionRequiredByDateTime ne null" |
  Select-Object Title,Category,ActionRequiredByDateTime,LastModifiedDateTime |
  Export-Csv -Path "ActionRequired_MessageCenter.csv" -NoTypeInformation

🔗 Module 10: Admin Centers

The Admin centers link at the bottom of the M365 Admin Center left navigation provides direct access to all specialist administration portals. Each portal is scoped to a specific service workload and provides deeper configuration than the M365 Admin Center itself.

Microsoft 365 Specialist Admin Centers

Admin Center URL What You Manage Here Primary Certification
Exchange Admin Center admin.exchange.microsoft.com Mailboxes, mail flow, connectors, transport rules, migration, mobile devices MS-203
SharePoint Admin Center [tenant]-admin.sharepoint.com Site collections, storage, sharing policies, hub sites, content type hub MS-721 / MS-203
Teams Admin Center admin.teams.microsoft.com Meeting policies, voice, calling plans, Teams app permissions, analytics MS-700
Microsoft Intune (Endpoint Manager) intune.microsoft.com Device compliance, configuration profiles, app protection, autopilot MD-102
Microsoft Entra Admin Center entra.microsoft.com Identity, Conditional Access, PIM, MFA, SSPR, B2B, authentication methods SC-300 / MS-102
Microsoft Purview (Compliance) purview.microsoft.com DLP, retention policies, eDiscovery, Information Protection, audit logs SC-400 / MS-102
Microsoft Defender (Security) security.microsoft.com Defender for O365, threat protection, Safe Links, Safe Attachments, incidents SC-200
Power Platform Admin Center admin.powerplatform.microsoft.com Power Apps environments, data loss prevention policies, capacity PL-900
Azure Portal portal.azure.com Azure resources underpinning M365 — storage, compute, Entra, VPN, ExpressRoute AZ-104 / MS-102

💡 Admin Center Navigation Tip

Each specialist admin center uses its own permission model. An Exchange Administrator can access the EAC but has no access to the SharePoint Admin Center — and vice versa. The Global Reader role provides read-only access across all admin centers without service-specific admin permissions. Always test role scope in a non-production tenant before assigning in production — especially for custom Entra ID roles.

✅ Module 11: Setup & Guided Onboarding

The Setup section in the M365 Admin Center provides a guided checklist for configuring a new Microsoft 365 tenant from initial domain verification through to security hardening. Completing the setup checklist is the recommended starting point for all new tenant deployments.

DNS Records Required for Microsoft 365

Record Type Purpose Example Value Required For
TXT (Domain verification) Proves domain ownership to Microsoft before any services can be activated MS=msXXXXXXXX All M365 services — first step
MX Routes inbound email to Exchange Online mail servers contoso-com.mail.protection.outlook.com Exchange Online mail flow
CNAME (Autodiscover) Enables Outlook and mobile apps to automatically find Exchange server settings autodiscover.outlook.com Exchange Online Autodiscover
CNAME (Microsoft 365 Identity) Required for Microsoft 365 service continuity and mobile device management Various — shown in M365 Admin Center DNS records page Modern Auth, Intune MDM enrolment
TXT (SPF) Declares authorised sending IP addresses — prevents spoofing of your domain v=spf1 include:spf.protection.outlook.com -all Email authentication (EOP)
CNAME (DKIM) Enables email signing with DKIM — validates message integrity and sender domain selector1._domainkey pointing to Exchange Online Email authentication (DKIM)
TXT (DMARC) Instructs receiving mail servers on how to handle SPF/DKIM failures v=DMARC1; p=reject; rua=mailto:dmarc@contoso.com Email authentication (DMARC)
SRV (Skype for Business / Teams) Enables Teams federation and SIP discovery for telephony scenarios _sip._tls / _sipfederationtls._tcp Teams federation (if applicable)
11

Retrieve Required DNS Records for a Verified Domain

Pull the complete set of service DNS records Microsoft requires for a verified domain — MX, Autodiscover, SPF, DKIM, and federation records — for presentation to a DNS administrator.

PowerShell — Microsoft Graph

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

# List all verified domains in the tenant
Get-MgDomain | Select-Object Id,IsVerified,IsDefault,SupportedServices | Format-Table -AutoSize

# Get all required service DNS records for a domain
Get-MgDomainServiceConfigurationRecord -DomainId "contoso.com" |
  Select-Object RecordType,
    @{N="Label";E={$_.Label}},
    @{N="Ttl";E={$_.Ttl}},
    @{N="Value";E={
      if ($_.AdditionalProperties.mailExchange) { $_.AdditionalProperties.mailExchange }
      elseif ($_.AdditionalProperties.canonicalName) { $_.AdditionalProperties.canonicalName }
      elseif ($_.AdditionalProperties.text) { $_.AdditionalProperties.text }
      elseif ($_.AdditionalProperties.nameTarget) { $_.AdditionalProperties.nameTarget }
    }} |
  Format-Table -AutoSize

# Check DKIM signing configuration in Exchange Online
Connect-ExchangeOnline
Get-DkimSigningConfig -DomainName "contoso.com" |
  Select-Object Domain,Enabled,Status,Selector1CNAME,Selector2CNAME
12

Enable Security Defaults & Audit Authentication Methods

Verify Security Defaults status and report on MFA registration across the tenant — a critical baseline check during tenant hardening and a frequently tested MS-102 scenario.

PowerShell — Microsoft Graph

Connect-MgGraph -Scopes "Policy.Read.All","Policy.ReadWrite.ConditionalAccess","UserAuthenticationMethod.Read.All"

# Check Security Defaults status
$SecDefaults = Get-MgPolicyIdentitySecurityDefaultEnforcementPolicy
Write-Host "Security Defaults Enabled: $($SecDefaults.IsEnabled)" -ForegroundColor $(if ($SecDefaults.IsEnabled) {"Green"} else {"Red"})

# Enable Security Defaults (if no Conditional Access policies exist)
Update-MgPolicyIdentitySecurityDefaultEnforcementPolicy -IsEnabled $true

# Report on MFA registration per user
Get-MgReportAuthenticationMethodUserRegistrationDetail -All |
  Select-Object UserPrincipalName,
    IsMfaRegistered,
    IsMfaCapable,
    IsPasswordlessCapable,
    MethodsRegistered |
  Export-Csv -Path "MFARegistrationReport.csv" -NoTypeInformation

Write-Host "MFA registration report exported."

⚠️ Security Defaults vs Conditional Access

Security Defaults are free, pre-configured policies that enforce MFA for all users, block legacy authentication, and protect privileged roles. They are ideal for organisations with Microsoft 365 Business Basic/Standard or Azure AD Free. Conditional Access (requires Entra ID P1/P2 — included in M365 Business Premium and E3/E5) provides granular, policy-based control — you can enforce MFA only for specific apps, user groups, or risk levels. You cannot have both enabled simultaneously — enabling Conditional Access disables Security Defaults.

🎓 Module 12: MS-102 Certification Alignment

The MS-102: Microsoft 365 Administrator Expert certification validates your ability to evaluate, plan, migrate, deploy, and manage Microsoft 365 services. This entire course guide maps to the MS-102 exam skill areas. Passing MS-102 awards the Microsoft 365 Certified: Administrator Expert badge.

🎍 MS-102: Microsoft 365 Administrator Expert

MS-102 Exam Domain Weightings & Course Coverage

30%

Deploy and Manage a Microsoft 365 Tenant

Tenant setup, domain management, M365 Admin Center navigation, user and group management, licensing — Modules 1, 2, 3, 6, 7, 11

25%

Implement and Manage Identity and Access in Microsoft Entra ID

MFA, SSPR, Conditional Access, PIM, identity governance, B2B, authentication methods — Modules 4, 11

25%

Manage Security and Threats Using Microsoft 365 Defender

Defender for Office 365, threat protection policies, Secure Score, incident response — Module 10 (Security Admin Center)

20%

Manage Compliance Using Microsoft Purview

DLP policies, retention labels and policies, eDiscovery, information barriers, audit log — Module 10 (Compliance Admin Center)

✅ MS-102 Exam Study Tips

  • Practice all Graph PowerShell commands in a Microsoft 365 Developer Tenant (free 90-day sandbox at developer.microsoft.com/microsoft-365/dev-program) — the exam tests real-world task recognition
  • Understand the precise difference between Security Defaults, Conditional Access, and MFA per-user — when each applies and the licensing requirements for each
  • Know all built-in admin role scopes by name — the difference between User Administrator (can reset all non-admin users) vs Helpdesk Administrator (can only reset users in their scope) is a common exam scenario
  • Study Microsoft Entra ID Privileged Identity Management (PIM) in depth — just-in-time access, approval workflows, and access reviews are heavily tested in the identity domain
  • Understand the distinction between Microsoft Purview Information Protection labels (sensitivity labels) and retention labels — they serve different purposes and the exam tests both in depth
  • Know the exact licence requirements for Conditional Access (Entra ID P1), PIM (Entra ID P2), Defender for O365 P2 (M365 E5), and Purview compliance features
  • Practise M365 Admin Center navigation scenarios — the exam presents screenshots of admin portals and asks which portal and setting applies to a given scenario
  • Review the official MS-102 Study Guide on Microsoft Learn and map each skill to the modules in this guide

💡 Best Practices Summary

  • Always set the UsageLocation attribute before assigning any licence — licence assignment fails silently without it and blocks all M365 service provisioning for that user
  • Limit Global Administrator accounts to a maximum of 4 break-glass cloud-only accounts; use service-specific admin roles for all day-to-day administrative work
  • Enable Privileged Identity Management (PIM) for all privileged roles if you have Entra ID P2 — just-in-time access with approval is significantly more secure than permanent role assignments
  • Review Message center posts tagged Action Required every week — Microsoft retires protocols and changes default settings on published dates; missing the deadline can cause service disruption
  • Run the licence waste audit (Module 6 Step 7) monthly — reclaiming licences from inactive or departed users is the single most impactful cost optimisation action in most M365 tenants
  • Restrict user consent for OAuth apps to admin-approved apps only via Settings → Integrated apps — unrestricted user consent is a primary vector for consent-phishing attacks against M365 tenants
  • Configure email alerts for service health incidents in Health → Service health → Preferences — do not rely on manual portal checks to detect active M365 outages affecting your users
  • Verify all DNS records in the M365 Admin Center → Settings → Domains after any DNS migration or registrar change — a missing MX or Autodiscover record can break email flow and Outlook connectivity within minutes of propagation
  • Use group-based licence assignment (Entra ID → Groups → Licences) rather than per-user assignment for all new tenants — it scales, reduces manual error, and integrates with HR-driven lifecycle automation
  • Keep your Microsoft 365 Admin Center technical contact email accurate in Settings → Org profile — this address receives all critical service communications and billing notifications directly from Microsoft

📚 References & Further Reading

Leave a Comment

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