Comando Powershell di Exchange 2010 per verificare se esiste un indirizzo e-mail nel sistema


12

Sto cercando un comando di Exchange 2010 che farebbe quanto segue:

  1. Dato un indirizzo e-mail (completo con dominio e tutti) controlla se l'indirizzo e-mail è associato a qualche casella di posta o gruppo nel sistema;
  2. (Idealmente) mostra quale entità possiede quell'indirizzo email

Questo sarebbe molto utile per me per verificare la mia migrazione e assicurarsi che tutti i nostri alias siano stati spostati correttamente.

Risposte:


15

Get-Recipient -Identity user@domain.com

Ciò restituirà l'oggetto destinatario per chiunque abbia l'indirizzo e-mail specificato (inclusi gli alias). Poiché le e-mail sono garantite come uniche, ciò non dovrebbe mai restituire più di un record (credo).

Get-Recipient -ANR user

Puoi usare la -ANRricerca usando Ambiguous Name Resolution (in modo da poter digitare il loro primo, ultimo, nome utente, ecc.), Ma mentre ANR corrisponderà all'indirizzo di posta elettronica principale di un utente, non corrisponderà agli altri alias SMTP. ANR può restituire più corrispondenze (quindi assicurati che il tuo codice gestisca questo caso).

Get-Mailboxnon è sufficiente per confermare che un indirizzo e-mail è univoco, in quanto non restituirà necessariamente contatti o record da sistemi esterni o legacy. Restituisce le cassette postali ... e mentre tutte le cassette postali hanno un indirizzo e-mail, non tutti gli indirizzi e-mail sono una cassetta postale.


Questo non riporta alcun alias di una cassetta postale
Brian Mitchell,

1
Questa è la risposta che ha funzionato per me. Ha restituito correttamente i destinatari corrispondenti sia durante la ricerca per indirizzi di posta elettronica SMTP primari sia durante la ricerca con indirizzi di posta elettronica SMTP secondari.
RSW,

2
@BrianMitchell, può assolutamente, se convogliato per visualizzare gli attributi desiderati. Get-Recipient user@domain.com | Select Name,EmailAddresses. Per impostazione predefinita, mostrerà Namee RecipientType.
tra il

3

Questo dovrebbe fare il trucco:

get-mailbox -an user@domain.com 

5
Ciò non funzionerà per gli account con più alias SMTP; solo l'indirizzo email principale restituirà un record. Gli alias non restituiranno nulla (indicando erroneamente che l'account è disponibile).
Myrddin Emrys il

3
Non funziona per indirizzi secondari su una cassetta postale.

2

Mi rendo conto che questo è un po 'vecchio, ma ho appena risolto il problema eseguendo quanto segue:

Get-Mailbox | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}
Get-DistributionGroup | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}
Get-MailPublicFolder | %{$_.EmailAddresses | ?{$_ -like "*<email address>*"}}

Se qualcosa fosse stato restituito da qualcuno di loro, non mi avrebbe necessariamente detto quale account lo stesse usando, ma potrei quindi concentrarmi su quale dei tre ha restituito un record per approfondire. Se non viene restituito nulla, non viene utilizzato.



-2

Quanto segue ha funzionato per me, anche con alias:

get-recipient -filter {emailaddresses -like "*user@domain.com*"}

Restituisce anche il nome del destinatario e il tipo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.