首页 > 代码库 > Powershell Get Domain Mailbox的几种方法

Powershell Get Domain Mailbox的几种方法

一、Disconnected Mailboxes

1、Finding Disconnected Mailboxes

The first function is called Get-DisconnectedMailbox and the name is pretty much self explanitory. This function will give you a list of all disconnected mailboxes on each of your mailbox servers. Take a look at the following code:

技术分享
function Get-DisconnectedMailbox {    [CmdletBinding()]    param(        [Parameter(Position=0, Mandatory=$false)]        [System.String]        $Name = ‘*‘    )        $mailboxes = Get-MailboxServer    $mailboxes | %{        $disconn = Get-Mailboxstatistics -Server $_.name | ?{ $_.DisconnectDate -ne $null }        $disconn | ?{$_.displayname -like $Name} |             Select DisplayName,            @{n="StoreMailboxIdentity";e={$_.MailboxGuid}},            Database    }}
View Code

Note: If you’ve recently deleted a mailbox, but it’s not showing up when running Get-DisconnectedMailbox, you may need to force Exchange to recognize this by running the Clean-MailboxDatabase cmdlet.


 

2、Purging Disconnected Mailboxes

You purge mailboxes using the Remove-Mailbox cmdlet, specifying the StoreMailboxIdentity and Database for the disconnected mailbox in question. For a good example of this, check out Nitin Gupta’s post on removing disconnected mailboxes.

In an effort to simplify the purging of disconnected mailboxes, I wrote the Remove-DisconnectedMailbox function that is designed to work with Get-DisconnectedMailbox. Here is the code:

技术分享
function Remove-DisconnectedMailbox {    [CmdletBinding(SupportsShouldProcess=$true)]    param(        [Parameter(Position=0, ValueFromPipelineByPropertyName=$true, Mandatory=$true)]        [System.String]        $StoreMailboxIdentity,        [Parameter(Position=1, ValueFromPipelineByPropertyName=$true, Mandatory=$true)]        [System.String]        $Database        )        process {        Remove-Mailbox @PSBoundParameters    }}
View Code
Get-DisconnectedMailbox “Bill Jones” | Remove-DisconnectedMailbox -Confirm:$false
Get-DisconnectedMailbox “Bradford Boyer” | %{Connect-Mailbox -Identity $_.StoreMailboxIdentity -Database ‘DB1′ -User ‘contoso\bboyer’ -Alias ‘bboyer’}

参考至博文<http://www.mikepfeiffer.net/2010/06/managing-disconnected-exchange-mailboxes-with-powershell/>


 

二、

Powershell Get Domain Mailbox的几种方法