EAS Get-ActiveSyncDevice

Achtung: Die hier verwendeten Commandlets gibt es erst weit Exchange 2010 SP1 !
Beachten Sie dazu auch die Seite EAS Auswertungen

Auf der Seite Android habe ich auf das Risiko hingewiesen, dass es Mobilgeräte vieleicht nicht immer so sicher sind, wie das eine Firma möchte. Leider ist in Exchange die Konfiguration derart, dass erst mal jeder mit jedem Endgerät eine Partnerschaft einrichten kann. Gerade Android ist mir hier aber aufgefallen, dass es z.B. keine Kennwortrichtlinien durchsetzt. Natürlich könnten Sie als Firma nun dazu übergehen, bei den Benutzern ActiveSync erst mal pro User per Default zu deaktivieren. Das geht recht einfach mit.

get-casmailbox | set-casmailbox -activesyncenabled $false

Und dann in einem zweiten Schritt pro Benutzer die Funktion wieder freizuschalten und dabei aber die DeviceID zu pflegen

set-CASMailbox -ActiveSyncAllowedDeviceIDs xxxxxx  -ActiveSyncBlockedDeviceIDs  yyyyyy

Das erfordert aber einen Prozess, da so zwar keine "unsicheren" Geräte teilnehmen dürfen, aber der Anwender oder Helpdesk zuerst die DeviceID eines neuen Geräts in Erfahrungen bringen muss. Und wehe die DeviceID ändert sich durch ein Firmware-update.

Leider gibt es aktuell noch keinen globalen Devicetype-Filter um bestimmte Geräteklassen oder Typen zu blocken.
Denkbar wäre so eine Filterung aber auf dem "UserAgent" im HTTP-Header über eine Firewall oder ISAPI-Filter.
Microsoft hat sowas bei Exchange Hosted z.B. für das iPhone4 Problem gemacht.

Wer nutzt was ?

Eine Auswertung der eingesetzten Geräte ist da schon ratsam. Das geht mit Exchange 2010 recht einfach, da die Geräte über ein neues Commandlet einfach ausgegeben werden können.

[PS] C:\>(Get-ActiveSyncDevice)[25]


RunspaceId              : d65d98c8-be85-4ce0-9c0c-4a14fbce5a14
FriendlyName            :
DeviceId                : validate
DeviceImei              :
DeviceMobileOperator    :
DeviceOS                :
DeviceOSLanguage        :
DeviceTelephoneNumber   :
DeviceType              : Android
DeviceUserAgent         : Android/0.3
DeviceModel             : Android
FirstSyncTime           : 01.11.2010 22:23:10 UserDisplayName         : msxfaq.de/Abteilung/Technik/Carius, Frank
DeviceAccessState       : Allowed
DeviceAccessStateReason : Global
DeviceAccessControlRule :
DeviceActiveSyncVersion : 12.0
AdminDisplayName        :
ExchangeVersion         : 0.10 (14.0.100.0)
Name                    : Android§validate
DistinguishedName       : CN=Android§validate,CN=ExchangeActiveSyncDevices,CN=Carius\, Frank,Ou=Technik,Ou=Abteilung,DC
                          =netatwork,DC=de
Identity                : msxfaq.de/Abteilung/Technik/Carius, Frank/ExchangeActiveSyncDevices/Android§validate
Guid                    : e53a8d87-f2be-4e78-9432-e17f8d494eb5
ObjectCategory          : msxfaq.de/Configuration/Schema/ms-Exch-Active-Sync-Device
ObjectClass             : {top, msExchActiveSyncDevice}
WhenChanged             : 01.11.2010 23:23:29
WhenCreated             : 01.11.2010 23:23:11
WhenChangeduTC          : 01.11.2010 22:23:29
WhenCreateduTC          : 01.11.2010 22:23:11
OrganizationId          :
OriginatingServer       : DC01.msxfaq.de
IsValid                 : True

Ein Windows Phone 7 Gerät liefert mehr dran.

RunspaceId              : cf5cb7fe-0bba-4e9d-8d7e-c8733df51360
FriendlyName            : LG LG-E900
DeviceId                : 945A0F6BC08FF04968823E76A8E90629
DeviceImei              : xxxxxxxxxxxxxxxxxxxx
DeviceMobileOperator    : xxxxxxxxxxxxxxxxxxxx
DeviceOS                : Windows Phone7.0.7004
DeviceOSLanguage        : German
DeviceTelephoneNumber   : xxxxxxxxxxxxxxxxxxxx
DeviceType              : WP
DeviceUserAgent         : MSFT-WP/7.0.7004
DeviceModel             : LG
FirstSyncTime           : 10.11.2010 10:09:06 
UserDisplayName         : msxfaq.de/Abteilung/Technik/Carius, Frank
DeviceAccessState       : Allowed
DeviceAccessStateReason : Global
DeviceAccessControlRule :
DeviceActiveSyncVersion : 14.0
AdminDisplayName        :
ExchangeVersion         : 0.10 (14.0.100.0)
Name                    : WP§945A0F6BC08FF04968823E76A8E90629
DistinguishedName       : CN=WP§945A0F6BC08FF04968823E76A8E90629,CN=ExchangeActiveSyncDevices,CN=Carius\, Frank,Ou=Tech
                          nik,Ou=Abteilung,DC=netatwork,DC=de
Identity                : msxfaq.de/Abteilung/Technik/Carius, Frank/ExchangeActiveSyncDevices/WP§945A0F6BC08FF049688
                          23E76A8E90629
Guid                    : 6655783a-e604-4d36-8f30-a9120abb897a
ObjectCategory          : msxfaq.de/Configuration/Schema/ms-Exch-Active-Sync-Device
ObjectClass             : {top, msExchActiveSyncDevice}
WhenChanged             : 10.11.2010 11:20:34
WhenCreated             : 10.11.2010 11:09:06
WhenChangeduTC          : 10.11.2010 10:20:34
WhenCreateduTC          : 10.11.2010 10:09:06
OrganizationId          :
OriginatingServer       : DC01.msxfaq.de
IsValid                 : True

Aussperren wenn erkannt

Ein andere Vorgehensweise ist natürlich die "Überwachung" der Umgebung auf neue Geräte und eine direkte Aktion darauf. Ein Skript könnte den ersten Zugriff über das IISLog oder die Anlage der Partnerschaft in Exchange "erkennen" und dann anhand des Typs oder anderer Kriterien das Gerät ausschließen. Ein guter Ansatzpunkt ist die Auswertung der Partnerschaften, die aber nach Exchange Version unterschiedlich zu erzeugen ist.

Aber in beiden Fällen ist die Information über das Postfach und das verbundene Gerät erforderlich. Das Gerät kann dann mit einer Blockliste verglichen und bei Bedarf gesperrt werden.

So ein Skript ist keine "sichere" Lösung, denn es wirkt nur, wenn das Skript auch gestartet wird. Es ist ein Kompromiss

Get-ActiveSyncDevice

Wenn ein Anwender ein Gerät mit dem Server verbindet und sich erfolgreich angemeldet hat, dann legt der Exchange Server auch diese Objekte beim Benutzer mit an. Das bedeutet aber nicht, dass das Gerät schon synchronisiert sondern nur, dass es "bekannt" ist. Es kann ja immer noch geblockt oder in der EAS Quarantäne stecken. Der einfachste Weg ist die PowerShell, um eine Liste der Exchange bekannten Geräte zu erhalten.

Wenn ihre Umgebung mehrere Domänen umfasst, dann sollten Sie vorher noch den Scope erweitern, damit sie auch alle Objekte suchen.

# Scope auf den Forest einstellen
[PS] C:>Set-ADServerSettings -ViewEntireForest:$true

# Ausgabe des ersten Geräts
[PS] C:>(Get-ActiveSyncDevice)[0]
RunspaceId : xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
FriendlyName : HP514FC
DeviceId : xxxxxxxxxxxxxxxxxxxxxxxx
DeviceImei : xxxxxxxxxxxxx
DeviceMobileOperator :
DeviceOS : Windows CE 5.2.1620
DeviceOSLanguage : German
DeviceTelephoneNumber : **********7162
DeviceType : SmartPhone
DeviceUserAgent : MSFT-SPhone/5.2.402
DeviceModel : HP iPAQ 514 Voice müssenger
FirstSyncTime : 03.02.2010 19:08:34
UserDisplayName : msxfaq.de/Abteilung/Technik/Carius, Frank
DeviceAccessState : Allowed
DeviceAccessStateReason : Global
DeviceAccessControlRule :
DeviceActiveSyncVersion : 12.0
AdminDisplayName :
ExchangeVersion : 0.10 (14.0.100.0)
Name : SmartPhone§xxx
DistinguishedName : CN=SmartPhone§xxxx,CN=ExchangeActiveSyncDevices,CN=Carius\, Frank
,Ou=Technik,Ou=Abteilung,DC=netatwork,DC=de
Identity : msxfaq.de/Abteilung/Technik/Carius, Frank/ExchangeActiveSyncDevices/SmartPhone§xxxxx
Guid : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ObjectCategory : msxfaq.de/Configuration/Schema/ms-Exch-Active-Sync-Device
ObjectClass : {top, msExchActiveSyncDevice}
WhenChanged : 17.04.2011 13:49:14
WhenCreated : 07.05.2010 00:15:07
WhenChangeduTC : 17.04.2011 11:49:14
WhenCreateduTC : 06.05.2010 22:15:07
OrganizationId :
OriginatingServer : DC01.msxfaq.de
IsValid : True

Sie können die Ausgaben wie gewohnt natürlich filtern, sortieren etc. Allerdings liest diese Commandlet auch nur die Active-Directory-Daten aus. Weitere Details (z.B. lastSyncTime etc.) erhalten Sie nur über Get-ActiveSyncDeviceStatistics

Auch über den Befehl "Get-CASMailbox" können Sie in Erfahrung bringen, wer ein ActiveSync Gerät hat.

Get-CASMailbox WHERE {$_.HasActiveSyncDevicePartnership}

Dieser Filter ist aber nicht 100% korrekt da der Wert mit dem ersten Gerät auf "$true" gesetzt wird aber nicht mehr auf "$false" geht, wenn alle Geräte wieder entfernt wurden. Insofern können Sie auch mit Get-ActiveSyncDevice eine Liste der im System bekannten Geräte ermitteln und über Get-ActiveSyncDeviceStatistics sehen, wie alt der Eintrag ist.

"Alte Geräte entfernen"

Umgekehrt kann so ein Skript natürlich auch mal Geräte melden und gegebenenfalls sogar entfernen, wen diese längere Zeit nicht mehr synchronisiert haben.

Weitere Links