Private/Permissions/Helper/Get-SendOnBehalfPerms.ps1
function Get-SendOnBehalfPerms { [CmdletBinding()] Param ( [parameter(ValueFromPipeline = $true)] $MailboxList, [parameter()] [hashtable] $ADHashDN, [parameter()] [hashtable] $ADHashCN, [parameter()] [hashtable] $ADHashType, [parameter()] [hashtable] $ADHashDisplay ) begin { } process { foreach ($Mailbox in $MailboxList) { Write-Verbose "Inspecting: `t $Mailbox" foreach ($GrantedSOB in $Mailbox.GrantSendOnBehalfTo) { $DisplayName = $ADHashCN["$GrantedSOB"].DisplayName Write-Verbose "Has Send On Behalf DN: `t $DisplayName" Write-Verbose " CN: `t $GrantedSOB" New-Object -TypeName psobject -property @{ Object = $Mailbox.DisplayName UserPrincipalName = $Mailbox.UserPrincipalName PrimarySMTPAddress = $Mailbox.PrimarySMTPAddress Granted = $ADHashCN["$GrantedSOB"].DisplayName GrantedUPN = $ADHashCN["$GrantedSOB"].UserPrincipalName GrantedSMTP = $ADHashCN["$GrantedSOB"].PrimarySMTPAddress Checking = $GrantedSOB TypeDetails = $ADHashType."$($ADHashCN["$GrantedSOB"].msExchRecipientTypeDetails)" DisplayType = $ADHashDisplay."$($ADHashCN["$GrantedSOB"].msExchRecipientDisplayType)" Permission = "SendOnBehalf" } } } } end { } } |