Script – MS Exchange – Active Sync Statistik der letzten 30 Tage

Ziel dieses Script war es, eine kleine Statistik über die angemeldeten Gerätetypen der letzten 30 Tage zu liefern.

 

#Load Exchange Server 2010 Management Shell if not loaded. You may delete/comment out this step if you are running the script from the Exchange Management Shell
if (-not (Get-PSSnapin | Where-Object {$_.Name -like „Microsoft.Exchange.Management.PowerShell.E2010“})){
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
}

#Alle Active Sync User
$Mailboxes = Get-Mailbox -RecipientTypeDetails UserMailbox –ResultSize Unlimited -Filter {HiddenFromAddressListsEnabled -eq $false}

#Alle Geräte der letzten 30 Tage
$Devices = $Mailboxes | %{Get-ActiveSyncDeviceStatistics -Mailbox $_.Identity} | ?{$_.LastSuccessSync -gt (Get-Date).AddDays(-30)}

#Schön sortiert
$lastdevices = $Devices | Group-Object -Property DeviceUserAgent -NoElement

function sendmail($body)
{
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
#########
# Hier müsst Ihr den Mailserver definieren
#########
$SmtpClient.Host = „exchange.domain.tld“
#########
# Hier müsst Ihr den Sender definieren
#########
$mailmessage.from = „ActiveSyncStats@domain.tld“
#########
# Hier müsst Ihr den Empfaenger definieren
#########
$mailmessage.To.add(„blubb@bla.tld“)
#########
# Hier müsst Ihr den Betreff definieren
#########
$mailmessage.Subject = “Task – ActiveSync Statistik der letzten 30 Tage”
$MailMessage.IsBodyHtml = $false
$mailmessage.Body = $body
$smtpclient.Send($mailmessage)
}

$head1 = „Folgende Gerätetypen wurden in den letzten 30 Tagen am Exchange Server synchronisiert:“
$head2 = „Dies ist eine automatisch erzeugte Mail!“

$body = $head1 + ($lastdevices | out-string) + $head2
sendmail $body

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.