Exchange Need Public Folder Path and Email Addresses

Welcome Forums General PowerShell Q&A Exchange Need Public Folder Path and Email Addresses

This topic contains 1 reply, has 2 voices, and was last updated by

3 years ago.

  • Author
  • #50830

    Topics: 9
    Replies: 20
    Points: 0
    Rank: Member

    I need to generate a report that lists all the Mail Enabled public folders with their associated path (i.e. \IT\OPKBranch\ServiceDesk) and all email addresses associated with that folder. This is what I have and it just gives me a jumbled mess.

    $mailenabled = get-publicfolder -Recurse -Resultsize unlimited | select Identity,MailEnabled | where {$_.mailenabled -eq $true}
    $emailaddresses = $mailenabled.identity | get-mailpublicfolder | select emailaddresses

    $props = @{
    'Public Folder Path' = $mailenabled.identity;
    'EmailAddresses' = $emailaddresses.emailaddresses

    $objs = New-Object -TypeName PSObject -Property $props
    $objs | format-table -wrap

    I'm kind of a self taught noob to PowerShell.

  • #50847

    Topics: 8
    Replies: 1191
    Points: 646
    Helping Hand
    Rank: Major Contributor

    If the email addresses are an array of addresses, I'd recommend making the object look something like this:

    Name                      Alias       EmailAddress     
    ----                      -----       ------------     
    \IT\OPKBranch\ServiceDesk ServiceDesk  
    \IT\OPKBranch\ServiceDesk ServiceDesk
    \IT\OPKBranch\ServiceDesk ServiceDesk  
    \IT\OPKBranch\Operations  Operations
    \IT\OPKBranch\Operations  Operations  
    \IT\OPKBranch\Operations  Operations

    This gives you flexibility to use Powershell to do some basic reporting, like how many users are in each folder:

    PS C:\Users\Rob> $test | Group-Object -Property Alias -NoElement
    Count Name                     
    ----- ----                     
        3 ServiceDesk              
        3 Operations   

    or if you simply want to get the email addresses:

    PS C:\Users\Rob> $test | Where {$_.Alias -eq 'Operations'} | Select -ExpandProperty EmailAddress

    Assuming that EmailAddresses is returned as an array, you could try an approach like this:

    $mailEnabledFolders = Get-PublicFolder -Recurse -Resultsize unlimited | Where {$_.mailenabled -eq $true}
    $results = foreach ($folder in $mailEnabledFolders) {
        $mailPublicFolder = Get-MailPublicFolder -Identity $folder.Identity
        foreach ($emailAddress in $mailPublicFolder.EmailAddresses) {
            $mailPublicFolder | Select Name, Alias, @{Name="EmailAddress";Expression={$emailAddress}}

The topic ‘Exchange Need Public Folder Path and Email Addresses’ is closed to new replies.