Microsoft 365 Admin Center: Complete Practical Course — Matching the M365 Admin Center Tabs & MS-102 Certification
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.
M365 Admin Center Overview
Navigating the Home dashboard, Quick tasks panel, and the full M365 portal structure
Users
Active users, Guest users, Contacts, Deleted users — creation, licensing, and Graph PowerShell
Teams & Groups
Microsoft 365 Groups, Distribution lists, Shared mailboxes, and Dynamic group membership
Roles
Built-in admin roles, custom roles, Entra ID integration, and least-privilege delegation
Resources
Rooms & equipment, SharePoint sites, and resource account management
Billing & Licenses
Products, license assignment, purchase services, invoices, and license cost auditing
Settings
Org settings, domains, security & privacy, integrated apps, and search configuration
Reports & Usage
Usage reports, Productivity Score, Adoption Score, and data export for governance
Health
Service health dashboard, Message center, planned maintenance, and Windows release health
Admin Centers
Exchange, SharePoint, Teams, Intune, Entra, Compliance, Security — navigation and scope
Setup & Guided Onboarding
Guided setup wizard, domain verification, MX record configuration, and tenant hardening
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
👤 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 |
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.
# 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
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.
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 |
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.
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 |
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.
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 |
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.
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 |
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).
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
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.
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 |
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.
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 |
Pull M365 Usage Reports via Graph PowerShell
Export Teams, Exchange, and OneDrive usage reports programmatically for custom dashboards, compliance reporting, or licence reclamation workflows.
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 |
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.
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) |
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.
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
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.
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 Exam Domain Weightings & Course Coverage
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
Implement and Manage Identity and Access in Microsoft Entra ID
MFA, SSPR, Conditional Access, PIM, identity governance, B2B, authentication methods — Modules 4, 11
Manage Security and Threats Using Microsoft 365 Defender
Defender for Office 365, threat protection policies, Secure Score, incident response — Module 10 (Security Admin Center)
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
- 🔗 Microsoft 365 Admin Center Overview — Microsoft Learn
- 🔗 Microsoft Graph PowerShell SDK — Microsoft Learn
- 🔗 MS-102: Microsoft 365 Administrator Expert Certification — Microsoft Learn
- 🔗 Microsoft 365 Admin Centre Mobile App — Microsoft Learn
- 🔗 Security Defaults in Microsoft Entra ID — Microsoft Learn
- 🔗 Microsoft 365 Reports in the Admin Center — Microsoft Learn
- 🔗 Microsoft 365 DNS Records for All Services — Microsoft Learn
- 🔗 Microsoft 365 Admin Center — admin.microsoft.com
- 🔗 Microsoft 365 Developer Program (Free Sandbox) — developer.microsoft.com
