Where are mailbox last logon, client IP address, and other details in Exchange 2007?
Posted by Bharat Suneja at 7:20 AM

Figure 1: In Exchange 2003, the Logons node displays Store logon-related information. Click here to see a bigger screenshot.
In Exchange Server 2007, these details are not displayed in the EMC. These can be retrieved easily using the Exchange shell.
The Get-LogonStatistics cmdlet provides the following logon-related information.
AdapterSpeed :
ClientIPAddress :
ClientMode :
ClientName :
ClientVersion :
CodePage :
CurrentOpenAttachments :
CurrentOpenFolders :
CurrentOpenMessages :
FolderOperationCount :
FullMailboxDirectoryName :
FullUserDirectoryName :
HostAddress :
LastAccessTime :
Latency :
LocaleID :
LogonTime :
MACAddress :
MessagingOperationCount :
OtherOperationCount :
ProgressOperationCount :
RPCCallsSucceeded :
StreamOperationCount :
TableOperationCount :
TotalOperationCount :
TransferOperationCount :
UserName :
Windows2000Account :
ServerName :
StorageGroupName :
DatabaseName :
Identity :
Mailbox information
In ESM, the Mailboxes node of a Mailbox Store displays mailbox-related information such as mailbox size, number of items, and last logon/logoff.

Figure 2: In Exchange 2003, the Mailboxes node displays mailbox-related information. Click here to see a bigger screenshot.
This information can be retrieved using the Get-MailboxStatistics cmdlet. It provides the following information related to a mailbox:
AssociatedItemCount :
DeletedItemCount :
DisconnectDate :
DisplayName :
ItemCount :
LastLoggedOnUserAccount :
LastLogoffTime :
LastLogonTime :
LegacyDN :
MailboxGuid :
ObjectClass :
StorageLimitStatus :
TotalDeletedItemSize :
TotalItemSize :
Database :
ServerName :
StorageGroupName :
DatabaseName :
Identity :
Now that we're dealing with the shell, besides these cmdlets' built-in filtering capabilities (Database, Server, or mailbox), you can use Powershell's where-object cmdlet to further filter the results based on the properties returned by each cmdlet. For example, to find out logon sessions from a particular IP address:
Get-LogonStatistics -Server "MyServer" | where {$_.ClientIPAddress -like "192.168.2.101"}
Labels: Administration, Exchange Server 2007, Exchange Shell, Mailbox, Security

Exchangepedia Blog is read by visitors from all 50 US States and 150 countries world-wide

11 Comments:
Get-LogonStatistics default display is ugily:
Lots of ... in the output. Does anyone test this stuff? :-)
Another wonderful post - thanks for making it easier!
Daniel Smith
Will this stuff ever be put back in the GUI ?
Most non full time email administrators do not have the time to try and figure out PowerShell..
I can't seem to SEE all the fields, they're off the side. i'm fidgeting with window size, etc, but is there a way to say, show me fields listed DOWN instead of across?
@Lynne:
- To list all fields in a list view instead of the default table view, pipe the output to format-list, for example:
Get-Mailbox "foo" | fl
Get-ReceiveConnector | fl
Get-SendConnector | fl
- To select and view only particular properties of an object, use the Select-Object cmdlet:
Get-Mailbox | Select Name,Databse,*Email*
Get-ReceiveConnector | Select Name,Bindings
- To format tables where information in the rows fits, use the format-table cmdlet with the -AutoSize switch:
Get-Mailbox | ft Name,Database,*Email* -AutoSize
THANK YOU!!
Thanks! I've been looking for this!
I have another question, and i bet i'm just being dumb (again).
Sometimes when i do "get-logonstatistics" for a mailbox, nothing comes back. Just the prompt.
Does that mean the mailbox has never been logged on?
I'm trying to find out how someone accesses their mailbox, and it could be imap. How do i check for that?
oh and brilliant, get-logonstatistics is too wide for the default settings of the window and you can't change the width without causing an error.
GOOD WORK!!!
I personally love Powershell. It is one of the best decisions MS has ever made.
Get-LogonStatistics username | ft username, logontime, lastaccesstime, servername, clientversion -autosize
Or:
Get-LogonStatistics | Export-Csv logonstats.csv -NoTypeInformation
Export all the logon stats for every user, all fields, then you can sort and filter with Excel to get exactly what you are looking for.
How about this?
Get-LogonStatistics | where {$_.ClientVersion -eq "12.0.6423.1000"} | Measure-Object
Get the count times a mailbox was opened with Outlook 2007.
Hi to all!!!
Can you explain how to obtain history logging to one mailbox during the definite period of time.
This command returns only information about active connections, isn't it?
Best regards!!!
Post a Comment
Links to this post:
Create a Link
<< Home