The Get-EASDeviceReport.ps1 PowerShell script has been updated to V1.01.

This update includes the following changes:

  • Added SMTP parameters for emailing the report
  • Added an “age” parameter to set a threshold for last sync age
  • Numerous bug fixes and improvements

So now you can, for example, run a report that shows ActiveSync devices that have not attempted sync in the last 30 days, and have that report emailed to you as a CSV file.


See more details and download the script here.

About the Author

Paul Cunningham

Paul is a former Microsoft MVP for Office Apps and Services. He works as a consultant, writer, and trainer specializing in Office 365 and Exchange Server. Paul no longer writes for


  1. Meg

    I have 2 domains, I am wondering if it can list out the domains the users are in?

    1. Avatar photo
      Paul Cunningham

      Almost anything is possible with PowerShell. Have you looked at the script code, the cmdlets that it’s running, and seen whether those cmdlets can return other properties that you’re interested in adding to your report?

      1. Meg

        oh, I didn’t mention, powershell scripting is not my strong suit and confuses me… 🙂

        1. Avatar photo
          Paul Cunningham

          Fair enough, I’ve just updated the script so that it includes the OrganizationalUnit attribute for the mailbox user. See if that helps with your scenario.

  2. Mike

    Finally found it; but not through any link that was posted in any of the articles.
    Had to go to Member Tools/Resources to find it.

    You may want to make it more clear exactly how to obtain the script; I noticed other people wondering the same thing.

    It turned out to not be “hard” to find necessarily, but it was not intuitive in the least.

  3. Mike

    Where is the link to download the script?

    It’s got to be here, I see other people commenting on they must have obtained it; but I’m just not seeing it anywhere on the page.

    The “download here” link just takes you to another page:

    And I don’t see any link on that page either.

  4. JohnIT

    Great script. Is there a way to get a list of devices that have only syncd in the last 30 days?

    1. Avatar photo
      Paul Cunningham


      Set the -Age to zero (so it reports all devices) and use Excel to filter the results.

      Or, modify the script to return results less than 30 instead of greater than 30.

  5. Schenardie

    Yeah your right.. but i managed to work it with .addhours and a little modification on your script..

    Thanks Anyway Paul..

    very good script as i said before

  6. Schenardie

    Hey Paul, very nice script.

    I’m probably getting the date without time zone (is that correct??)

    how should i change to see the correct hours on my LastSyncAttemptTime and LastSuccessSync fields??

    Thanks Mate

    1. Avatar photo
      Paul Cunningham

      Correct, the dates are in UTC. Wouldn’t be hard to change them to a local time, though what is “local” to the machine running the script may not be local to the device itself (eg global orgs).

      When you’re reporting on +30 day aged devices like I usually am it doesn’t really matter if the timestamp is out by a few hours.

  7. Keith K.

    Is there any negative affect (Server degradation, Etc.) with having a few old ActiveSync devices still associated to the users mailbox? Will the mailbox still try to sync to a device that is no longer active?

    1. Avatar photo
      Paul Cunningham

      The mailbox doesn’t initiate any synchronization to a device.

      Mailboxes that accumulate multiple device associations may breach the default limit of 10 and then the user would be unable to connect any new devices until that is resolved.

      Some organizations also remove unused devices for security reasons.

  8. David Taig

    Thank you for my Birthday present..

    I like to have a report of all devices with ‘Less than or equal’, so I updated line 152 and any text with ‘greater’ and change to ‘less’
    if ($syncAge -le $Age -or $syncAge -eq “Never”)

    Is it possible to also have a funtion to also remove Stale devices after the reporting including LastSyncAttempt -eq $Null with $_.FirstSyncTime -gt (Get-Date).AddMonths(-3)}

    Remove-ActiveSyncDevice -Confirm:$false

    1. Avatar photo
      Paul Cunningham

      As a general rule I don’t ship scripts that automatically make potentially harmful changes 😉

      With the CSV report the script produces it would be pretty simple to import that into a command or script that runs the remove-activesyncdevice cmdlet. Personally I would always want to eyeball the CSV file first.

Leave a Reply