Changing Send On Behalf setting in Exchange 2010 / Exchange 2013 or Exchange 2016 is quite simple task that can be easily done from GUI. It gets a bit more complicated when you try to add/change Send On Behalf rights from PowerShell.
Problem Description
Usually most people will go for
Set-Mailbox <UserToAddPermissionsTo> -GrantSendOnBehalf <UserToGivePermissionsTo>
It's a simple command but it actually does a very dangerous thing… it overwrites current GrantSendOnBehalf permissions. While it's not a problem when it's first time you set it up, it's a big deal when there are already multiple people added to GrantSendOnBehalf field.
Solution
Fortunately there's a simple way to do this to not overwrite this setting. Below you can find couple of commands that should make your life simpler.
function Add-DistributionListGrantSendOnBehalfTo { Param($newTrustee, $targetDistributionGroup) Set-DistributionGroup $targetDistributionGroup -GrantSendOnBehalfTo @{add=$newTrustee} } function Remove-DistributionListGrantSendOnBehalfTo { Param($oldTrustee, $targetDistributionGroup) Set-DistributionGroup $targetDistributionGroup -GrantSendOnBehalfTo @{remove=$oldTrustee} } function Replace-DistributionListGrantSendOnBehalfTo { Param($oldTrustee, $newTrustee, $targetDistributionGroup) Set-DistributionGroup $targetDistributionGroup -GrantSendOnBehalfTo @{add=$newTrustee} Set-DistributionGroup $targetDistributionGroup -GrantSendOnBehalfTo @{remove=$oldTrustee} } function Remove-MailboxGrantSendOnBehalfTo { Param($oldTrustee, $targetMailbox) Set-Mailbox $targetMailbox -GrantSendOnBehalfTo @{remove=$oldTrustee} } function Add-MailboxGrantSendOnBehalfTo { Param($newTrustee, $targetMailbox) Set-Mailbox $targetMailbox -GrantSendOnBehalfTo @{add=$newTrustee} } function Replace-MailboxGrantSendOnBehalfTo { Param($oldTrustee, $newTrustee, $targetMailbox) Set-Mailbox $targetMailbox -GrantSendOnBehalfTo @{remove=$oldTrustee} Set-Mailbox $targetMailbox -GrantSendOnBehalfTo @{add=$newTrustee} }
Simple usage of Exchange PowerShell commands from above:
Add-MailboxGrantSendOnBehalfTo -NewTrustee <AllowedUserToSendOnBehalf> -TargetMailbox <UserMailboxToManage> Replace-MailboxGrantSendOnBehalfTo -NewTrustee <AllowedUserToSendOnBehalf> -OldTrustee <ReplacedUserToSendOnBehalf> -TargetMailbox <UserMailboxToManage> Remove-MailboxGrantSendOnBehalfTo -OldTrustee <ReplacedUserToSendOnBehalf> -TargetMailbox <UserMailboxToManage>