Get-WinEvent -FilterHashtable不允许使用空管道元素

时间:2017-07-28 21:12:40

标签: powershell

我是Powershell(v5)的新手,但在网上找到了列出所有非空日志的方法,例如在过去的30分钟里。 但是,我无法将输出重定向到文件。 感激地收到任何建议。

profile.state , profile.user.is_active and other columns condition

1 个答案:

答案 0 :(得分:2)

有两种方法可以让PowerShell在下一行上查找管道的延续:

  • |放在一行的结尾

    • 更一般地说:任何总是需要更多令牌才能在语法上有效的语句会导致PowerShell继续解析下一行。
  • 使用显式行继续`(PowerShell的转义字符)放在行的最后处(甚至不允许使用空格)后)。

您尝试了什么:

PowerShell将以下内容读作两个语句:

Get-WinEvent -FilterHashtable @{LogName=$logs; Level=1,2,3; StartTime=(Get-Date)-$time1}
| out-file c:\temp\test1.txt

Get-WinEvent行本身在语法上是完整的,因此PowerShell认为它是自己的声明。

因此,对于PowerShell,下一个语句 |开头,它会提示您看到的错误消息(在语句的第一个|之前必须有一个命令或表达式)。

也就是说,更改PowerShell的解析以查找|作为 next has been suggested上的第一个(非空白)字符。