我有一个脚本,该脚本使用$startDate
在两次$endDate
和Search-UnifiedAuditLog
之间检查某些日志,其中$startDate
通过检查.txt文件中的一行来找到,并且$endDate
是当前时间。我按如下所示运行它。
$startDate = Get-Content $logPath -Last 1
$startDate = [datetime]$startDate
$startDate = $startDate.AddHours(-1)
$endDate = (Get-Date)
该特定脚本每小时运行一次,因此$startDate
和$endDate
之间的时间为两个小时(由于AddHours)。如果我检查这些变量的值,它们实际上确实相隔两个小时。但是,当我运行脚本时,它将经历前6个小时的日志。这使我认为是假设$ startDate为UTC,并将其转换为我的时区。这是在做什么吗?如果是这样,我如何才能让我的脚本仅检查.txt文档中列出的时间之前一小时的日志?
答案 0 :(得分:0)
将我的评论变成答案
您可以检查.Kind
变量的$startDate
属性。
此属性可以是本地, Utc 或未指定。参见DateTimeKind Enum。
对于未指定,从.NET 2.0开始,“ 此DateTime实例被假定为UTC时间,并且转换的方式类似于Kind为Utc。”,如the docs
中所述