get-onPremFolderPermissions.ps1

<#
    .SYNOPSIS
 
    This function utilizes exchange on premises and searches for all send as rights across all recipients.
 
    .DESCRIPTION
 
    This function utilizes exchange on premises and searches for all send as rights across all recipients.
 
    .PARAMETER originalDLConfiguration
 
    The mail attribute of the group to search.
 
    .OUTPUTS
 
    Returns a list of all objects with send-As rights and exports them.
 
    .EXAMPLE
 
    get-o365dlconfiguration -groupSMTPAddress Address
 
    #>

    Function get-onPremFolderPermissions
     {
        [cmdletbinding()]

        Param
        (
            [Parameter(Mandatory = $true)]
            $originalDLConfiguration,
            [Parameter(Mandatory=$false)]
            $collectedData=$NULL
        )

        #Declare function variables.

        [array]$functionFolderRightsUsers=@()
        [int]$functionCounter=0

        Out-LogFile -string "********************************************************************************"
        Out-LogFile -string "BEGIN get-onPremFolderPermissions"
        Out-LogFile -string "********************************************************************************"

        try 
        {
            out-logfile -string "Test for folder permissions."

            $ProgressDelta = 100/($collectedData.count); $PercentComplete = 0; $MbxNumber = 0

            foreach ($recipient in $collectedData)
            {
                $MbxNumber++

                write-progress -activity "Processing Recipient" -status $recipient.identity -PercentComplete $PercentComplete

                $PercentComplete += $ProgressDelta

                if ($recipient.user.tostring() -notlike "*S-1-5-21*")
                {
                    write-host $recipient.user
                    write-host $originalDLConfiguration.samAccountName

                    if ($recipient.user.tostring() -eq $originalDLConfiguration.samAccountName)
                    {
                        out-logfile -string ("Mailbox folder permission found - recording."+$recipient.identity)
                        $functionFolderRightsUsers+=$recipient
                    }
                } 
            }
        }
        catch 
        {
            out-logfile -string "Error attempting to invoke command to gather all send as permissions."
            out-logfile -string $_ -isError:$TRUE
        }

        out-logfile -string $functionFolderRightsUsers

        write-progress -Activity "Processing Recipient" -Completed

        Out-LogFile -string "********************************************************************************"
        Out-LogFile -string "END get-onPremFolderPermissions"
        Out-LogFile -string "********************************************************************************" 

        if ($functionFolderRightsUsers.count -gt 0)
        {
            return $functionFolderRightsUsers
        }
    }