This is my first post; I'm pretty new to powershell.
At a customer request I am changing the Calendar access permissions for all user in their Exchange 365. I set the default to 'Reviewer' for all mailboxes using code found on Spiceworks :
$users = get-mailbox
foreach ($user in $users) {set-mailboxfolderpermission -identity $($user.alias):\calendar" -User Default -AccessRights Reviewer -confirm:$false}
And I am able to remove all other user's permissions from a specified mailbox using script I concocted from the above:
$users = get-mailbox
foreach ($user in $users) {Write-host -foregroundcolor green "Removing permission for $($user.alias)..."
remove-mailboxfolderpermission -identity username:\calendar -user $user.alias -confirm:$false}
I was hoping to workout how to remove all explicit permissions from all mailboxes in one command for any future use; I think it will involve nested foreach statements but I'm struggling to get the double loop right.
It needs to run something like this:
$users = get-mailbox
foreach $user {remove-mailboxfolderpermission -identity user1.alias:\calendar -user $user1.alias}
foreach $user {remove-mailboxfolderpermission -identity user1.alias:\calendar -user $user2.alias}
foreach $user {remove-mailboxfolderpermission -identity user1.alias:\calendar -user $user3.alias}
foreach $user {remove-mailboxfolderpermission -identity user1.alias:\calendar -user $user4.alias}
foreach $user {remove-mailboxfolderpermission -identity user2.alias:\calendar -user $user1.alias}
foreach $user {remove-mailboxfolderpermission -identity user2.alias:\calendar -user $user2.alias}
foreach $user {remove-mailboxfolderpermission -identity user2.alias:\calendar -user $user3.alias}
foreach $user {remove-mailboxfolderpermission -identity user2.alias:\calendar -user $user4.alias}
foreach $user {remove-mailboxfolderpermission -identity user3.alias:\calendar -user $user1.alias}
Etc
But it's pulling the user.alias from the same array so in my experiments it either runs once (the same entry for -identity and -user) or it fails with a error or runs forever.
Any assistance, tips or general advice regarding nested ForEach pulling from the same source would be helpful.
ForEach ($permission in $permissions) { code to remove permission }
– Bryce McDonald