#WorkwithMailboxpermissions.ps1 / rb / 2020 #adde oder entferne einen Benutzer an einer shared Mailbox # erforderliche Provisioning-Parameter der Resource: # $username # wird immer von Tenfold mitgeliefert # $cred # konfigurierte Zugangsdaten für den Exchangeserver # $connectionUri # z.B. "https://myexchangesrv/PowerShell" # $mailbox # Name der sharedMailbox # erforderliche Resourcenbedingungen: # "Resource - New" # "Resource - Delete" ############################################################## $username = $params.request.person.masterdata.userName $connectionUri = $params.connectionUri $mailbox = $params.mailbox if(!($session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $connectionUri -Authentication Basic -Credential $cred )) #If ($session.state -ne 'Opened') { return "Failed to create remote PowerShell session to $connectionUri" exit } Import-PSSession $session -AllowClobber #Import-module ActiveDirectory $status = get-mailboxpermission -identity $mailbox -user $username if($status.IsValid) { # echo "$username have already access -->remove from mailbox $mailbox" try { try { Remove-MailboxPermission -Identity $mailbox -User $username -AccessRights FullAccess,DeleteItem,ReadPermission,ChangePermission -InheritanceType All -confirm:$false } catch { return "failed Remove-MailboxPermission $username from $mailbox ";exit; } Get-User -identity $mailbox | Remove-ADPermission -user $username -ExtendedRights "Send As" -confirm:$false } catch { Remove-PSSession $session return "error: failed to remove permissions of $username from mailbox $mailbox"; exit;} } else { # echo "$username have no rights --> add to mailbox $mailbox" try { try { Add-MailboxPermission -Identity $mailbox -User $username -AccessRights FullAccess -InheritanceType All -confirm:$false} catch { return "failed Remove-MailboxPermission $username from $mailbox ";exit; } Get-User -identity $mailbox | Add-ADPermission -user $username -ExtendedRights "Send As" -confirm:$false } catch { Remove-PSSession $session return "error: failed to remove permissions of $username from mailbox $mailbox"; exit; } } Remove-PSSession $session exit #############################################################