none
咨询变量代入到{}中的问题 RRS feed

  • 问题

  • 执行下列命令报错 ,目前看是变量使用的问题,请问是什么原因怎么解决?

    $dateEnd=get-date -Format "yyyy/MM/dd”

    $dateStart=(get-date).adddays(-30).ToString("yyyy/MM/dd")

    Search-Mailbox -Identity XXXXX -SearchQuery {Received>="$dateStart 00:00:00" AND Received<="$dateEnd 23:59:00"    }   -EstimateResultOnly  

    报错


    • 已编辑 ice9898 2020年9月9日 9:39
    2020年9月9日 9:38

答案

  • 您好,

    1. 根据对您提供的命令行以及错误信息的研究,报错的原因为时间戳记的格式错误所导致。关键字查询语言 (KQL)对日期数据类型datetime支持精确到秒之后的7位数。

    更多的信息您可以参考:使用 KQL 构造自定义文本查询

    2. 对于您所提供的命令行,若您希望查询目标邮箱中以当前时间为结束时间,开始时间为三十日之前的时间段内所接收的所有邮件。您可以运行以下命令行进行查询。

    $dateEnd=get-date -Format "yyyy/MM/dd”
    
    $dateStart=(get-date).adddays(-30).ToString("yyyy/MM/dd")
    
    Search-Mailbox -Identity <> -SearchQuery "(Received>=$dateStart) -AND (Received<=$dateEnd)"   -EstimateResultOnly

    以下为我在测试环境中的测试截图,运行以上所提供的命令行查询用户Administrator@contoso.com从三十日之前到现在所接收邮件的总数和大小。

    此致,

    Lucas Liu


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.



    2020年9月10日 5:31
  • 您好,

    根据我的研究和测试,请尝试运行以下命令行搜索特定邮箱中在指定时间精确到秒的时间段内所接收的所有邮件。

    $A=Get-Date
    $End=Get-Date $A.ToString() -Format yyyy-MM-ddThh:mm:ss
    $Start=Get-Date $A.AddDays(-30).ToString() -Format yyyy-MM-ddThh:mm:ss
    $SearchQuery='Received>="'+$Start+'" AND Received<"'+$End+'"'
    Search-Mailbox -Identity <> -SearchQuery $SearchQuery -EstimateResultOnly

    以下截图为我在测试环境中进行的测试:

    此致,

    Lucas Liu


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.


    2020年9月11日 10:18

全部回复

  • 您好,

    1. 根据对您提供的命令行以及错误信息的研究,报错的原因为时间戳记的格式错误所导致。关键字查询语言 (KQL)对日期数据类型datetime支持精确到秒之后的7位数。

    更多的信息您可以参考:使用 KQL 构造自定义文本查询

    2. 对于您所提供的命令行,若您希望查询目标邮箱中以当前时间为结束时间,开始时间为三十日之前的时间段内所接收的所有邮件。您可以运行以下命令行进行查询。

    $dateEnd=get-date -Format "yyyy/MM/dd”
    
    $dateStart=(get-date).adddays(-30).ToString("yyyy/MM/dd")
    
    Search-Mailbox -Identity <> -SearchQuery "(Received>=$dateStart) -AND (Received<=$dateEnd)"   -EstimateResultOnly

    以下为我在测试环境中的测试截图,运行以上所提供的命令行查询用户Administrator@contoso.com从三十日之前到现在所接收邮件的总数和大小。

    此致,

    Lucas Liu


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.



    2020年9月10日 5:31
  • 您好,在使用seach-mailbox 时,是可以将时间精确到秒的,但是使用变量$dateEnd和$dateStart 确无法成功,请问是否有其他表示方法,可以精确到秒

    例如:

    Search-Mailbox -Identity outlookuser64  -SearchQuery {Received>="2019-8-28 00:00:00" AND Received<="2019-9-29 23:59:00"    }   -EstimateResultOnly 

    2020年9月10日 7:36
  • 您好,还请再帮忙看下
    2020年9月11日 7:01
  • 您好,

    对于您的问题正在进行研究于测试,还需要一些时间,如果有任何进展,我将立即回复您并提供更新。

    此致,

    Lucas Liu


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2020年9月11日 8:01
  • 您好,

    根据我的研究和测试,请尝试运行以下命令行搜索特定邮箱中在指定时间精确到秒的时间段内所接收的所有邮件。

    $A=Get-Date
    $End=Get-Date $A.ToString() -Format yyyy-MM-ddThh:mm:ss
    $Start=Get-Date $A.AddDays(-30).ToString() -Format yyyy-MM-ddThh:mm:ss
    $SearchQuery='Received>="'+$Start+'" AND Received<"'+$End+'"'
    Search-Mailbox -Identity <> -SearchQuery $SearchQuery -EstimateResultOnly

    以下截图为我在测试环境中进行的测试:

    此致,

    Lucas Liu


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.


    2020年9月11日 10:18
  • 感谢支持
    2020年9月15日 5:49
  • 您好,

    很高兴得知您的问题已经解决。我将在这里对这个问题进行一个简要的总结,这样可以帮助论坛的其他成员可以很快的找到有用的信息。

    1. 问题现象:

    运行以下命令行出现报错。

    $dateEnd=get-date -Format "yyyy/MM/dd”
    $dateStart=(get-date).adddays(-30).ToString("yyyy/MM/dd")
    Search-Mailbox -Identity XXXXX -SearchQuery {Received>="$dateStart 00:00:00" AND Received<="$dateEnd 23:59:00"    }   -EstimateResultOnly  

    2. 造成错误的原因:

    命令行格式错误,精确到秒的时间变量无法直接应用到该命令行中。

    3. 解决方案:

    运行以下命令行去搜索特定邮箱中在指定的精确到秒的时间段内所接收的所有邮件。

    $A=Get-Date
    $End=Get-Date $A.ToString() -Format yyyy-MM-ddThh:mm:ss
    $Start=Get-Date $A.AddDays(-30).ToString() -Format yyyy-MM-ddThh:mm:ss
    $SearchQuery='Received>="'+$Start+'" AND Received<"'+$End+'"'
    Search-Mailbox -Identity <> -SearchQuery $SearchQuery -EstimateResultOnly

    此致,

    Lucas Liu


    如果以上回复对您有所帮助,建议您将其“标记为答复”. 如果您对我们的论坛支持有任何的建议,可以通过此邮箱联系我们:tnsf@microsoft.com.

    2020年9月16日 5:58