All credit to Port25Guy.com for creating this handy script to get a summary of all mobile device connected to you Exchange organisation. The script will generate a CSV file as well as send an Email in HTML format. This allows for setting up a schedule run for periodic housekeeping on all of you mobile device.
[codesyntax lang=”powershell”]
### BEGINNING OF SCRIPT ### Updated cmdlet's http://go.microsoft.com/fwlink/p/?LinkId=254711 MobileDevice rather than ActiveSyncDevice ### http://blog.zmarzly.me ##### # # Get-MobileDeviceReport # Author: Paul Ponzeka # Website: port25guy.com # email ponzekap2 at gmail dot com # ###### param( [Parameter(Mandatory = $true)] [string] $SMTPServer = "", [Parameter(Mandatory = $true)] [string] $SMTPFrom = "", [Parameter(Mandatory = $true)] [string] $SMTPTo = "", [Parameter(Mandatory = $true)] [string] $exportpath = "" ) ####### # # HTML Formatting Section # Thanks to Paul Cunningham at http://exchangeserverpro.com/ # ####### # # # ###### $style = "<style>BODY{font-family: Arial; font-size: 10pt;}" $style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}" $style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }" $style = $style + "TD{border: 1px solid black; padding: 5px; }" $style = $style + "</style>" $messageSubject = "Mobile Device Report" $message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto $message.Subject = $messageSubject $message.IsBodyHTML = $true #### Get Mailbox $EASDevices = "" $AllEASDevices = @() $EASDevices = ""| select 'User','PrimarySMTPAddress','DeviceType','DeviceModel','DeviceOS', 'LastSyncAttemptTime','LastSuccessSync' $EasMailboxes = Get-Mailbox -ResultSize unlimited foreach ($EASUser in $EasMailboxes) { $EASDevices.user = $EASUser.displayname $EASDevices.PrimarySMTPAddress = $EASUser.PrimarySMTPAddress.tostring() foreach ($EASUserDevices in Get-MobileDevice -Mailbox $EasUser.alias) { $EASDeviceStatistics = $EASUserDevices | Get-MobileDeviceStatistics $EASDevices.devicetype = $EASUserDevices.devicetype $EASDevices.devicemodel = $EASUserDevices.devicemodel $EASDevices.deviceos = $EASUserDevices.deviceos $EASDevices.lastsyncattempttime = $EASDeviceStatistics.lastsyncattempttime $EASDevices.lastsuccesssync = $EASDeviceStatistics.lastsuccesssync $AllEASDevices += $EASDevices | select user,primarysmtpaddress,devicetype,devicemodel,deviceos,lastsyncattempttime,lastsuccesssync } } $AllEASDevices = $AllEASDevices | sort user $AllEASDevices $AllEASDevices | Export-Csv $exportpath\ActiveSyncReport.csv ###### # # Send Email Report # ######## $message.Body = $AllEasDevices | ConvertTo-Html -Head $style $smtp = New-Object Net.Mail.SmtpClient($smtpServer) $smtp.Send($message) ##END OF SCRIPT
[/codesyntax]