Step 1: Connect to Exchange Online using PowerShell

$Credential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirection
Import-PSSession $Session

Step 2: Generate a list of all mailboxes

$users = Get-Mailbox -Resultsize Unlimited

Step 3: Set Default access to Reviewer for all User mailboxes

foreach ($user in $users) {
Write-Host -ForegroundColor green “Setting permission for $($user.alias)…”
Set-MailboxFolderPermission -Identity “$($user.alias):\calendar” -User Default -AccessRights Reviewer
}

?: if the command says “Action can not be performed, because … was not found.”
It is because the user has changed language and you should run the command again, but substitute “\calendar with the language equivilant.

Step 4: Generate a list of all Room mailboxes

$users = Get-Mailbox -Resultsize Unlimited | Where {$_.ResourceType -eq “Room”} | Select -ExpandProperty Alias

Step 5: Set Default access to Reviewer for all Room mailboxes

foreach ($user in $users) {
Write-Host -ForegroundColor green “Setting permission for $($user.alias)…”
Set-MailboxFolderPermission -Identity “$($user.alias):\calendar” -User Default -AccessRights Reviewer
}

?: if the command says “Action can not be performed, because … was not found.”
It is because the user has changed language and you should run the command again, but substitute “\calendar with the language equivilant.

Categories: Guides