Ich habe aktuell den Fall, dass iDevices (iPhone und iPad) mit iOS 4.x und iOS 5.0.1 immer wieder Probleme mit dem Sync vom Exchange 2010 Kalender haben. Irgendwas geht da mit Exchange Active Sync (EAS) schief. Meist äussert es sich so, dass die Termine vom Exchange einfach nicht mehr auf dem iDevice synchronisiert werden.
Als bester Workaround kann auf dem iDevice einfach der Kalender deaktiviert und wieder aktiviert werden.
Das ist natürlich übel:
- Der Enduser muss das machen!
- Termine die auf dem iPhone eingetragen wurden sind dann natürlich weg!
Hin und wieder ist der Exchange Kalender auf zerschossen!
Interessant ist dann natürlich der “Exchange Calendar Repair Assistant“.
Der Dienst sollte dann erstmal für alle User ausgeschaltet werden! Warum? Ganz einfach wir wollen den ja erstmal nur auf die Benutzer anwenden die aktuell Probleme haben:
get-mailbox -server SERVERNAME -resultsize Unlimited | Set-Mailbox -CalendarRepairDisabled $true
Für einzelne User kann er dann wie folgt eingeschaltet werden:
Set-Mailbox -Identity USER.UPN -CalendarRepairDisabled $false
Den Dienst sollte man dann natürlich planen, damit dieser auch regelmäßig auf dem Exchange Server ausgeführt wird:
Set-MailboxServer -Identity SERVERNAME -CalendarRepairWorkCycle 1.00:00:00 -CalendarRepairWorkCycleCheckpoint 1.00:00:00
Der “Exchange Calendar Repair Assistant” schreibt seine Logfiles nach:
C:\Program Files\Microsoft\Exchange Server\V14\Logging\Calendar Repair Assistant
Natürlich ist es nützlich hin und wieder mal nachzusehen für welche User der “Exchange Calendar Repair Assistant” aktiviert ist:
get-mailbox -server SERVERNAME -Filter "CalendarRepairDisabled -eq `$false" -ResultSize unlimited
Auf Technet ist ein Skript von Jan Egil Ring zu finden um iDevices zu identifizieren. Das Skript zeigt alle iDevices die am Exchange bekannt sind.
Damit könnte man sich eine Liste erstellen um das auf alle User anzuwenden die ein iDevice haben.
Aber wer das ganze nicht per Skript machen will der kann ein vorhandenes Mobile Device Management (MDM) nutzen um die entsprechenden Geräte bzw. die verwendeten Softwarestände zu filtern.
Wer kein Mobile Device Management hat, der kann das ganze natürlich per PowerShell auch auf den Exchange Servern machen!
Wer wissen will welche Clients mit welchen Versionen Verbunden sind, der kann folgendes machen:
Get-ActiveSyncDeviceStatistics -Mailbox blye | ft DeviceType, DeviceUserAgent, LastSuccessSync
Wer einfach nur Zaheln zu den entsprechenden Devices möchte:
$Mailboxes = Get-Mailbox -RecipientTypeDetails UserMailbox –ResultSize Unlimited `-Filter {HiddenFromAddressListsEnabled -eq $false}
$Devices = $Mailboxes | %{Get-ActiveSyncDeviceStatistics -Mailbox $_.Identity}
Wer aber nur die iDevices (iPhone, iPad und iPod) haben will:
$Devices = $Mailboxes | %{Get-ActiveSyncDeviceStatistics -Mailbox $_.Identity} | `?{$_.DeviceType -like "iP*" -and $_.LastSuccessSync -gt (Get-Date).AddDays(-30)}
P.S.: Hier werden nur aktive (In den letzten 30 Tagen) ausgegeben, wer das nicht möchte, der kann natürlich den “-and $_.LastSuccessSync -gt (Get-Date).AddDays(-30)” weglassen!
Natürlich kann es Sinnvoll sein User mit bestimmten Geräten zu finden. Apple Devices sind relativ einfach zu filtern.
Hier die mir bekannten Active Sync iDevice Kennungen:
iPhone4C1 = 4S
iPhone3C3 = 4 (Verizon)
iPhone3C1 = 4
iPhone2C1 = 3Gs
iPhone1C2 = 3G
iPad2C3 = iPad 2 (Verizon)
iPad2C2 = iPad 2 (WiFi + 3G)
iPad2C1 = iPad 2 (WiFi)
iPad1C1 = iPad
iPod2C1 = iPod Touch 2
iPod3C1 = iPod Touch 3
iPod4C1 = iPod Touch 4
Ein Beispiel wäre das blockieren von iPhone 4S Geräten:
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "Apple-iPhone4C1/*"} | Remove-ActiveSyncDevice –Confirm:$false
Oder auch iPod Geräten:
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "Apple-iPod2C1/*"} | Remove-ActiveSyncDevice –Confirm:$false
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "Apple-iPod3C1/*"} | Remove-ActiveSyncDevice –Confirm:$false
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "Apple-iPod4C1/*"} | Remove-ActiveSyncDevice –Confirm:$false
Und es könnte auch ein bestimmte Geräte/Software Kombination blockiert werden:
Get-ActiveSyncDevice –filter { DeviceUserAgent –like "iPhone2C1/901.528800004"} | Remove-ActiveSyncDevice –Confirm:$false
Dieses Beispiel blockiert den Exchange Active Sync Zugriff von allen iPhone 3Gs mit dem iOS Release 901.528800004, also 5.0 (9A5302b) Developer Preview 6 ;-)
Version string:
901.404 = 5.0.1
901.335 = 5.0
901.334 = 5.0 (GM Release of iOS 5)
812.1 = 4.3.5
811.3 = 4.3.4 (Verizon iPad2)
811.2 = 4.3.4
810.3 = 4.3.3 (Verizon iPad2)
810.2 = 4.3.3
808.8 = 4.3.2 (Verizon iPad 2)
808.7 = 4.3.2
807.4 = 4.3.1
806.191 = 4.3 (iPad 2)
806.190 = 4.3