Obter logs de controle de mensagens

1

Tudo,

Eu preciso determinar se os emails foram enviados para um endereço externo do nosso servidor Exchange. Infelizmente, não há um remetente específico para segmentar, pois pode haver várias pessoas que enviaram e-mails para esse endereço externo.

Eu fiz algumas pesquisas, mas infelizmente não consigo encontrar um script que funcione. Eu tentei alguns scripts baseados em alguns artigos (Alterei o email do usuário para um dummy abaixo). Eu agradeceria qualquer conselho. Obrigado.

Get-MessageTrackingLog –ResultSize Unlimited | Where -Property Recipients -Like
 “[email protected]

ou

Get-MessageTrackingLog -Recipients [email protected]

....

    
por Exch1 09.08.2018 / 23:53

1 resposta

0

Parece que você está misturando Get-MessageTrackingLog parameters (-Property) com o Where-Object cmdlet. Então, vamos movê-lo de volta para a parte Get-MessageTrackingLog do oneliner (se Recipients for uma propriedade padrão, não precisaremos dela). Então, podemos usar Recipients no filtro Where-Object .

Primeiro, confirme que Recipients não é uma propriedade padrão, use:

Get-MessageTrackingLog | Get-Member

Se não estiver, use:

Get-MessageTrackingLog –ResultSize Unlimited -Property Recipients | 
    Where Recipients -Like “[email protected]

Senão, se for uma propriedade padrão use:

Get-MessageTrackingLog –ResultSize Unlimited | 
    Where Recipients -Like “[email protected]

Esse comando obteria todos os logs de controle de mensagens e os canalizaria para o comando where-object, incluindo a propriedade Recipients. A cláusula Where-Object procuraria mensagens com destinatários, incluindo "[email protected]".

docs.microsoft reference para Get-Object .

-ResultSize Unlimited fornecerá um conjunto de dados muito grande. Altamente recomendo usar algumas das outras propriedades para limitá-lo.

docs.microsoft reference para Get-MessageTrackingLog

Um breve resumo dos parâmetros mostra que há um parâmetro que permite especificar destinatários. Nomeado -Recipients . Então você pode simplificar isso para:

Get-MessageTrackingLog -ResultSize Unlimited -Recipients "[email protected]*"

Se isso funcionar, será significativamente mais eficiente em termos de tempo e de processador do que um despejo completo, e é exatamente isso que Get-MessageTrackingLog -ResultSize Unlimited sem restrições fornecerá a você.

Descobri que Where-Ojbect aka where é um dos cmdlets mais poderosos do PowerShell, junto com os cmdlets CSV de importação / exportação e Get-Help e Get-Member .

    
por 10.08.2018 / 00:42