Search code examples
powershellpermissionsactive-directorycalendarexchange-server

Powershell - SetMailboxFolderPermission only if AccessRights Not equal Reviewer


I'd like to make a script to set the access rights for everyone as "Reviewer" on the calendar of some users, members of an specific AD group.

I've already made a script which works weel to do that for all members of this group. I'd just want to make it a little smarter.

I'd like to schedule this script to run automatically once a week and to only apply on mailboxes on which accessrights are not already set as "Reviewer" for everyone.

Something like that :

$comm = Get-ADGroupMember GG_CalendarPermission-Reviewer | select -ExpandProperty name
$GetCalendar = Get-mailboxfolderpermission -identity $user":\calendar" -user default

foreach ($user in $comm) {    
  if ($GetCalendar.AccessRights -ne "Reviewer") {
       set-mailboxfolderpermission -identity $user":\calendar" -user Default -accessrights reviewer
  }
  elseif($GetCalendar.AccessRights -eq "Reviewer") {
       Write-Host "ALREADY DONE"
  }    
}

But the "if/Elseif" doesn't seems to work :/ Could you help me please ?

Thanks.


Solution

  • $comm = Get-ADGroupMember GG_CalendarPermission-Reviewer | select -ExpandProperty name
    
    foreach ($user in $comm) {
      $GetCalendar = Get-Mailboxfolderpermission -identity $user":\calendar" -user default
    
      If ($GetCalendar.AccessRights -ne "Reviewer") {
           Set-Mailboxfolderpermission -identity $user":\calendar" -user Default -accessrights reviewer
           Write-Host 'Done'
      }
      ElseIf($GetCalendar.AccessRights -eq "Reviewer") {
           Write-Host "ALREADY DONE"
      }    
    }