[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1308
  • Last Modified:

shared Mailboxes full report

Hello,

I need to report detailed statistics from shared mailboxes on Exchange 07.
I tried to use get-mailboxpermission command but I can't filter all columns.

The final csv file should  include these properties: Mailbox_Name,WhenCreated,  Mailbox_smtp_address,RequireSenderAuthenticationEnabled (Yes/No),  HiddenFromAddressListsEnabled (Yes/No), Mailbox_database, ProhibitSendQuota
Prohibit_Send_Quota,Prohibit_Receive_Quota,IssueWarningQuota,  ,ManagedBy,Notes,Full_Access (users samaccountname),Send_As(users samaccountname),User_Account_Is_Blocked (Yes/No),Accept_Messages_from

I suppose that it wouldn't be an easy work to write such script because i don't know that all properties are available.
0
pi01162
Asked:
pi01162
  • 3
1 Solution
 
Chris DentPowerShell DeveloperCommented:

This gets us near to that. Anything missing?

You may have to clarify on what you mean by Accout_Is_Blocked and ManagedBy.

Chris
Get-Mailbox | ForEach-Object {
  $Stats = Get-MailboxStatistics $_.DistinguishedName

  $_ | Select-Object Name, WhenCreated, PrimarySmtpAddress, RequireSenderAuthenticationEnabled,
    HiddenFromAddressListsEnabled, Database, ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota,
    AcceptMessagesOnlyFrom, AcceptMessagesOnlyFromDLMembers, RejectMessagesFrom, RejectMessagesFromDLMembers,
    @{n='FullAccess';e={ 
      Get-MailboxPermission $_.DistinguishedName | 
        Where-Object { !$_.IsInherited -And $_.AccessRights -Match 'FullAccess' -And $_.User -NotMatch 'SELF' } |
        ForEach-Object { $_.User } }},
    @{n='SendAs';e={
      Get-ADPermission $_.DistinguishedName |
        Where-Object { !$_.Inherited -And $_.Rights -Match 'Send-As' } |
        ForEach-Object { $_.User } }}
}

Open in new window

0
 
pi01162Author Commented:
First thanks for reply!
ManagedBy (Shared mailbox manager) and Account_Is_Blocked (user's account is blocked in ActiveDirectory)
0
 
pi01162Author Commented:
Helo,

I tested this script and almost works except Send-As permission.
The script doesn't display those permissions. Full Acces is ok.

So please look again at Your's script and check "Send-As"

P.s Also I add manager field at the end
Get-Mailbox -organizationalunit 'domain.corp/Mailboxes' -id | ForEach-Object {

  $Stats = Get-MailboxStatistics $_.DistinguishedName

  $_ | Select-Object Name, WhenCreated, PrimarySmtpAddress, RequireSenderAuthenticationEnabled,
    HiddenFromAddressListsEnabled, Database, ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota,
    AcceptMessagesOnlyFrom, AcceptMessagesOnlyFromDLMembers, RejectMessagesFrom, RejectMessagesFromDLMembers,
    @{n='FullAccess';e={ 
      Get-MailboxPermission $_.DistinguishedName | 
        Where-Object { !$_.IsInherited -And $_.AccessRights -Match 'FullAccess' -And $_.User -NotMatch 'SELF' } |
        ForEach-Object { $_.User } }},
    @{n='SendAs';e={
      Get-AdPermission $_.DistinguishedName |
        Where-Object { !$_.Inherited -And $_.Rights -Match 'Send-As' } |
        ForEach-Object { $_.User } }},

    @{n='Manager';e={Get-User $_.DistinguishedName | select}}

}

Open in new window

0
 
pi01162Author Commented:
Helo,
I correct the script (send-as permissions), the final version beneath
Get-Mailbox -OrganizationalUnit 'domain.corp/Mailboxes' | ForEach-Object {

  $Stats = Get-MailboxStatistics $_.DistinguishedName

  $_ | Select-Object Name, WhenCreated, PrimarySmtpAddress, RequireSenderAuthenticationEnabled,
    HiddenFromAddressListsEnabled, Database, ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota,
    @{Name="AcceptMessagesOnlyFrom";Expression={$_.AcceptMessagesOnlyFrom}}, @{Name="AcceptMessagesOnlyFromDLMembers";Expression={$_.AcceptMessagesOnlyFromDLMembers}}, @{Name="RejectMessagesFrom";Expression={$_.RejectMessagesFrom}},@{Name="RejectMessagesFromDLMembers";Expression={$_.RejectMessagesFromDLMembers}} ,
    @{n='FullAccess';e={ 
      Get-MailboxPermission $_.DistinguishedName | 
        Where-Object { !$_.IsInherited -And $_.AccessRights -Match 'FullAccess' -And $_.User -NotMatch 'SELF' } |
        ForEach-Object { $_.User } }},
    @{n='SendAs';e={
      Get-ADPermission $_.DistinguishedName |
        Where-Object { $_.ExtendedRights -like 'Send-As' -and  $_.User -NotMatch 'SELF'} |
        ForEach-Object { $_.User } }},
		
		@{n='Manager';e={Get-User $_.DistinguishedName | select}}
} |Export-Csv c:\MailboxfullReport.csv -NoTypeInformation

Open in new window

0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now