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.