Monday, May 9, 2011

¿Cómo obtener estadísticas de Exchange Active Sync para Exchange 2007?

English Version

Amig@s,
les dejo un scritp que saca estadísticas de Exchange Active Sync y las guarda en una planilla excel

El código:


####### INICO DEL SCRIPT ########################################################
$erroractionpreference = "SilentlyContinue"
$Excel = New-Object -Com Excel.Application
$Excel.DisplayAlerts = $False
$Excel.visible = $False
$Exc = $Excel.Workbooks.Add(1)
$Sheet = $Exc.WorkSheets.Item(1)
$Sheet.Cells.Item(1,1) = "handle"
$Sheet.Cells.Item(1,2) = "FirstSyncTime"
$Sheet.Cells.Item(1,3) = "LastSyncAttemptTime"
$Sheet.Cells.Item(1,4) = "LastSuccessSync"
$Sheet.Cells.Item(1,5) = "DeviceType"
$Sheet.Cells.Item(1,6) = "DeviceUserAgent"
$Sheet.Cells.Item(1,7) = "DeviceModel"
$Sheet.Cells.Item(1,8) = "DeviceFriendlyName"
$Sheet.Cells.Item(1,9) = "DeviceOS"
$Sheet.Cells.Item(1,10) = "DeviceOSLanguage"
$Sheet.Cells.Item(1,11) = "DevicePhoneNumber"
$WorkBook = $Sheet.UsedRange
$intRow = 2

$users=get-mailbox -resultsize 20000 |where {$_.database -like "Exch2007*"}|select-object Identity,samaccountname
if($error.count -gt 0){
$error[0].ToString()
#$Sheet.Cells.Item($intRow,2) = Write-Output "User not present"
$error.clear()
}
else
{
foreach ($usr in $users)
{
$Sheet.Cells.Item($intRow,1) = $usr.samAccountName
$salida=Get-ActiveSyncDeviceStatistics -Mailbox $usr.identity | select-object FirstSyncTime,LastSyncAttemptTime,LastSuccessSync,DeviceType,DeviceUserAgent,DeviceModel,DeviceFriendlyName,DeviceOS,DeviceOSLanguage,DevicePhoneNumber
foreach ($out in $salida)
{
$Sheet.Cells.Item($intRow,2) = $out.FirstSyncTime
$Sheet.Cells.Item($intRow,3) = $out.LastSyncAttemptTime
$Sheet.Cells.Item($intRow,4) = $out.LastSuccessSync
$Sheet.Cells.Item($intRow,5) = $out.DeviceType
$Sheet.Cells.Item($intRow,6) = $out.DeviceUserAgent
$Sheet.Cells.Item($intRow,7) = $out.DeviceModel
$Sheet.Cells.Item($intRow,8) = $out.DeviceFriendlyName
$Sheet.Cells.Item($intRow,9) = $out.DeviceOS
$Sheet.Cells.Item($intRow,10) = $out.DeviceOSLanguage
$Sheet.Cells.Item($intRow,11) = $out.DevicePhoneNumber


$intRow = $intRow + 1
}
$WorkBook.EntireColumn.AutoFit()
} }
$Exc.saveAs("D:\Reportes\EAS2k7-Stat.xls")
$Excel.quit

Salud! por favor dejen sus cometarios. gracias!!
-Dario

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.