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]