Set folder permissions to O365 Group members PS

Iron Contributor

Hi Community,

 

Recently I needed to set a specific Default permissions to the Calendars of the members of a specific O365 Group.

As you know, O365 groups will not answer to the calls Get-DistributionGroup or Get-DistributionGroupMember in PowerShell. Instead, you need to use Get-UnifiedGroup, and there's no a Get-UnifiedGroup Member to easily pipe the action.

 

FcoManigrasso_0-1676565776836.png

So, finally I wrote the necessary lines to achieve this task. It could be also useful for other kind of permissions or bulk actions over a O365 Group members. Find below what I used, ( works good ).

 

Write-Host "Set GL Members LimitedDetails Default Calendar Permissions" -ForegroundColor green
foreach($user in Get-UnifiedGroup -Identity "<group address>" | Get-UnifiedGroupLinks -LinkType Member | Select Alias) {
$cal = $user.alias+”:\Calendar”
Set-MailboxFolderPermission -Identity $cal -User Default -AccessRights LimitedDetails -ErrorAction silentlycontinue
}

 

Feel free to adapt it to your own needs or maybe suggest other codes to do it. 

 

2 Replies

@FcoManigrasso 

 

This is how would do this:

 

Yes, there is another way to set default permissions for the Outlook calendars of members of a specific Office 365 group using PowerShell.

You can use the following command to retrieve the members of the Office 365 group:

 

Get-UnifiedGroupLinks -Identity <groupname> -LinkType Members

 


This will return the members of the group. You can then loop through the members and set the default permissions for their calendars using the following command:

 

 

Add-MailboxFolderPermission -Identity <useremail>:\Calendar -User <useremail> -AccessRights Editor

 

 
Replace <useremail> with the email address of the group member and <groupname> with the name of the Office 365 group.

You can put these commands together in a script to automate the process for all members of the group. Here's an example:

 

 

$members = Get-UnifiedGroupLinks -Identity <groupname> -LinkType Members foreach ($memberin $members) { $user = Get-Mailbox -Identity $member.PrimarySmtpAddress Add-MailboxFolderPermission -Identity $user:\Calendar -User $user.PrimarySmtpAddress -AccessRights Editor }

 

 
This script will retrieve the members of the group, loop through them, retrieve their mailbox, and set the default permissions for their calendar.
 
I hope this helps you.

Hi @Mark_Albin 

Thanks for taking your time to comment!

The first part is exactly what I explained in my post and, unfortunately, your script will not work, ( test it 😉 ).

If you would like to use the PrimarySmtpAdress instead of Alias, I'll suggest you to use this one, ( tested and works 😞

 

$members = Get-UnifiedGroupLinks -Identity <group address> -LinkType Members 
foreach ($member in $members){ 
$user = $member.PrimarySmtpAddress+":\Calendar" 
Set-MailboxFolderPermission -Identity $user -User Default -AccessRights LimitedDetails}

It's similar to my fist one but yes, you're right that this would work as well.

Hope this helps 🙂

 

Have a nice day.