Groups, Resources & Contacts
MS-203 Exam Alignment
MS-203
Skill Area 3 — Manage recipient objects and resources: create and manage the four Exchange Online group types, configure resource mailboxes with calendar processing (booking policies), and manage mail contacts and mail users.
- Know all four group types the EAC manages and when to use each (per Microsoft Learn: M365 Groups, distribution groups, mail-enabled security groups, dynamic distribution groups)
- Understand dynamic distribution group membership — filter-based, evaluated at send time
- Configure room mailbox booking with Set-CalendarProcessing — AutoAccept, booking window, delegates
- Know the difference between a mail contact and a mail user
- Understand which group settings control external senders and message approval (moderation)
👥 The Four Group Types in Exchange Online
| Group Type | Purpose | Can Secure Resources | Membership | Extras |
|---|---|---|---|---|
| Microsoft 365 Group | Full collaboration — shared inbox, shared calendar, SharePoint site, Planner, and optionally a Team | Yes (many workloads) | Static (or dynamic with Entra ID P1) | Guest access, self-service creation, connected services |
| Distribution Group | Email delivery to all members — a classic distribution list | No | Static | Moderation, delivery management, MailTips |
| Mail-Enabled Security Group | Grants permissions to resources AND receives email at one address | Yes | Static | Dual-purpose object — security principal + distribution list |
| Dynamic Distribution Group | Email delivery to a membership calculated from recipient filters | No | Dynamic — recalculated at each send | Attribute-based (department, office, custom attributes) |
💡 Choosing the Right Group — Decision Guide
- Need shared files, a Team, or a shared calendar? → Microsoft 365 Group
- Only need to email a fixed set of people? → Distribution Group
- Need to email a set of people AND grant them access to something? → Mail-Enabled Security Group
- Need to email "everyone in Sales" without maintaining the list manually? → Dynamic Distribution Group
➕ Creating a Group — Portal Walkthrough
EAC › Recipients › Groups › + Add a group
Connect-ExchangeOnline # 1. Microsoft 365 Group New-UnifiedGroup -DisplayName "Project Phoenix" -Alias "phoenix" -PrimarySmtpAddress "phoenix@techcareers.in" -AccessType Private -Owner "amit@techcareers.in" # 2. Distribution Group New-DistributionGroup -Name "All Managers" -Alias "allmanagers" -PrimarySmtpAddress "allmanagers@techcareers.in" -Type Distribution # 3. Mail-Enabled Security Group New-DistributionGroup -Name "Finance Secure" -Alias "financesecure" -PrimarySmtpAddress "financesecure@techcareers.in" -Type Security # 4. Dynamic Distribution Group — everyone in Sales New-DynamicDistributionGroup -Name "All Sales" -Alias "allsales" -PrimarySmtpAddress "allsales@techcareers.in" -IncludedRecipients MailboxUsers -ConditionalDepartment "Sales" # Add a member to a static group Add-DistributionGroupMember -Identity "All Managers" -Member "priya@techcareers.in" # Preview dynamic group membership BEFORE first send $ddg = Get-DynamicDistributionGroup "All Sales" Get-Recipient -RecipientPreviewFilter $ddg.RecipientFilter | Select-Object DisplayName,Department
⚠️ Dynamic Distribution Groups — Membership Is Calculated at Send Time
A dynamic distribution group has no stored member list. Every time a message is sent to the group, Exchange Online evaluates the recipient filter and delivers to whoever matches at that moment. A user whose Department attribute changes to "Sales" today automatically receives the next message sent to All Sales — no admin action needed. This also means attribute hygiene matters: an empty Department field silently excludes a user.
⚙️ Group Delivery Management & Moderation
Every group's settings pages control who can send to it and whether messages need approval:
| Setting | What It Controls | PowerShell |
|---|---|---|
| External senders | Whether people outside the organisation can email the group. Off by default — a common cause of "external senders get NDRs" tickets | Set-DistributionGroup -RequireSenderAuthenticationEnabled $false |
| Delivery management | Restrict which internal senders are allowed to email the group | Set-DistributionGroup -AcceptMessagesOnlyFrom |
| Message approval (moderation) | Route messages to a moderator for approval before delivery to members | Set-DistributionGroup -ModerationEnabled $true -ModeratedBy |
| Join/leave restrictions | Open, closed, or owner-approval membership requests | Set-DistributionGroup -MemberJoinRestriction ApprovalRequired |
| Hidden from GAL | Hide the group from the address book | Set-DistributionGroup -HiddenFromAddressListsEnabled $true |
🏢 Resources — Room & Equipment Mailboxes
The Recipients → Resources page manages the two resource mailbox types. Both are free (no license) and both work through calendar-based booking: users invite the resource to a meeting, and the resource accepts or declines automatically based on its calendar processing policy.
| Type | Represents | Key Properties |
|---|---|---|
| Room mailbox | A physical location — meeting room, boardroom, training room | Capacity, location, Hide from GAL toggle (documented in the EAC What's New notes under resource General settings) |
| Equipment mailbox | A movable asset — company car, projector, AV kit, laptop pool | No capacity/location; otherwise identical booking behaviour |
Booking Options — Calendar Processing
Booking behaviour is controlled per-resource. In the EAC these appear under the resource's Booking options; in PowerShell they map to Set-CalendarProcessing:
| Booking Option | Behaviour | PowerShell Parameter |
|---|---|---|
| Automatically accept | Accept when free, decline when conflicting — no human involved | -AutomateProcessing AutoAccept |
| Delegate approval | Requests are routed to named delegates who accept/decline manually | -AutomateProcessing AutoUpdate -ResourceDelegates |
| Booking window | How far in advance a booking can be made (default 180 days) | -BookingWindowInDays |
| Maximum duration | Longest single booking allowed (default 24 hours = 1440 min) | -MaximumDurationInMinutes |
| Repeating meetings | Whether recurring bookings are permitted | -AllowRecurringMeetings |
| Conflicts | Whether double-booking is allowed (almost always no) | -AllowConflicts |
Connect-ExchangeOnline # Create the room New-Mailbox -Room -Name "Boardroom A" -DisplayName "Boardroom A" -Alias "boardrooma" -PrimarySmtpAddress "boardrooma@techcareers.in" # Set capacity and location Set-Mailbox -Identity "boardrooma@techcareers.in" -ResourceCapacity 20 -Office "Mumbai HQ - Floor 3" # Booking policy: auto-accept, 8h max, 90-day window, no conflicts Set-CalendarProcessing -Identity "boardrooma@techcareers.in" -AutomateProcessing AutoAccept -AllowConflicts $false -BookingWindowInDays 90 -MaximumDurationInMinutes 480 -AllowRecurringMeetings $true -AddOrganizerToSubject $true -DeleteComments $false -DeleteSubject $false # Equipment mailbox with delegate approval instead of auto-accept New-Mailbox -Equipment -Name "Company Car" -Alias "companycar" -PrimarySmtpAddress "companycar@techcareers.in" Set-CalendarProcessing -Identity "companycar@techcareers.in" -AutomateProcessing AutoUpdate -ResourceDelegates "fleet@techcareers.in" # Verify Get-CalendarProcessing -Identity "boardrooma@techcareers.in" | Select-Object AutomateProcessing,BookingWindowInDays,MaximumDurationInMinutes,AllowConflicts
📇 Contacts — Mail Contacts & Mail Users
The Recipients → Contacts page manages external-recipient objects — people outside your organisation who need to appear in your GAL:
| Object | What It Is | Can Sign In | Typical Use |
|---|---|---|---|
| Mail contact | A GAL entry pointing to an external email address — no account, no mailbox | No | External partners, vendors, and consultants who staff frequently email; members of distribution lists |
| Mail user | An account in your directory with sign-in credentials but whose email address is external — no Exchange Online mailbox | Yes | Contractors who need access to internal resources (SharePoint, apps) but keep their own external mailbox |
Connect-ExchangeOnline # Mail contact — external partner in the GAL New-MailContact -Name "Rahul Vendor" -ExternalEmailAddress "rahul@vendorco.com" -Alias "rahulvendor" # Add the contact to a distribution group Add-DistributionGroupMember -Identity "Project Partners" -Member "rahulvendor" # List all mail contacts Get-MailContact -ResultSize Unlimited | Select-Object DisplayName,ExternalEmailAddress # List all mail users Get-MailUser -ResultSize Unlimited | Select-Object DisplayName,ExternalEmailAddress,UserPrincipalName
💡 Best Practices
- Prefer Microsoft 365 Groups over classic distribution groups for new team collaboration — they include files, calendar, and optional Teams integration
- Use dynamic distribution groups for org-wide or department-wide lists to eliminate manual membership maintenance — but enforce directory attribute hygiene first
- Always preview dynamic membership with Get-Recipient -RecipientPreviewFilter before announcing a new dynamic group
- Leave "external senders" disabled on internal groups; enable it deliberately only for groups meant to receive outside email (e.g. info@, careers@)
- Set AddOrganizerToSubject on room mailboxes so room calendars show who booked each slot
- Use delegate approval (AutoUpdate + ResourceDelegates) for high-demand or restricted resources; AutoAccept for everything else
- Use mail contacts, not shadow user accounts, for external people who only need to appear in the GAL or in distribution lists
🎓 Interview Q&A
The Finance team needs a single email address that receives departmental mail AND grants its members access to a restricted SharePoint document library. Which object should you create?
A user transfers from Marketing to Sales and their Department attribute is updated. The organisation uses a dynamic distribution group "All Sales" filtered on Department = Sales. What must an administrator do so the user receives future All Sales messages?
A boardroom must automatically accept bookings when free, reject double-bookings, and limit meetings to 4 hours. Which PowerShell command applies this policy?
External customers emailing careers@contoso.com (a distribution group) receive delivery failures, while internal employees can email it successfully. What should you change?
A contractor keeps their own external mailbox at their company but needs to sign in to your tenant to access SharePoint and internal apps. They should also appear in the GAL with their external address. Which object should you create?