No seu script, você está usando atualmente
$dateStart = "03/20/2017"
$dateEnd = "03/27/2017"
Como neste caso os valores são uma cadeia de caracteres, o Windows PowerShell usará automaticamente o tipo de dados String
para armazenar o valor, enquanto Get-MessageTrace
-StartDate
e -EndDate
só obtém variáveis System.DateTime
type.
Você pode definir a variável de tipo correta usando Get-Date
assim:
$dateStart = Get-Date "03/20/2017"
$dateEnd = Get-Date "03/27/2017"
Como alternativa, você pode criar o novo objeto System.DateTime
especificando primeiro o tipo da variável e, em seguida, atribuir um valor a ela (se for um valor que pode ser convertido em System.DateTime
):
[System.Datetime]$dateStart = "03/20/2017"
[System.Datetime]$dateEnd = "03/27/2017"
No entanto, prefiro Get-Date
, pois isso torna seu script mais generalizável. Por exemplo, você pode criar um script que sempre lhe forneça informações nos últimos sete dias:
$dateEnd = Get-Date
$dateStart = (($$dateEnd).AddDays(-7))
Get-MessageTrace -StartDate $dateStart -EndDate $dateEnd -PageSize 5000 '
-SenderAddress [email protected] '
| where {$_.RecipientAddress -like "*example.com*"} '
| Select-Object SenderAddress, RecipientAddress, Subject
Sugestão adicional:
Você também pode usar Get-Date
para descobrir o formato de data abreviada definido nas Opções regionais :
Get-Date -Format d
Ele fornecerá o padrão de data abreviada >> necessário para os parâmetros EndDate
e StartDate
.