Solved

Powershell - get-mailboxstats

Posted on 2013-10-23
20
938 Views
Last Modified: 2013-10-30
HI Experts,

I'm running powershell commands to pull out lastlogofftime from the mailbox stats, however when running the script:

get-mailbox -resultsize unlimited | get-mailboxstatistics | select DisplayName, LastLogoffTime, LastLoggedOnUserAccount | Export-Csv -Path D:\data\list_lastaccess4th.csv -NoTypeInformation

The output is as follows:
WEB Design             23/10/2013 13:11	DOM\WEBdes
JAMES Jameson        23/10/2013 13:12	DOM\BJC
Christine Bridie       13/09/2013 23:28	DOM\BMCR
Jimmy FLORA		                                DOM\bmf
Shane BENNETT		                        DOM\BSBABC
Laura Davies	        25/06/2012 09:45	DOM\bmb4
Jsaon Cook	        14/05/2013 13:50	DOM\mka
bookings		                                        DOM\RTP
Carmarth	                23/10/2013 12:45	DOM\Carms
YVONNE Jones         10/07/2012 17:35	DOM\mwy1

Open in new window


From the above, there are missing LastLogOffTimes... Although if I query the user manually. The times are there, see below output:

Get-MailboxStatistics bookings | fl

LastLoggedOnUsuerAccount : HQ\RTP
LastLogoffTime          : 23/10/2013 16:55:25
LastLogonTime           : 23/10/2013 16:54:24

Open in new window


Has anyone come across this before?
0
Comment
Question by:MarkMichael
  • 9
  • 8
  • 3
20 Comments
 
LVL 40

Expert Comment

by:Subsun
Comment Utility
It's probably due to the pipeline bug in EMS.. Try..
$(Foreach ($mailbox in get-mailbox -resultsize unlimited){
$mailbox | get-mailboxstatistics | select DisplayName, LastLogoffTime, LastLoggedOnUserAccount
})| Export-Csv -Path D:\data\list_lastaccess4th.csv -NoTypeInformation

Open in new window

0
 
LVL 52

Expert Comment

by:Manpreet SIngh Khatra
Comment Utility
Is the Attribute Name correct as its word sensitive and if it doesnt matches the correct word data wont be extracted

- Rancy
0
 
LVL 15

Author Comment

by:MarkMichael
Comment Utility
Subsun: Same issue unfortunately?

Rancy: The property name is correct, as some of the data is being output for some user accounts but not others. Is that what you mean?
0
 
LVL 40

Expert Comment

by:Subsun
Comment Utility
@Rancy, If the attribute name is incorrect then it won’t export the value for all the users. The issue is only for specific users..

@MarkMichael, in the report, is the user who miss the log off time is  different from previous report?
0
 
LVL 15

Author Comment

by:MarkMichael
Comment Utility
Yes, it's different each time.

Sometimes it will return results for person A, B, C and not D.
Another time it will return results for person A, B, D and not C.
0
 
LVL 40

Expert Comment

by:Subsun
Comment Utility
Try this..

$Result = @()
Foreach ($mailbox in get-mailbox -resultsize unlimited){
$Result += get-mailboxstatistics $mailbox.Alias | Select DisplayName,LastLogoffTime,LastLoggedOnUserAccount
}
$Result | Export-Csv -Path D:\data\list_lastaccess4th.csv -NoTypeInformation

Open in new window

0
 
LVL 40

Expert Comment

by:Subsun
Comment Utility
Did you get a chance to check it?
0
 
LVL 15

Author Comment

by:MarkMichael
Comment Utility
Sorry, will try in the morning,
0
 
LVL 15

Author Comment

by:MarkMichael
Comment Utility
Still same issue unfortunately. Still missing random dates in the output.

Thanks for your help so far though.
0
 
LVL 52

Expert Comment

by:Manpreet SIngh Khatra
Comment Utility
If you have some users not exporting data once check with permissions on those objects, also if you take that single user dump do you get those details ?

- Rancy
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 15

Author Comment

by:MarkMichael
Comment Utility
Yep, if I just run get-mailboxstatistics mpoole, for example... the data is visible.

Same if I export it to csv, the data is visible in the csv file.
0
 
LVL 52

Expert Comment

by:Manpreet SIngh Khatra
Comment Utility
can you try to take the data to text and once verify and then work with Excel

- Rancy
0
 
LVL 15

Author Comment

by:MarkMichael
Comment Utility
verified:

"DisplayName","LastLogoffTime","LastLoggedOnUserAccount"
"Poole",,"DOMAIN\Poole"

Missing LastLogoffTime

I get the same, when I send the output to screen too, I can see several users missing the same fields, but they appear when I view them one by one.
0
 
LVL 40

Expert Comment

by:Subsun
Comment Utility
Can you try to run the same script from a different server?
0
 
LVL 40

Expert Comment

by:Subsun
Comment Utility
Also try...
Get-mailboxserver | get-mailboxstatistics | select DisplayName, LastLogoffTime, LastLoggedOnUserAccount | Export-Csv -Path D:\data\list_lastaccess4th.csv -NoTypeInformation

Open in new window

0
 
LVL 15

Author Comment

by:MarkMichael
Comment Utility
Same with both tests, sorry.

Still the same outputs.

I even ran the script from an exchange server in another AD site, same issue.
0
 
LVL 40

Expert Comment

by:Subsun
Comment Utility
Sorry.. I cannot reproduce your issue...  Even I have some accounts which miss LastLogoffTime but they also didn't output LastLogoffTime when I run get-mailboxstatistics directly for that account.

Which service pack level and RU you have?
0
 
LVL 15

Author Comment

by:MarkMichael
Comment Utility
Still stuck on SP1 currently, customer is slow at approving updates!

On the other hand, I've just ran the same scripts on another customer Exchange server who has SP3 installed. Same issue!

There doesn't seem to be any pattern with the output though. Very very odd.
0
 
LVL 40

Accepted Solution

by:
Subsun earned 500 total points
Comment Utility
Hmm... Does this make any difference?
$Server = Get-mailboxserver
$Server | % {get-mailboxstatistics -Server $_.Name | select DisplayName, LastLogoffTime, LastLoggedOnUserAccount} | Export-Csv -Path D:\data\list_lastaccess4th.csv -NoTypeInformation

Open in new window

or
$Servers = Get-mailboxserver
$ReSult = @()
Foreach ($Server in $Servers){
$ReSult += Get-mailboxstatistics -Server $Server.Name | select DisplayName,LastLogoffTime,LastLoggedOnUserAccount
}
$ReSult | Export-Csv -Path D:\data\list_lastaccess4th.csv -NoTypeInformation

Open in new window

0
 
LVL 15

Author Comment

by:MarkMichael
Comment Utility
1st one seems to work! Well done :)

Thanks for persisting through this with me!
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Not sure what the best email signature size is? Are you worried about email signature image size? Follow this best practice guide.
Scam emails are a huge burden for many businesses. Spotting one is not always easy. Follow our tips to identify if an email you receive is a scam.
In this video we show how to create a Shared Mailbox in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >> Sha…
To show how to create a transport rule in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Mail Flow >> Rules tab.:  To cr…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now