Who Is a Microsoft 365 Group Member?
A Microsoft 365 group member is a user or service account that belongs to a specific group. These members are granted access to resources associated with the group, including:
- Shared files and libraries in SharePoint.
- Collaboration spaces in Microsoft Teams.
- Shared mailboxes and calendars in Outlook.
Group members can have different roles:
- Owner: Manages the group’s settings and memberships.
- Member: Participates in the group’s resources.
Why Use New-MgGroupMember?
The New-MgGroupMember cmdlet simplifies adding users to Microsoft 365 groups, providing key benefits like:
- Automation: Add multiple users programmatically, reducing manual effort.
- Scalability: Handle group membership tasks for large organizations with ease.
- Integration: Combine with other cmdlets for workflows like bulk user onboarding or dynamic membership management.
Setting Up Microsoft Graph PowerShell
To use the New-MgGroupMember cmdlet, you need to set up the Microsoft Graph PowerShell module.
- Install the Module:
Install-Module Microsoft.Graph -Scope CurrentUser - Connect to Microsoft Graph:
Connect-MgGraph - Disconnect After Use:
Disconnect-MgGraph
Practical Examples of New-MgGroupMember
Here are some common use cases for adding members to groups using New-MgGroupMember:
Adding a Single Member to a Group
To add a single user to a group, use:
$groupId = "d9f6b5c5-67e5-41d1-9af0-8c85b6f15d0c"
$userId = "5c5d5f65-1d6b-4141-a5e5-b8c85d0c6e8f"
New-MgGroupMember -GroupId $groupId -DirectoryObjectId $userId
This command adds the user with the specified userId to the group identified by groupId.
Adding Multiple Members to a Group
If you need to add multiple users to a group, iterate through an array of user IDs:
$groupId = "d9f6b5c5-67e5-41d1-9af0-8c85b6f15d0c"
$userIds = @("5c5d5f65-1d6b-4141-a5e5-b8c85d0c6e8f", "6d7e8f70-6e7b-41d2-a6f7-9c85d7f16e9d")
foreach ($userId in $userIds) {
New-MgGroupMember -GroupId $groupId -DirectoryObjectId $userId
}
This script loops through the user IDs and adds each one to the specified group.
Adding Members from a CSV File
For large-scale membership updates, import user details from a CSV file.
CSV File Example:
UserPrincipalName,GroupId user1@domain.com,d9f6b5c5-67e5-41d1-9af0-8c85b6f15d0c user2@domain.com,d9f6b5c5-67e5-41d1-9af0-8c85b6f15d0c
$csvPath = "C:\path\to\your\members.csv"
$members = Import-Csv -Path $csvPath
foreach ($member in $members) {
$user = Get-MgUser -UserPrincipalName $member.UserPrincipalName
New-MgGroupMember -GroupId $member.GroupId -DirectoryObjectId $user.Id
}
This script reads the user details from the CSV file, retrieves their IDs using Get-MgUser, and adds them to the appropriate group.
Key Parameters & Configuration Options (Quick Reference)
Understanding the core parameters helps administrators add members efficiently and avoid common issues.
| Parameter | Required | Purpose |
| GroupId | Yes | Specifies the target group |
| DirectoryObjectId | Yes | Object ID of the user/group being added |
| BodyParameter | Optional | Advanced membership reference configuration |
| WhatIf | Optional | Simulate operation before execution |
| Confirm | Optional | Prompt for confirmation |
When Should You Use New-MgGroupMember?
Use the New-MgGroupMember cmdlet in the following scenarios:
- Adding users to Microsoft 365 groups automatically
- Bulk onboarding workflows
- Automating department or project-based access
- Managing security group memberships programmatically
- Assigning access to Teams, SharePoint, and Planner resources
New-MgGroupMember vs Related Group Cmdlets
| Cmdlet | Purpose | When to Use |
| New-MgGroupMember | Add member to a group | Membership provisioning |
| Get-MgGroupMember | Retrieve group members | Auditing & reporting |
| Remove-MgGroupMemberByRef | Remove members | Access cleanup |
| New-MgGroup | Create a new group | Provisioning groups |
Real-World Automation Scenarios
-
Bulk Employee Onboarding
- Add newly hired employees to required groups automatically
- Assign access based on department or role
-
Project-Based Group Membership
- Add users to project collaboration groups dynamically
- Ensure access to Teams, SharePoint, and Planner resources
-
CSV-Based Bulk Membership Management
- Import users from CSV files
- Add hundreds of users efficiently using loops 💡 PowerShell automation significantly reduces manual effort for large environments.
-
Security & Access Control Automation
- Add users to security groups for RBAC
- Grant application or resource access programmatically
Common Limitations & Considerations
Strengths
- Supports automation at scale/li>
- Works with Microsoft 365 groups and security groups
- Enables bulk membership operations
Limitations
- Requires Object IDs instead of display names
- Dynamic groups generally do not allow direct membership additions
- Adding too many members simultaneously may hit API limitations (20 members per request in certain Graph operations)
Pro Tips for Using New-MgGroupMember
- Always validate whether a user is already a member before adding
- Use CSV imports for large-scale operations
- Retrieve Object IDs dynamically using Get-MgUser and Get-MgGroup
- Use -WhatIf before bulk operations
- Log results for troubleshooting and auditing
Example: End-to-End Membership Provisioning Workflow
A practical automation workflow could look like:
- Retrieve target group using Get-MgGroup
- Retrieve users using Get-MgUser
- Add users using New-MgGroupMember
- Verify membership using Get-MgGroupMember
- Export results for auditing
Advanced Tips for New-MgGroupMember Usage
- Validate Membership Before Adding: Before adding a user, check if they’re already a member to avoid errors:
$existingMembers = Get-MgGroupMember -GroupId $groupId | Select-Object Id
if ($userId -notin $existingMembers.Id) {
New-MgGroupMember -GroupId $groupId -DirectoryObjectId $userId
}
try {
New-MgGroupMember -GroupId $groupId -DirectoryObjectId $userId
Add-Content -Path "C:\Logs\GroupMembershipLog.txt" -Value "Added $userId to $groupId successfully."
} catch {
Add-Content -Path "C:\Logs\GroupMembershipLog.txt" -Value "Failed to add $userId to $groupId: $_"
}
New-MgGroupMember -GroupId $groupId -DirectoryObjectId $userId -WhatIf
Before running New-MgGroupMember, run a quick membership check using Get‑MgGroupMember to see if the user is already a member. This helps you avoid common failures like “user already exists in group”.
$members = Get-MgGroupMember -GroupId $groupId
if ($members.Id -contains $userId) {
Write-Host "User is already a member — skipping"
} else {
New-MgGroupMember -GroupId $groupId -DirectoryObjectId $userId
}
When adding many users (via loop or CSV), wrap the call in Try/Catch, log successes + failures, and consider writing an outcome CSV or report. This gives you a clear audit trail and helps troubleshooting.
$members = Get-MgGroupMember -GroupId $groupId
foreach ($userId in $userIdList) {
try {
New-MgGroupMember -GroupId $groupId -DirectoryObjectId $userId
Write-Host "Added user $userId"
# Log success
} catch {
Write-Host "Failed to add user $userId. Error: $_"
# Log failure
}
}
Frequently Asked Questions (FAQs)
- What is New-MgGroupMember used for?
New-MgGroupMember is used to add users or other directory objects to Microsoft 365 groups and security groups using Graph PowerShell. - What permissions are required?
You typically need permissions such as GroupMember.ReadWrite.All and sometimes User.ReadWrite.All. - Can I add multiple users at once?
Yes. While the cmdlet itself adds one member at a time, PowerShell loops and CSV imports are commonly used for bulk additions. -
Can I add users to dynamic groups?
Generally no. Dynamic group memberships are controlled by membership rules and not manual additions. - Does this cmdlet work with Microsoft Teams?
Yes. Since Teams are backed by Microsoft 365 groups, adding members to the group also grants Team access.
Conclusion
The New-MgGroupMember cmdlet is an indispensable tool for Microsoft 365 administrators, enabling efficient and automated group membership management. Whether adding individual users, updating multiple memberships, or handling bulk updates from CSV files, this cmdlet simplifies the process and ensures accuracy.
By mastering New-MgGroupMember and incorporating best practices, you can streamline group management workflows and enhance collaboration across your organization.
🚀 Community Edition Released!
Try the M365Corner Microsoft 365 Reporting Tool — your DIY pack with 20+ out-of-the-box M365 reports for Users, Groups, and Teams.
Get it on GitHub Know More