Liste de toutes les boîtes aux lettres de l'avant à un utilisateur spécifique
J'ai ce script qui liste toutes les boîtes aux lettres email d'expédition, cependant, je suis curieux de savoir si il y aurait un moyen de faire revenir toutes les boîtes aux lettres de l'avant à un utilisateur spécifique. Fondamentalement, je suis en train d'essayer de trouver toutes les boîtes aux lettres qui transfère le courrier à "johndoe". Toute aide serait grandement appréciée! C'est pour exchange 2007 btw...
Voici le script jusqu'à présent:
$fwds = get-mailbox | where-Object { $_.ForwardingAddress -ne $null }
| select Nom, ForwardingAddressforeach ($ta $en fwds) {$av | ajouter-membre -membertype noteproperty
-nom “ContactAddress” -valeur (get-contact $fwd.ForwardingAddress).WindowsEmailAddress}$fwds
Vous devez vous connecter pour publier un commentaire.
Exchange utilise CanonicalName pour l'adresse de transfert, de sorte que vous aurez besoin de chercher à partir du nom d'utilisateur. Depuis, il pourrait être une Boîte aux lettres, DL, ou un Contact, la façon la plus simple que je connaisse est d'utiliser
Get-Recipient
, et de saisir l'Identité de la propriété.@mjolinor version fonctionne, mais il est assez lent, car il charge toutes les boîtes aux lettres. Sur mon système, il a fallu environ 30 secondes pour passer par ~300 boîtes aux lettres.
Cela peut être la vitesse par l'ajout d'un filtre pour la commande Get-Mailbox pour retourner uniquement celles qui sont effectivement transmis, comme suit:
Mais attendez, on peut obtenir encore plus vite! Pourquoi ne pas rechercher le bon droit de l'utilisateur dans le filtre? Sans doute parce qu'il est difficile d'obtenir la syntaxe de droit, parce que l'utilisation de variables dans -un Filtre est source de confusion.
L'astuce consiste à utiliser des guillemets autour de l'expression de filtre, et un seul des guillemets autour de la variable:
Cette version renvoie les mêmes résultats à 0.6 s - sujet de 50 fois plus rapide.