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>














