Exchange Shell - ActiveSyncDevice CASMailbox Cleanup

- 23.03.2014
von Thomas Windscheif / Microlinc



Exchange 2010
removes unlinked ActiveSync Device from usercontext

getestet unter MS Exchange 2010 SP2 RU 6

Dieses Skript vergleicht die unter CASMailbox in den Feldern ActiveSyncAllowedDeviceIDs & ActiveSyncBlockedDeviceIDs aufgeführten DeviceIDs mit den tatsächlich existenten Geräten von Get-ActiveSyncDevice und löscht nicht verknüpfte Geräte aus dem globalen Kontext.

GeräteIDs werden beim Setzen des Status über die Quarantäne vom Administrator im Benutzerkontext entweder unter ActiveSyncAllowedDeviceIDs oder ActiveSyncBlockedDeviceIDs in Benutzerkontext der CASMailbox gespeichert. Wenn ein Gerät nun vom Administrator oder vom User über das ECP gelöscht wurde, bleibt der Gerätestatus im Benutzerkontext bestehen und der Administrator erhält bei erneutem Synchronisierungsversuch keine Quarantäne-Meldung. Um unerwünschte Überbleibsel zu entfernen muss man via Set-CASMailbox die Geräte via Management-Shell entfernen, was bei größeren Mengen von Geräten mühselig ist. Um die Arbeit zu automatisieren habe ich das Skript geschrieben. Wenn Sie die Variable autorem im Kopf des Powershell-Skripts auf 1 setzen, ist auch eine automatisierte Anwendung des Skripts z. B. als Task möglich.


Das Skript verwendet die folgenden Exchange-CMDlets:
  • Get-MailBox

  • Get-CASMailBox

  • Get-ActiveSyncDevice

  • Set-CASMailBox


Zum Download

Zur Funktion des Skripts
  1. Es listet zuerst die Benutzer des Exchange-Server auf und legt die Namen in ein Array

  2. Das Array wird anschließend durchlaufen.

  3. Der Inhalt der CASMailbox des Benutzers wird abgefragt.

  4. Es wird geprüft ob im Feld ActiveSyncAllowedDeviceIDs Daten vorliegen.

  5. Falls ja, wird nun geprüft ob die DeviceID mit dem CMDlet ActiveSyncDevice abgerufen werden kann, falls nicht wird es vorläufig als "zu löschen" markiert.

  6. Wird die Partnerschaft aber bestätigt wird der Marker entfernt und die Schleife wird unterbrochen.
  7. Wenn die Schleife komplett durchläuft und keine Partnerschaft gefunden wurde, wird das Gerät mit ID und weiteren Informationen in ein "Lösch"-Array gelegt.

  8. Die gleiche Prozedur wird für das Feld ActiveSyncBlockedDeviceIDs wiederholt.

  9. Wenn sich im Löscharray nicht befindet wird das Skript mit der Meldung das nichts gefunden wurde beendet, falls etwas in dem Array liegt wird eine Bestätigung des Löschens vom Benutzer erwartet (es sei denn, die Variable autorem hat den Wert 1).
  10. Das Skript löscht die Geräte nun vom Benutzerkontext (CASMailbox).


Anwendung des Skripts
  1. Laden Sie das Skript als ZIP-Archiv herunter (siehe Ende des Textes)

  2. Vor der Extraktion klicken Sie mit der rechten Maustaste auf das ZIP-Archiv und wählen "Eigenschaften".

  3. Klicken Sie dann auf den Button "Zulassen".
    INFO: Hierdurch wird die Internetzonen-Beschränkung aufgehoben und Sie werden beim Ausführen der Datei nicht nochmal auf das evtl. Gefährdungspotenzial von ausführbaren Dateien hingewiesen



  4. Extrahieren (!) Sie die beiden Dateien nun in einen beliebigen Ordner

  5. Öffnen Sie die Batchdatei "rem_AD.cmd" auf dem Exchange-Server (Sie müssen als Administrator angemeldet sein (Exchange Administrator)), alternativ können Sie das Skript auch direkt aus der Exchange Management Shell aufrufen
    (Navigieren Sie hierzu via cd in den entsprechenden Ordner und geben Sie dann ".\rem_AD.ps1" ein.)

  6. Die Batchdatei prüft wo die Exchange-Installation liegt (C:, D:), öffnet dann die Powershell mit Exchange-Modul und startet dann das eigentliche Skript

  7. Es gleicht automatisch die IDs von der CASMailbox mit dem von ActiveSyncDevice ab und gibt dann die Geräte aus, die nicht verlinkt sind.


    Falls keine Geräte den Kriterien entsprechen erscheint folgende Meldung:


  8. Nachdem Sie die Auswahl bestätigt haben, löscht das Skript die angezeigten Geräte.



automatisierte Verwendung z.B. als Task
Sie können das Skript auch ohne Benutzereingriffe anwenden, hierzu ändern Sie im Kopf des Powershell-Skripts den Wert von autorem auf "1". Anschließend werden beim Start des Skripts keine Bestätigungen mehr verlangt.




Das Skript habe ich auf meinem Exchange-Server (2010 SP2 RU6) ausgiebig getestet und konnte keine Fehler feststellen. Sollten Sie Fehler feststellen oder Wünsche haben schreiben Sie mir bitte einen Kommentar. Sollten Sie das Skript erfolgreich (oder auch nicht erfolgreich) auf einer neueren Exchange-Umgebung getestet haben, würde ich mich über Feedback via Commentbox freuen.


aktuelle Downloads
Download
-> rem_AD.zip (Version 1.0) ~ 1,80 KB




MICROL!NC - URL zum Artikel: http://microlinc.homeip.net/index.php?lev1=7&lev2=8&lev3=6&id=221 - Ausdruck vom 24.04.2024