2015-03-30 1 views
0

Je suis à la recherche d'un moyen efficace pour récupérer toutes les boîtes aux lettres Exchange 2013 qui ont été modifiées après un certain temps en utilisant Powershell. Ce que j'essaie de faire est d'obtenir toutes les boîtes aux lettres avec des changements de configuration, lire tous les détails intéressants et les synchroniser dans un autre système sur une base régulière (comme toutes les 5 minutes).Exchange obtenir des boîtes aux lettres avec des mises à jour Powershell

Jusqu'à présent, la façon de travailler, j'ai trouvé est le suivant:

$mbx = Get-Mailbox -Resultsize Unlimited|where-object {$_.whenchanged -gt $lasttime} 

Mais cela obtenir toutes les boîtes aux lettres de les enregistrer et seulement en boucle puis à travers eux pour filtrer le résultat qu'il faut pour beaucoup de ressources et la manière à beaucoup temps (> 10000 boîtes aux lettres).

Quelqu'un at-il une meilleure façon de le faire? Si c'est possible avec LDAP ce serait génial.

Merci Cordialement

+0

Vous pouvez utiliser le commutateur '-Filter'. – Ashigore

+0

J'ai précédemment essayé d'utiliser le commutateur de filtre comme get-mailbox -filter {whenchanged -gt $ lasttime} Cependant, cela n'a pas fonctionné en raison de problèmes d'accès distant avec la variable. Maintenant je l'ai eu en utilisant: $ mbx = get-boîte aux lettres -DomainController $ dc -filter ([scriptblock] :: create ("whenchanged -gt '$ lastTime'")) – punsher

Répondre

0

Oui, vous pouvez le faire avec LDAP à la place, Exchange utilise Active Directory comme service d'annuaire ainsi, par exemple si une adresse proxy est ajoutée à une boîte aux lettres les proxyaddresses attibute https://msdn.microsoft.com/en-us/library/ms679424%28v=vs.85%29.aspx est mis à jour dans Active Directory . La propriété whenchanged est juste un reflet des valeurs du répertoire Active donc tout code utilisé par exemple LDAP pour interroger cette valeur retournera les mêmes résultats. La chose supplémentaire que vous pouvez faire avec LDAP est utiliser WMI pour vous abonner à des événements afin que vous puissiez obtenir un événement de type de notification lorsqu'un objet est modifié par exemple https://powerevents.codeplex.com/

Vive Glen

+0

Salut, j'ai déjà pensé à utiliser l'attribut whenChanged cet attribut est mis à jour de manière à souvent. Il n'est pas seulement mis à jour lorsque les attributs Exchange sont modifiés, mais également si les attributs normaux (y compris logintime) changent. Malheureusement, il ya "msExchWhenMailboxCreated" mais pas "msExchWhenMailboxChanged" WMI semble vraiment intéressant, mais aussi comme cela nécessite un énorme effort juste pour le faire fonctionner. Et j'ai peur que ce soit trop pour notre projet. – punsher