datetime - PS 将 Get-WinEvent 与 FilterXPath 和日期时间变量一起使用?

标签 datetime powershell filtering event-log

  • 我正在按时间顺序从事件日志中抓取一些事件
  • 不想管道到哪里
  • 想使用 get-winevent

在我获得 Event1 之后,我需要获得另一个事件的第一个实例,该事件发生在 Event1 之后的某个未知时间量。然后抓取在 Event2 等之后某个时间发生的 Event3。

基本上从:

$filterXML = @'
<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (Level=4 or Level=0) and (EventID=12)]]</Select>
  </Query>
</QueryList>
'@    
$event1=(Get-WinEvent -ComputerName $PCname -MaxEvents 1 -FilterXml $filterXML).timecreated

给我 Event1 的日期时间。 然后我想做类似的事情:

Get-WinEvent -LogName "System"-MaxEvents 1 -FilterXPath "*[EventData[Data = 'Windows Management Instrumentation' and TimeCreated -gt $event1]]"

显然,在那里加粗的 timecreated 部分不起作用,但我希望你能得到我想要做的事情。有什么帮助吗?


我想也许 filterhashtable 是我需要去的?寻求澄清:

$Event2=(Get-WinEvent -Oldest -MaxEvents 1 -FilterHashtable @{logname="system"; providername="Microsoft-Windows-GroupPolicy"; starttime=$Event1}).TimeCreated

最佳答案

这就是你想要的……

$t = (((Get-WinEvent -ComputerName $PCname -MaxEvents 1 -FilterXml $filterXML).TimeCreated).ToUniversalTime()).ToString("s")

顺便说一句,我需要计算机启动的时间,所以做这样的事情......

$t1 = (((Get-WinEvent -ComputerName "myhostname" -LogName "System" -MaxEvents 1 -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Kernel-General']][EventID=12]]").TimeCreated).ToUniversalTime()).ToString("s")

$t1 = (($boottime.ConvertToDateTime($boottime.LastBootUpTime)).ToUniversalTime()).ToString("s")

那么

(Get-WinEvent -ComputerName "myhostname" -LogName "Application" -MaxEvents 1 -FilterXPath "*[System[TimeCreated[@SystemTime>'$t1']][EventID=6005]][EventData[Data='Sens' and Data='Logoff']]")|fl

(Get-WinEvent -ComputerName "myhostname" -LogName "Application" -MaxEvents 1 -FilterXPath "*[System[TimeCreated[@SystemTime>'$t1']][EventID=6005]][EventData[Data='Sens' and Data='Logoff']]").Count

关于datetime - PS 将 Get-WinEvent 与 FilterXPath 和日期时间变量一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979580/

相关文章:

powershell - Powershell-如何使用输出放置主机并设置变量

javascript - 过滤我的@html.dropdownlist

php - 格式化日期函数 - 自定义输出

datetime - 如何在 Kotlin 标准库(多平台)上获取当前的 unix 时间

powershell - 无法在 powershell 中安装 TLS 模块

regex - 用于在一行中搜索、拆分和连接的 Powershell 脚本

ruby-on-rails - 使用复选框过滤记录

php - 也使用多列过滤表mysql

python - 如何仅减去 2 个 Pandas 列中的时间(不包括日期)?

Python 3 datetime.fromtimestamp 失败 1 微秒