1

特定のADグループのメンバーである一部のユーザーのカレンダーで、全員のアクセス権を「レビュー担当者」として設定するスクリプトを作成します。Powershell - SetMailboxFolderPermission AccessRightsが等しくない場合レビュー者

私は既に、このグループのすべてのメンバーのためにそれを行うためにweelを動作させるスクリプトを作成しました。 私はちょっと賢くしたいと思うだけです。

このスクリプトは、週に一度自動的に実行され、アクセス権がすべてのユーザーに対して「レビュー担当者」として設定されていないメールボックスにのみ適用されるようにスケジュールしたいと考えています。そのような

何か:

$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" 
    }  
} 

しかし、 "IF/ELSEIFは、" 働くようではありません:/ あなたは私を助けてくださいもらえますか?

ありがとうございました。

+0

$ GetCalendarコードはforeach文の中に入れてください。 –

+0

お手数ですが、Vincentのお手伝いをしてくれてありがとうございます。これは、foreachステートメント内の$ Get-Calendarで動作します:) "Set-Mailboxfolderpermission"コマンドが正常に適用されたとき、firts "if"の後ろに{Write-Host "Done"}を追加するにはどうすればよいですか? ? – David

答えて

0
$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" 
    }  
} 
+0

これは完璧に動作します。もう一度お世話になりました:) – David

関連する問題