• 1. London, UK
  • 2. Sydney, Australia
  • 3. New York, NY
  • 4. Melbourne, Australia
  • 5. Paris, France
  • 6. San Francisco, CA
  • 7. Chicago, IL
  • 8. Moscow, Russia
  • 9. Amsterdam, The Netherlands
  • 10. Toronto, Canada

Friday, June 20, 2008

 

Exchange Server 2007: Listing Exchange ActiveSync users and device information

Posted by Bharat Suneja at 8:35 AM
In How to get a list of Exchange ActiveSync users we list EAS users on Exchange 2007. Some users may have more than 1 device, or perhaps the user simply got a new smartphone and the old device partnership has not been removed.

Output from Get-ActivesyncDeviceStatistics -mailbox foo@somedomain.com:


FirstSyncTime : 12/22/2007 1:34:10 AM
LastPolicyUpdateTime : 12/22/2007 1:34:43 AM
LastSyncAttemptTime : 1/14/2008 7:45:15 AM
LastSuccessSync : 1/14/2008 7:45:15 AM
DeviceType : PocketPC
DeviceID : *******************************
DeviceUserAgent :
DeviceWipeSentTime :
DeviceWipeRequestTime :
DeviceWipeAckTime :
LastPingHeartbeat :
RecoveryPassword : ********
DeviceModel : WIZA100
DeviceIMEI : ************21900
DeviceFriendlyName : Pocket_PC
DeviceOS : Windows CE 5.2.19134
DeviceOSLanguage : English
DevicePhoneNumber : 1650*******
Identity : foo@somedomain.com\AirSync-PocketPC-*******************************

The * characters in the Identity field are for the DeviceID.

Here's a a quick code snippet (it can probably be scrubbed up a little... ) that will list users and all their devices, along with first sync and last successful sync times:

$mbx = get-casmailbox | where {$_.hasactivesyncdevicepartnership -eq $true -and $_.identity -notlike "*CAS_{*"} ; $mbx | foreach {$name = $_.name; $device = get-activesync devicestatistics -mailbox $_.identity; $device | foreach {write-host $mbx.name, $_.devicemodel, $_.devicephonenumber, $_.deviceid, $_.FirstSyncTime, $_.LastSuccessSync} }


Update: 10/2/2008:
Making it more efficient: Filtering on the server-side using -Filter
Well, the above code could be scrubbed up a little. Rather than getting all mailboxes using Get-CASMailbox and filtering them on the client-side using the Where-Object cmdlet, a more efficient way of doing this is filtering on the server-side using the -Filter parameter, and getting only the mailboxes which have an ActiveSync device partnershp.

Yes, I've just realized HasActiveSyncDevicePartnership is in fact a filterable property, listed under Advanced Filterable Properties in Filterable Properties for the -Filter Parameter in Exchange 2007 SP1.

Here's the updated version:

$mbx = get-casmailbox -Filter {HasActivesyncDevicePartnership -eq $true -and -not DisplayName -like "CAS_{*"}; $mbx | foreach {$name = $_.name; $device = get-activesync devicestatistics -mailbox $_.identity; $device | foreach {write-host $mbx.name, $_.devicemodel, $_.devicephonenumber, $_.deviceid, $_.FirstSyncTime, $_.LastSuccessSync} }

The output looks like this:

Bharat Suneja WIZA100 16501231234 353B7ACF5014C020CE22CBF1DB7FFD92 11/5/2007 7:41:29 AM 12/20/2007 11:00:15 PM
Bharat Suneja WIZA100 16501231234 7E6B67F47DFD370E89BE13280A75EAA5 12/22/2007 1:34:10 AM 1/14/2008 7

Labels: , ,

3 Comments:

October 8, 2008 4:03 PM
Anonymous Anonymous said...

Is there a shell command that will list all the users that have a mobile device and what the DeviceFriendlyName is? I know you can do it by mailbox using the command Get-ActiveSyncDeviceStatistics -Mailbox: "alias" however, I need to provide a list to management of what kinds of phones are connecting and from which department.
I did post this question on the Microsoft.Public.Exchange.Mobility newsgroup called "Shell command for all mobile devices?" However, I didn't receive a answer so John Oliver, Jr. [MVP] suggested that I contact you through your blog. Any help you can provide is appreciated

Thanks.
Penny

 
October 8, 2008 4:21 PM
Blogger Bharat Suneja said...

@Penny: The above command will get you the output you need. DeviceFriendlyName is one of the parameters output by Get-ActiveSynCDeviceStatistics.

Use this:
$mbx=get-casmailbox -Filter {HasActiveSyncDevicePartnership -eq $true -and -not Disp
layName -like "CAS_{*"};
$mbx | foreach {$name = $_.name; $identity = $_.identity; $device=get-activesyncdevi
cestatistics -mailbox $_.identity; $device | foreach {write-host $mbx.name, $_.devicefriendlyname, $
_.devicemodel, (get-user $identity).department} }

You can add additional fields such as first sync/last sync times or phone numbers as shown in the post.

 
October 8, 2008 5:44 PM
Anonymous Anonymous said...

That gets me in the right directions, thank you. I'm going home now so I'll work with this script again in the morning.

Penny

 

Post a Comment

Links to this post:

Create a Link

<< Home