Forum Discussion
fstorer
Apr 18, 2024Brass Contributor
Get a report showing specific shared mailboxes and Display Names of their members on one line.
Dear Community, I have been asked to generate an excel report showing all our shared mailboxes starting with "jobs-". For each shared mailbox we want to see the members' Display Names (not the emai...
- Apr 19, 2024Sorry, that's what happens when I write code directly in the browser 😄
For the sorting bit, this should do:
$membersString = ($memberNames | sort -Unique) -join ", "
fstorer
Apr 19, 2024Brass Contributor
I was able to get what I wanted, although the Display Names are not sorted alphabetically. Thank you VasilMichev This is the code:
$jobs = Get-ExoMailbox -RecipientTypeDetails SharedMailbox -Filter {DisplayName -like "jobs-*"} | Sort-Object DisplayName
$JobsReport = @()
foreach ($job in $jobs) {
$members = Get-MailboxPermission -Identity $job.Identity | Where-Object { ($_.User -like '*@*')
$memberNames = @()
foreach ($member in $members) {
$memberName = (Get-Mailbox $member.User).DisplayName
$memberNames += $memberName
}
$membersString = $memberNames -join ", "
$JobsReport += [PSCustomObject]@{
"Jobs Accounts" = $job.DisplayName
"Members with Full Access" = $membersString
}
}
$JobsReport = $JobsReport | Sort-Object "Jobs Accounts"
VasilMichev
Apr 19, 2024MVP
Sorry, that's what happens when I write code directly in the browser 😄
For the sorting bit, this should do:
$membersString = ($memberNames | sort -Unique) -join ", "
For the sorting bit, this should do:
$membersString = ($memberNames | sort -Unique) -join ", "
- fstorerApr 22, 2024Brass Contributor
Thank you VasilMichev, it works!