﻿# encoding: utf-8
# api: powershell
# title: usr ActiveSync - Exch 07
# description: Sacamos el numero de dispositivos active sync en una organizacion exchange 2007.
# version: 1.0
# author: Pedro Genil
# license: CC0
# x-poshcode-id: 3785
# x-archived: 2012-11-30T08:52:33
# x-published: 2012-11-26T00:07:00
#
# Mostramos los que nunca se han sincronizados , y los que lo han hecho en los ultimos 30 dias.
#
#Sacamos los dispositivos asociados a cada mailbox
#Verificamos su ultima conexión o si alguna vez no se han conectado
#Autor: Pedro Genil
#Fecha:23/11/2012
#Version: 1.0
If ((Get-PSSnapin | where {$_.Name -match "Exchange.Management"}) -eq $null)
{
	Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin
}
#Select-Object Identity, DeviceFriendlyName, Devicetype, DeviceUserAgent, FirstSyncTime, LastSuccessSync
$mailbox = Get-MailboxServer
$fecha = get-date 
$fecha= $fecha.adddays(-30).ToString("yyyyMMdd")
#Recorremos todos los mailbox
foreach ($mail in $mailbox)
{
$a=0
$b=0
echo "Analizando $mail" >> resultado.txt
$devices = Get-Mailbox -server $mail -resultsize unlimited| ForEach {Get-ActiveSyncDeviceStatistics -Mailbox:$_.Identity} 
#Recorremos los dispositivos de cada usuario
foreach ($device in $devices)
   {
     if($device.LastSuccessSync -ne $NULL)
          {
           if ($device.LastSuccessSync.ToString("yyyyMMdd") -gt $fecha)
            {$a=$a+1}
          }
           else
            {$b=$b+1}
          }
echo "Numero de dispositivos nunca conectados en $mail $b" >> resultado.txt
echo "Numero de dispositivos conectados en los ultimos 30 dias en $mail $a" >> resultado.txt           
}
