This will show how to use powershell command to get information from exchange server.

1. PowerShell

PowerShell is an object-oriented programming language and interactive command line shell for Microsoft Windows.

PowerShell was designed to automate system tasks, such as batch processing, and create systems management tools for commonly implemented processes. The PowerShell language is similar to Perl. PowerShell includes more than 130 standard command line tools for functions that formerly required users to create scripts in VB, VBScript or C#.

PowerShell offers a variety of ways to automate tasks, including:

  • Cmdlets, which are very small .NET classes that appear as system commands.
    Scripts, which are combinations of cmdlets and associated logic.
  • Executables, which are standalone tools.
  • Instantiation of standard .NET classes.

PowerShell integrates with the .NET environment and can also be embedded within other applications. Over a hundred cmdlets are included that can be used separately or combined with others to automate more complex tasks. Users can also create and share cmdlets.

PowerShell is available as a free download for Windows XP, Windows Server 2003 and Windows Vista. Support for PowerShell is built into Windows Server 2008 and Windows 7, where it is included as an optionally installed feature.


2. Exchange Management Shell

Using powershell by open Exchange Management Shell

Start > All Programs > Microsoft Exchange Server 2010 > Excahnge Management Shell
Right click > Run as Administrator
Click "Yes"
Powershell command prompt


3. Example Command

Get-MailBoxStatistics: MailboxSize
Get-MailboxStatistics -Server MXS1 | where {$_.ObjectClass –eq “Mailbox”} | Sort-Object TotalItemSize –Descending | ft DisplayName, TotalItemSize, ItemCount > C:\mailboxsize.txt

Get-MailboxStatistics from -Server MXS1 where Mailbox Sort-Object TotalItemSize -Descending ft DisplayName, TotalItemSize, ItemCount(ft=Format table)
Convert result to localtion C:\mailboxsize.txt

Get-MailBoxStatistics: LastAccess
Get-MailboxStatistics -Server MXS1 | Sort-object itemcount -Descending

Get-MailboxDatabase: DatabaseSize
Get-MailboxDatabase -Status | select ServerName,Name,DatabaseSize

Get-Mailbox: ForwardingAddress
Get-mailbox | select PrimarySMTP,ForwardingAddress | where {$_.ForwardingAddress -ne $Null}

Get-Mailbox: WhenCreate
Get-mailbox | ft dispalyname, alias, whencreated, userprincipalname, organizationalunit